Nyx*_*nyx 63 python opencl python-2.7 keras tensorflow
我开始学习Keras,我认为它是Tensorflow和Theano之上的一层.但是,我只能访问AMD GPU,例如AMD R9 280X.
如何设置我的Python环境,以便通过Keras/Tensorflow支持OpenCL来使用我的AMD GPU?
我在OSX上运行.
Hug*_*ins 66
我正在为Tensorflow编写一个OpenCL 1.2后端,网址是https://github.com/hughperkins/tensorflow-cl
这个OpenCL的tensorflow分支具有以下特征:
这不是Tensorflow唯一可用的OpenCL分支.还有一个由Codeplay https://www.codeplay.com开发的分支,使用Computecpp,https: //www.codeplay.com/products/computesuite/computecpp 他们的分支比我自己更强,就我而言知道,就其工作的特定GPU设备而言.您需要检查平台支持说明(在hte computecpp页面的底部),以确定您的设备是否受支持.codeplay fork实际上是一个官方的Google fork,它位于:https://github.com/benoitsteiner/tensorflow-opencl
Tho*_*ale 34
这篇文章的原始问题是:如何让Keras和Tensorflow与AMD GPU一起运行.
这个问题的答案如下:
1.)如果您可以使Tensorflow正常工作(可选择在您的虚拟/ conda环境中),Keras将起作用.
2.)要像其他人所说的那样让Tensorflow在AMD GPU上工作,这种方法可以用来编译Tensorflow来使用OpenCl.为此,请阅读以下链接.但为简洁起见,我将在此总结所需的步骤:
您将需要AMD专有驱动程序.这些目前仅在Ubuntu 14.04上可用(Ubuntu决定改变UI呈现方式之前的版本).支持Ubuntu 16.04正在编写此帖子,仅限于通过AMDProDrivers的几个GPU.想要深入学习AMD GPU的读者应该注意这一点!
使用OpenCl支持编译Tensorflow还需要您获取并安装以下先决条件:OpenCl头文件,ComputeCpp.
满足先决条件后,配置您的构建.请注意,有三个选项可用于编译Tensorflow:Std Tensorflow(稳定),Benoits Steiner的Tensorflow-opencl(开发)和Luke Iwanski的Tensorflow-opencl(高度实验性),您可以从github中获取.另请注意,如果您决定从任何opencl版本构建,那么使用opencl的问题将会丢失,因为假设您正在使用它.相反,这意味着如果从标准张量流进行配置,则当配置脚本要求您使用opencl时,您需要选择"是",并且对于CUDA使用"否".
然后像这样运行测试:
$ bazel test --config = sycl -k --test_timeout 1600 - // tensorflow/... - // tensorflow/contrib/... - // tensorflow/java/... - // tensorflow/compiler/...
更新:在我的设置上执行此操作需要很长时间才能完成设置.需要很长时间的部分都是运行的测试.我不确定这意味着什么,但我的很多测试都是在1600秒的时间内完成.可能会缩短持续时间,但会以更多测试超时为代价.或者,您可以在不进行测试的情况下构建张量流.在撰写本文时,运行测试已经花了2天时间.
或者像这样构建pip包:
bazel build --local_resources 2048,.5,1.0 -c opt --config=sycl //tensorflow/tools/pip_package:build_pip_package
Run Code Online (Sandbox Code Playgroud)
请实际阅读Codeplay上的博文:Lukas Iwansky在2017年3月30日发布了一篇关于如何让Tensorflow与OpenCl一起工作的综合教程.所以这是一篇非常近期的帖子.还有一些我在这里没有写的细节.
如上面的许多帖子所示,在整个互联网中传播了一些信息.Lukas的帖子在价值方面增加的是所有信息都汇集到一个地方,这应该使Tensforflow和OpenCl设置不那么令人生畏.我只会在这里提供一个链接:
https://www.codeplay.com/portal/03-30-17-setting-up-tensorflow-with-opencl-using-sycl
这里发布了一个稍微完整的演练:
http://deep-beta.co.uk/setting-up-tensorflow-with-opencl-using-sycl/
它主要区别在于明确告诉用户他/她需要:
注意上面使用tensorflow-cl提到了另一种方法:
https://github.com/hughperkins/tensorflow-cl
虽然看起来这种方法不太活跃,但我现在无法辨别哪种方法更好.发布的问题较少,解决这些问题的对话也较少.去年出现了重大推动.自2016年11月以来,额外的推动已经开始减少,尽管Hugh在撰写此帖后几天似乎已经推出了一些更新.(更新:如果你阅读了一些文档自述文件,这个版本的tensorflowo现在只依赖于社区支持,因为主要的开发人员忙于生活.)
更新(2017-04-25):我有一些基于测试tensorflow-opencl的注释.
以下是使用我的SETUP的CIFAR10数据集(带有iGPU的A10-7850)计算1个纪元的一些数字.你的里程几乎肯定会有所不同!
您可以看到,在这种特殊情况下,性能更差.我将此归因于以下因素:
如果您使用的是具有更多VRAM和更多流处理器的AMD GPU,您肯定会获得更好的性能数字.我有兴趣阅读人们正在实现的数字,以了解什么是可能的.
如果/当更新被推送时,我将继续保持这个答案.
3.)目前正在暗示使用AMD的RocM计划和miOpen(cuDNN等效)库的替代方法.这些/将是开源库,可实现深度学习.需要注意的是,RocM支持目前仅适用于Linux,并且miOpen还没有发布到野外,但是Raja(AMD GPU头)已经在AMA中表示使用上述内容,应该可以做深入学习AMD GPU.实际上,不仅计划支持Tensorflow,还计划支持Cafe2,Cafe,Torch7和MxNet.
Tal*_*aid 11
可以通过PlaidML Keras后端使用AMD GPU。
最快:PlaidML通常比流行平台(例如TensorFlow CPU)快10倍(或更多),因为它支持所有GPU,独立于品牌和型号。PlaidML加速了AMD,Intel,NVIDIA,ARM和嵌入式GPU上的深度学习。
最容易的:PlaidML易于安装并且支持多个前端(当前为Keras和ONNX)
免费:PlaidML是完全开源的,并且不依赖具有专有和限制性许可证的任何供应商库。
对于大多数平台,开始加速深度学习就像运行一些命令一样容易(假设您已安装Python(v2或v3)):
virtualenv plaidml
source plaidml/bin/activate
pip install plaidml-keras plaidbench
Run Code Online (Sandbox Code Playgroud)
选择您要使用的加速器(许多计算机,尤其是笔记本电脑,有多个):
plaidml-setup
Run Code Online (Sandbox Code Playgroud)
接下来,尝试对MobileNet推理性能进行基准测试:
plaidbench keras mobilenet
Run Code Online (Sandbox Code Playgroud)
或者,尝试培训MobileNet:
plaidbench --batch-size 16 keras --train mobilenet
Run Code Online (Sandbox Code Playgroud)
与keras套装一起使用
os.environ["KERAS_BACKEND"] = "plaidml.keras.backend"
Run Code Online (Sandbox Code Playgroud)
想要查询更多的信息
https://github.com/plaidml/plaidml
https://github.com/rstudio/keras/issues/205#issuecomment-348336284
小智 5
这是一个老问题,但是因为我花了几个星期的时间试图自己解决这个问题:
现在,最后,经过3-4周试图找出OpenCL等,我发现本教程可以帮助您快速入门.这是让hipCaffe正常运行的一步一步.与nVidia不同,请确保您拥有支持的硬件!https://rocm.github.io/hardware.html.认为你可以在没有他们支持的硬件的情况下使用它 祝好运.你被警告过了.一旦你启动并运行ROCM(并运行验证测试),这里是hipCaffe教程 - 如果你有ROCM,你将在10分钟内进行MNIST验证测试 - 甜蜜! https://rocm.github.io/ROCmHipCaffeQuickstart.html
归档时间: |
|
查看次数: |
91701 次 |
最近记录: |