[论文解读] Performance Evaluation of Deep Learning Tools in Docker Containers
本文评估了在Docker容器中运行深度学习工具与原生主机系统之间的性能开销。通过在CPU、GPU和I/O工作负载上进行基准测试,并结合TensorFlow和MXNet等流行框架的真实训练工作负载,研究发现计算任务和I/O操作的性能损失可忽略不计,表明Docker容器是部署深度学习应用的可行且高效方案,开销极小。
With the success of deep learning techniques in a broad range of application domains, many deep learning software frameworks have been developed and are being updated frequently to adapt to new hardware features and software libraries, which bring a big challenge for end users and system administrators. To address this problem, container techniques are widely used to simplify the deployment and management of deep learning software. However, it remains unknown whether container techniques bring any performance penalty to deep learning applications. The purpose of this work is to systematically evaluate the impact of docker container on the performance of deep learning applications. We first benchmark the performance of system components (IO, CPU and GPU) in a docker container and the host system and compare the results to see if there's any difference. According to our results, we find that computational intensive jobs, either running on CPU or GPU, have small overhead indicating docker containers can be applied to deep learning programs. Then we evaluate the performance of some popular deep learning tools deployed in a docker container and the host system. It turns out that the docker container will not cause noticeable drawbacks while running those deep learning tools. So encapsulating deep learning tool in a container is a feasible solution.
研究动机与目标
- 系统评估Docker容器对深度学习应用的性能影响。
- 解决在共享计算环境中管理复杂软件依赖关系和版本冲突的挑战。
- 确定容器化是否在CPU、GPU和I/O密集型深度学习工作负载中引入显著性能开销。
- 评估在生产环境和共享计算环境中通过Docker容器部署深度学习工具的可行性。
- 为Docker化部署与原生存储的深度学习框架之间的性能等价性提供实证证据。
提出的方法
- 使用HPL和HPCG对CPU进行系统级性能基准测试,使用GPU内核对GPU工作负载进行基准测试。
- 通过ioping评估磁盘I/O性能,涵盖顺序访问和随机访问,包括直接I/O和基于缓存的访问。
- 测量五种深度学习框架(Caffe、CNTK、MXNet、TensorFlow、Torch)在多种神经网络架构和数据集上的端到端训练时间。
- 比较Docker容器与主机系统之间的训练性能,重点关注批处理时间及首轮训练的I/O影响。
- 分析预加载和缓存机制对容器化与原生执行之间I/O性能差异的影响。
- 使用NVIDIA Docker确保GPU访问兼容性,并测量容器中GPU加速训练的性能表现。
实验结果
研究问题
- RQ1在Docker容器中运行深度学习工作负载是否会在CPU和GPU上引入可测量的性能开销?
- RQ2Docker容器化如何影响磁盘I/O性能,特别是对顺序和随机访问模式的影响?
- RQ3深度学习工具在Docker容器中运行与在主机系统原生存储时,其端到端训练性能差异如何?
- RQ4为何MXNet在Docker容器中的首轮训练时间显著快于主机系统?
- RQ5Docker容器能否在共享系统中有效支持多个深度学习框架及其版本共存,且不引起性能下降?
主要发现
- Docker容器中的CPU和GPU工作负载表现出可忽略的性能开销,大多数基准测试的差异在5%以内。
- Docker容器中的顺序I/O性能与主机系统相当,表明不存在显著的I/O瓶颈。
- 在一台磁盘驱动器上,Docker容器中的随机访问I/O性能优于主机系统,归因于对NAND缓存更高效的利用。
- MXNet在Docker容器中的首轮训练时间比在主机上快达77.2%,这是由于初始I/O处理方式的差异,但此差距在后续轮次中逐渐缩小。
- 总体而言,Docker容器中的深度学习训练工作负载表现与或优于主机系统,无明显性能缺陷。
- 本研究证实,通过Docker容器化深度学习工具是一种在共享和云环境中可行且高效的部署策略。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。