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

时间:2024-05-23 19:40:18

“阿里云推出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都被调度起来了:

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

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

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

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

没办法了,将就着用吧。

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