All problems
Scaling Efficiency From Step Time
Problem
Compute data-parallel scaling efficiency from measured step times: efficiency = single_gpu_step_ms / (num_gpus * multi_gpu_step_ms). A value of 1.0 is perfect scaling, below 1.0 means communication or straggler overhead, and above 1.0 means superlinear speedup.
The signature is scaling_efficiency(single_gpu_step_ms, multi_gpu_step_ms, num_gpus).
Hint
Ideal multi-GPU time is single-GPU time divided by num_gpus.
Test cases
case 1
in: [100,15,8]
expected: 0.8333333333
case 2
in: [100,12.5,8]
expected: 1
case 3
in: [50,10,4]
expected: 1.25
case 4
in: [100,100,1]
expected: 1
Starter codePython
def scaling_efficiency(single_gpu_step_ms, multi_gpu_step_ms, num_gpus):
# Your code here
pass4 test cases · run your code against them in the editor