在AMD GPU上搞深度学习——一次将错就错的冒险

2017-12-16 10:51:32来源:oschina作者:邵可佳人点击

分享

“阿里云推出GPU服务器竞价”


这对于像我这样永远缺钱的屌丝来说,无疑是天大的好消息!兴奋的我赶忙打开阿里云网站就去抢GPU服务器!


“GPU计算型,GPU可视化计算型”选哪个?


对于初次选购GPU的小白,我又朦逼了!等等,为什么要说“又”?不得不吐槽一下,阿里云的帮助文档做的的确不怎么样!在需要解释的地方,却惜字如金,写的竟是一些“高深”的概念词汇。


我去,琢磨了半天实在想不明白GPU计算型和GPU可视化计算型到底有啥区别,好吧,就让价格决定脑袋。


……


后面的悲剧相信各位看官已经料到了,GPU可视化计算型:是AMD推出的做图像处理,我“眼急手快(手贱)”的选了一台


完事后突然觉得好“惆怅”!但我还不甘心!怎么能让银子白花花的溜走?


Tensorflow不就支持AMD的GPU吗?


说干就干,巴拉巴拉,各种查资料:


原来tensorflow虽然号称支持AMD,但其实也没有N卡做的完善,需要自行安装第三方工具支持


1.安装AMD显卡驱动(这一步可以通过选择阿里云的开放免费镜像搞定)


2.安装ComputeCpp,按照官方安装文档一撸到底即可;


3.安装OpenCL,这一步也没啥好说的,一撸到底;


4.从源码编译安装Tensorflow:


这步也就是有坑的地方:tensorflow的pip版默认仅支持N卡(cuda),需要手工编译opencl版


测试:


bazel test --config=sycl:using_sycl_ccpp -k --test_timeout 1600 -- //tensorflow/... -//tensorflow/contrib/... -//tensorflow/java/... -//tensorflow/compiler/...


bazel build -c opt --config=sycl tensorflow/core/kernels:matmul_op_test


编译pip版本:


bazel build -c opt --config=sycl //tensorflow/tools/pip_package:build_pip_package


bazel build -c opt --config=sycl:using_sycl_ccpp //tensorflow/tools/pip_package:build_pip_package


生成pip文件:


bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg


注意,这里的ccpp即指ComputerCpp,tensorflow通过OpenCL调用ComputerCpp,而ComputerCpp将服务器上的CPU和GPU综合在一起进行调度计算,看起来是不是很酷?


5.验证安装


执行一下Top命令,发现CPU都被调度起来了:



在执行一下radeontop命令,发现显卡图像管道里有数据:



唯一不理想的发现,这个显卡的利用率好像不是很高。


没办法了,将就着用吧。


好了,终于,我的小毛驴动起来了。


微信扫一扫

第七城市微信公众平台