[论文解读] CNNLab: a Novel Parallel Framework for Neural Networks using GPU and FPGA-a Practical Study with Trade-off Analysis
CNNLab 是一种新颖的异构中间件框架,通过统一的编程模型,动态地在 GPU 和 FPGA 加速器之间卸载深度学习工作负载,实现了 GPU 上高达 100 倍的加速,FPGA 上功耗效率提升 50 倍,卷积层中能量效率相当,全连接层中性能密度更优。
Designing and implementing efficient, provably correct parallel neural network processing is challenging. Existing high-level parallel abstractions like MapReduce are insufficiently expressive while low-level tools like MPI and Pthreads leave ML experts repeatedly solving the same design challenges. However, the diversity and large-scale data size have posed a significant challenge to construct a flexible and high-performance implementation of deep learning neural networks. To improve the performance and maintain the scalability, we present CNNLab, a novel deep learning framework using GPU and FPGA-based accelerators. CNNLab provides a uniform programming model to users so that the hardware implementation and the scheduling are invisible to the programmers. At runtime, CNNLab leverages the trade-offs between GPU and FPGA before offloading the tasks to the accelerators. Experimental results on the state-of-the-art Nvidia K40 GPU and Altera DE5 FPGA board demonstrate that the CNNLab can provide a universal framework with efficient support for diverse applications without increasing the burden of the programmers. Moreover, we analyze the detailed quantitative performance, throughput, power, energy, and performance density for both approaches. Experimental results leverage the trade-offs between GPU and FPGA and provide useful practical experiences for the deep learning research community.
研究动机与目标
- 解决大规模深度神经网络高效加速的挑战,实现高性能与低功耗。
- 通过统一的编程模型抽象硬件复杂性,减轻机器学习专家的编程负担。
- 根据工作负载特征与系统约束,实现 GPU 与 FPGA 之间的动态任务卸载。
- 在性能、吞吐量、功耗、能量与性能密度方面,对 GPU 与 FPGA 加速器进行量化权衡分析。
- 基于 NVIDIA K40 GPU 与 Intel-Altera DE5 FPGA 构建实用的端到端评估原型。
提出的方法
- 设计一种异构混合系统,集成 CPU、GPU 与 FPGA 加速器,以处理深度学习工作负载中计算密集的部分。
- 使用 CUDA 与 OpenCL 实现统一的编程模型,抽象底层硬件细节,实现神经网络层到加速器的无缝映射。
- 开发运行时调度器,基于实时工作负载分析与性能约束,在 GPU 与 FPGA 之间进行选择。
- 基于 NVIDIA K40 GPU 与 Altera DE5 FPGA 搭建硬件原型,对真实神经网络模型进行端到端性能评估。
- 采用量化指标——执行时间、吞吐量、功耗、能量与性能密度——对比 GPU 与 FPGA 在卷积层与全连接层中的实现表现。
- 评估最先进的 CUDA 库(cuDNN 与 cuBLAS),以评估其对能量效率与性能的影响。
实验结果
研究问题
- RQ1如何设计一种统一的编程模型,以抽象 GPU 与 FPGA 的硬件复杂性,同时支持深度学习工作负载中的高效任务卸载?
- RQ2在卷积层与全连接层中,GPU 与 FPGA 加速器在性能、吞吐量、功耗、能量效率与性能密度方面的量化权衡是什么?
- RQ3混合 GPU-FPGA 框架是否能在真实世界深度学习应用中实现与独立加速器相当或更优的性能与能量效率?
- RQ4不同的 CUDA 编程模型(cuDNN 与 cuBLAS)如何影响深度学习推理与训练中的能量效率与性能?
- RQ5从真实硬件评估中可获得哪些实用洞见,以指导未来异构深度学习加速器的设计?
主要发现
- 对于相同深度学习工作负载,GPU 的加速比最高可达 100 倍,吞吐量比 FPGA 高 100 倍。
- FPGA 的功耗效率比 GPU 高 50 倍,使其在功耗受限环境中显著更节能。
- 在卷积层中,GPU 与 FPGA 的能量效率相近,FPGA 为 10 GFLOPS/W,GPU 为 14 GFLOPS/W。
- 在全连接层中,GPU 展现出更优的性能密度,其单位能量操作数高于 FPGA。
- cuBLAS 在能量效率方面优于 cuDNN,可在所评估工作负载中实现更高加速比与更低功耗。
- CNNLab 框架成功根据工作负载特征卸载任务,实现最优权衡,且未增加程序员负担。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。