虽然"googl'ing"并做了一些研究,但我无法在AMD硬件上找到科学GPGPU计算和OpenCL的 any 严重/流行框架/ sdk . 我错过了哪些文献和/或软件?
特别是我对 deep learning 感兴趣 .
据我所知,deeplearning.net推荐使用NVIDIA硬件和CUDA框架 . 此外,我所知道的所有大型深度学习框架,如Caffe,Theano,Torch,DL4J,......都专注于CUDA,并不打算支持OpenCL / AMD .
此外,人们可以找到大量的科学论文以及基于CUDA的深度学习任务的相应文献,但基于OpenCL / AMD的解决方案几乎没有 .
在2015/16学年,是否有可能出现基于OpenCL / AMD的新解决方案或现有科学框架?
使用OpenCL / AMD进行深度学习的良好开端是什么?有文献吗?教程?杂项来源?
8 回答
请查看https://01.org/intel-deep-learning-framework - 英特尔®深度学习框架(IDLF)为加速深度卷积神经网络的英特尔®平台提供统一框架 . 它是开源的,因此您也可以将其移植到AMD硬件上 . 很酷的事情:它可以在配备Intel Iris显卡的MacBook Pro上运行 .
Edit 1 请参阅Mikael Rousson's回答 - 亚马逊现在是前进的方式,因为你可以从他们那里获得计算能力 .
Edit 2 我创建了series of guides,了解如何使用
theano
设置用于深度学习的Amazon EC2实例 . 它比在个人计算机上运行方便得多 .Edit 3 TensorFlow现在似乎比
theano
被广泛接受,所以我已相应地更新了指南 .我和你自己的情况一样,我有一台带有Intel Iris图形的MacBook Pro . 我花了一周的时间来查看所有可能的解决方法,我非常欢迎我提供替代方案 .
我目前拥有的最佳解决方案是:
安装
python
库tensorflow并利用GPU支持并继续更新到最新的开发版本 .使用theano - 并使用existing GPU support与
tensorflow
类似购买NVIDIA显卡并在PC上使用
如果您绝对需要OpenCL中的解决方案,并且您愿意从高级别的理解(没有教程)编写所有内容,请查看DeepCL和可能的pyOpenCl .
我发现使用OpenCL的任何解决方案,例如pyOpenCl,还没有用于深度学习的用户友好界面,即在另一种方法中编写代码需要更长的时间,而不是快速编写代码并在CPU上运行 . 尽管如此,这里有深度学习的最佳替代OpenCL库:
Python - DeepCL
Jonathan's Torch7 Utility Library - C++
开发中
tensorflow是adding OpenCL支持一旦对
Eigen
和其他依赖项的改进是finishedtheano adding support到OpenCL到clBLAS
Caffe在development stages中添加了OpenCL支持但有点落后
theano
正在进行中,似乎TensorFlow 现在roadmap上有OpenCL支持 .
见:Github issue .
希望不要离工作版本那么远 .
查看由AMD驱动的ROCm platform . 这是第一个用于GPU计算的开源HPC / Hyperscale级平台,它也是独立于编程语言的 .
特别:
深度学习,请参阅https://rocm.github.io/dl.html
对于OpenCL,请参阅:
https://rocm.github.io/QuickStartOCL.html
https://gpuopen.com/opencl-rocm1-6/
有用的教程可以在这里找到:https://rocm.github.io/tutorials.html
我正在为Tensorflow编写opencl 1.2支持 . https://github.com/hughperkins/tensorflow-cl目前支持:
blas矩阵乘法
渐变
特征操作,例如:reduction,argmin / argmax,每元素操作(二元和一元)
PlaidML(https://github.com/plaidml/plaidml)是一个完全开源的深度学习运行时,它运行在OpenCL之上,并与Keras集成,以提供熟悉的面向用户的API . repo中的README具有更详细的状态,目前Linux上的convnet推断得到了很好的支持,但我们(http://vertex.ai)正在努力尽快扩展完整性和平台支持 . 我们的持续集成机器包括各种AMD和NVIDIA GPU,现在所有的Linux,但我们也在努力添加Mac和Windows .
另一种方法是在Amazon Web Services上使用GPU实例 . 您可以找到已安装常用深度学习包的AMI . 例如:
火炬:https://github.com/torch/torch7/wiki/Cheatsheet#ec2-public-ami
Theano Caffe:https://www.kaggle.com/forums/f/208/getting-started/t/11505/an-aws-ami-mainly-for-deep-learning
提示:使用现货实例获得更便宜的价格(g2.2x大约10美分/小时) .
--- 2017年8月更新AMD方面发生的酷炫新事---
现在它实际上可以在大多数AMD硬件上运行任何库Check Here
截至2015年10月25日
似乎AMD和其他人已经开始致力于开发几个用于深度学习的OpenCL加速框架 . 所以是OpenCL的支持现在已经存在深度学习:)
这是一个OpenCL加入框架或工具的列表,这些框架或工具主要是在深入学习的基础上开发的 . 我希望他们能在未来几年得到更新
我们现在知道(2015年10月25日)有三个深度学习框架,非常受研究人员的欢迎,并且已经看到了一些商业产品
Theano
Caffe
火炬
caffe有很好的OpenCL支持,因为amd开发了一个完整版本的caffe,它几乎支持caffe的所有功能,并且它正在积极开发 . 它被命名为OpenCL Caffe . 这是存储库
OpenCL Caffe
如果你正在考虑性能,那么根据那个网站(我自己没有标记它)它在AMD R9 Fury硬件(培训)中每秒提供大约261张图像或每天2250万张图像 . 与nvidia K40相比,它可以每天处理4000万张图像 . 所以根据网站,它可以用六分之一的钱给出一半的表现 . (考虑到k40是3000美元卡而r9愤怒是600美元左右) . 然而,使用任何消费卡会给你一个关于记忆(vram)的问题,这在深度学习中非常重要 .
最近几天火炬似乎也有不错的OpenCL支持 . 但它由一个人维护 . 它声称完全支持火炬的所有功能 . 但是它没有给出关于性能的想法 . 这是存储库 . 它得到积极维护 .
cltorch
目前对于theano框架似乎没有一个像样的opencl后端,但工作正在进行中 . 并且可以使用当前版本完成简单的程序 .
还有其他一些用于深度学习的opencl框架 . 需要一些时间来整理它们以确定它们是否正常工作 .