专栏名称: AI前线
我们专注大数据和机器学习,关注前沿技术和业界实践。每天发布高质量文章,技术案例等原创干货源源不断。同时有四千人的社群微课堂,每周一次业界大牛技术分享,也希望你能从这里分享前沿技术,交流深度思考。
目录
相关文章推荐
软件定义世界(SDX)  ·  DeepSeek模型在113个国企的部署及应用 ·  3 天前  
51好读  ›  专栏  ›  AI前线

论文导读 | OpenCL版Caffe:高速跨平台机器学习框架

AI前线  · 公众号  · 大数据  · 2017-10-15 18:00

正文

请到「今天看啥」查看全文


官方 GitHub 仓库:

https://github.com/BVLC/caffe/tree/opencl

开发深度神经网络模型时,我们总是希望尽量降低跨平台部署(服务器,NVIDIA 和 AMD 的显卡,甚至智能手机和平板电脑),和适配不同应用时的迁移成本。然而,包括 Caffe 在内的大多数深度学习框架都集成了 CUDA 并仅支持 NVIDIA 显卡,跨平台兼容性受到了局限。

由于各大商业芯片厂商(Altera, AMD, Apple, ARM Holdings, Creative Technology, IBM, Imagination Technologies, Intel, Nvidia, Qualcomm, Samsung, Vivante, Xilinx, ZiiLABS 等等)的支持,OpenCL 支持异构计算(译者注:指在同一系统中使用一种以上的处理器或内核)具有跨平台迁移的能力。为了保证平台兼容性,OpenCL 会检查特定的驱动并在运行时编译。

OpenCL 最初由 Apple 开发,之后被转给 Khronos Group,它被 Android、Linux、FreeBSD、MacOS 和 Windows 在内的很多操作系统支持。

OpenCL 的后端移植和优化

最初的 Caffe 是用 C++ 和 CUDA 写成的。Caffe 的 CUDA 层负责优化硬件资源分配和使用,比如 CPU/GPU 间任务调度、内存管理和任务传输。由于 CUDA 和 OpenCL 在设备抽象、缓存管理、同步处理和数据传输的实现上的差别,从 CUDA 到 OpenCL 后端的迁移并没有看上去那么简单。

这篇文章将向 OpenCL 移植的过程划分成两个阶段。第一阶段是 C++ 机器学习接口、OpenCL 封装器和 GPU 内核这三个层的逐层移植。逐层移植,意味着每个层会被依次移植,并在其他层都为原 CUDA 层的环境下进行单元测试,以确保深度神经网络算法的正确性和收敛性。







请到「今天看啥」查看全文