dl-framework-benchmark-eval
A detailed comparative study of open source deep learning frameworks — Al-Bdour et al. (2019) (arXiv:1903.00102, 2019)
What this evaluates
Evaluates the execution speed and hardware resource utilization of three open-source deep learning frameworks (TensorFlow, Theano, CNTK) across standard computer vision, NLP, and custom datasets.
Datasets
- MNIST — total ?; splits: train (-1), test (-1)
- CIFAR-10 — total ?; splits: train (-1), test (-1)
- IMDB — total ?; splits: train (-1), test (-1)
- Self-Driving Car — total ?; splits: train (-1)
- Penn TreeBank — total ?; splits: train (-1), test (-1)
Metrics
processing_time (primary) — range: seconds
- Wall-clock time in seconds (or hours) required to complete the training process for a given model on a specified hardware environment.
accuracy — range: percent
- Percentage of correctly classified samples on the test set.
perplexity — range: other
- Exponential of the average negative log-likelihood of the test set, used for language modeling evaluation.
cpu_utilization — range: percent
- Percentage of CPU capacity actively used during training.
gpu_utilization — range: percent
- Percentage of GPU compute capacity actively used during training.
memory_utilization — range: percent
- Percentage of system or GPU memory consumed during training.
Input / output format
Input: Dataset, framework (CNTK, TensorFlow, Theano), hardware environment (CPU/GPU), and thread count (for CPU runs).
Output: Processing time in seconds/hours, CPU/GPU/memory utilization percentages, final model accuracy or perplexity, and number of epochs to convergence.
Scoring recipe
def evaluate_framework(dataset, framework, hardware, threads):
start_time = time.time()
model = build_model(framework, dataset)
train(model, dataset, hardware, threads)
elapsed = time.time() - start_time
util_cpu = measure_cpu_usage()
util_gpu = measure_gpu_usage()
util_mem = measure_memory_usage()
acc = compute_accuracy(model, dataset.test)
return elapsed, util_cpu, util_gpu, util_mem, acc
Common pitfalls
- Hardware specifications (CPU cores, GPU model, RAM) drastically change results; comparisons are only valid on identical hardware.
- CNTK's Python API does not support CPU multithreading, so CPU results for CNTK are limited to single-thread or default core counts.
- The 'Self-Driving Car' dataset is a custom, non-standard dataset, making cross-study comparisons difficult.
- Processing time includes training time, not inference time, which may not reflect deployment latency.
Evidence (verbatim from paper)
Table 4 shows the CPU and GPU processing times for each dataset. ... The metrics measurement of each framework was conducted to explain the failure of one of the selected frameworks.
Citation
@misc{albdour2019frameworks,
title={A detailed comparative study of open source deep learning frameworks},
author={Al-Bdour et al. (2019)},
year={2019},
note={arXiv:1903.00102}
}
1---2name: dl-framework-benchmark-eval3description: Evaluates the execution speed and hardware resource utilization of three open-source deep learning frameworks (TensorFlow, Theano, CNTK) across standard computer vision, NLP, and custom datasets. Use when the user wants to benchmark on MNIST, CIFAR-10, IMDB, Self-Driving Car, Penn TreeBank, or asks about evaluating this task. Reports processing_time.4---56# dl-framework-benchmark-eval78> A detailed comparative study of open source deep learning frameworks — Al-Bdour et al. (2019) (arXiv:1903.00102, 2019)910## What this evaluates1112Evaluates the execution speed and hardware resource utilization of three open-source deep learning frameworks (TensorFlow, Theano, CNTK) across standard computer vision, NLP, and custom datasets.1314## Datasets1516- **MNIST** — total ?; splits: train (-1), test (-1)17- **CIFAR-10** — total ?; splits: train (-1), test (-1)18- **IMDB** — total ?; splits: train (-1), test (-1)19- **Self-Driving Car** — total ?; splits: train (-1)20- **Penn TreeBank** — total ?; splits: train (-1), test (-1)2122## Metrics2324- `processing_time` **(primary)** — range: seconds25 - Wall-clock time in seconds (or hours) required to complete the training process for a given model on a specified hardware environment.26- `accuracy` — range: percent27 - Percentage of correctly classified samples on the test set.28- `perplexity` — range: other29 - Exponential of the average negative log-likelihood of the test set, used for language modeling evaluation.30- `cpu_utilization` — range: percent31 - Percentage of CPU capacity actively used during training.32- `gpu_utilization` — range: percent33 - Percentage of GPU compute capacity actively used during training.34- `memory_utilization` — range: percent35 - Percentage of system or GPU memory consumed during training.3637## Input / output format3839**Input**: Dataset, framework (CNTK, TensorFlow, Theano), hardware environment (CPU/GPU), and thread count (for CPU runs).4041**Output**: Processing time in seconds/hours, CPU/GPU/memory utilization percentages, final model accuracy or perplexity, and number of epochs to convergence.4243## Scoring recipe4445```python46def evaluate_framework(dataset, framework, hardware, threads):47 start_time = time.time()48 model = build_model(framework, dataset)49 train(model, dataset, hardware, threads)50 elapsed = time.time() - start_time51 util_cpu = measure_cpu_usage()52 util_gpu = measure_gpu_usage()53 util_mem = measure_memory_usage()54 acc = compute_accuracy(model, dataset.test)55 return elapsed, util_cpu, util_gpu, util_mem, acc56```5758## Common pitfalls5960- Hardware specifications (CPU cores, GPU model, RAM) drastically change results; comparisons are only valid on identical hardware.61- CNTK's Python API does not support CPU multithreading, so CPU results for CNTK are limited to single-thread or default core counts.62- The 'Self-Driving Car' dataset is a custom, non-standard dataset, making cross-study comparisons difficult.63- Processing time includes training time, not inference time, which may not reflect deployment latency.6465## Evidence (verbatim from paper)6667> Table 4 shows the CPU and GPU processing times for each dataset. ... The metrics measurement of each framework was conducted to explain the failure of one of the selected frameworks.6869## Citation7071```bibtex72@misc{albdour2019frameworks,73 title={A detailed comparative study of open source deep learning frameworks},74 author={Al-Bdour et al. (2019)},75 year={2019},76 note={arXiv:1903.00102}77}78```7980- arXiv: 1903.00102