processing_time_and_convergence_rate
Benchmarking State-of-the-Art Deep Learning Software Tools — Shi et al. (2016) (arXiv:1608.07249, 2016)
What this evaluates
This evaluation probes the training efficiency and multi-GPU scaling behavior of deep learning frameworks. It measures how quickly models process mini-batches and how effectively data parallelization affects model convergence across various network architectures and hardware configurations.
Datasets
- ImageNet — total ?; splits: test (-1)
- MNIST — total ?; splits: test (-1)
- CIFAR-10 — total ?; splits: test (-1)
- Synthetic/Custom Sequence — total ?; splits: test (-1)
Metrics
processing_time(primary) — range: seconds- Average time difference between two consecutive training iterations, calculated over numerous iterations for a fixed mini-batch size.
convergence_rate— range: other- Rate at which the model's training loss decreases, specifically compared across single-GPU and multi-GPU data parallelization setups to evaluate scaling effects.
Input / output format
Input: Mini-batches of input data (images or sequences) fed into specified neural network architectures (FCN, CNN, RNN) running on various CPU or GPU hardware configurations.
Output: Framework training logs and timing outputs capturing iteration durations and loss values over epochs.
Scoring recipe
def compute_processing_time(framework, dataloader, num_epochs):
times = []
for epoch in range(num_epochs):
if framework == 'CNTK' and epoch == 0: continue # Exclude first epoch I/O
for batch in dataloader:
t_start = framework.get_time()
framework.train_step(batch)
t_end = framework.get_time()
times.append(t_end - t_start)
return sum(times) / len(times)
def compute_convergence_rate(loss_history, gpu_count):
# Compare loss drop speed across 1, 2, and 4 GPU setups
return evaluate_convergence_speed(loss_history, gpu_count)
Common pitfalls
- Results reflect specific configuration choices and API usage patterns; the authors explicitly state they are not necessarily the best achievable performance.
- CNTK excludes the first epoch's time to account for disk I/O, which can skew runtime comparisons if not consistently applied.
- GPU autoboost is disabled for reproducibility, differing from default hardware behavior and potentially affecting peak performance claims.
Evidence (verbatim from paper)
Processing time and convergence rate are two main factors that users concern when training a deep learning model. So we mainly measure these two metrics to evaluate each tool. On one hand, one popular and effective way to evaluate the running performance is to measure the time duration of an iteration that processes a mini-batch of input data. In practice, after a certain round of iterations or the convergence of learning, the training progress will be terminated. Therefore, we benchmark these tools by using a range of mini-batch sizes for different types of network. For each mini-batch size, we run numerous iterations and evaluate their average running speed. On the other hand, since data parallelization may affect the convergence rate, we also compare the convergence rates for the case of multiple GPUs.
Citation
@misc{shi2016benchmarking,
title={Benchmarking State-of-the-Art Deep Learning Software Tools},
author={Shi et al. (2016)},
year={2016},
note={arXiv:1608.07249}
}
- arXiv: 1608.07249