众所周知,a卡对于tensorflow gpu的支持很小,要想使用的话一般都得配n卡的电脑。而我只是感兴趣一个项目,想要跑出来一个模型,如果不用gpu加速,可能得跑一个月,所以不得不寻找在a卡上的解决方案。好在,终于找到了一个解决方案,虽然只是取巧,速度也不如正常n卡跑的快,但已经很不错了。
1 | 我的配置: |
a卡上支持的ROCm框架,暂时只支持ubuntu系统。如果你是windows系统,可以安一个虚拟机,道理是一样的,我也是在虚拟机上跑的。要注意,你的AMD显卡是否支持ROCm框架,请参考以下链接确定你的显卡是否支持。https://rocm.github.io/hardware.html 。还有你的工程如果不是python3.5\3.6,你也用不了。
如果条件都符合,就可以开始愉快的安装了。(变通的法子就是费劲儿。。。)
更新系统
建议:把源换为国内的,比如阿里的,会快很多的。
1 | sudo apt update |
安装ROCm
添加ROCm库(没有这一步,会提示找不到 软件包)
1 | wget -qO - http://repo.radeon.com/rocm/apt/debian/rocm.gpg.key | sudo apt-key add - |
安装必要的软件包
1 | sudo apt update && sudo apt install -y \ |
安装ROCm驱动
1 | sudo apt update && \ |
提示:rocm-dkms这一步下载的非常的慢,也和你的网络状况相关,我下的时候慢的时候10几k,快的时候有200。一共大概要下载500m,耐心等待一下吧。
添加用户
1 | sudo adduser $LOGNAME video |
安装miniconda(体积小、方便)
在使用python时我们很多时候会用到conda,但是conda会改变python的一些配置。所以我们先安装conda,这样就不会出现在使用tensorflow时需要使用/usr/bin/python3
这样的命令。
下载地址(64位):https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
1 | cd 下载目录 |
这一步安装的时候,会让你先阅读一个license,按enter到一个栏让你选择输入yes/no,当然选yes,然后进入下一步是选择安装路径,如果选择默认路径,就按enter,然后就会出现安装的信息,安装好之后会退出来。可以新建一个终端,验证一下是否安装成功:
1 |
|
ROCm版的tensorflow仅支持3.5和3.6,我的项目也是3.6的,所以需要新建一个环境。
1 | conda install python=3.6 |
安装python相关的软件包
1 | sudo apt update && sudo apt install -y \ |
安装TensorFlow
1 | pip3 install --user tensorflow-rocm -i https://pypi.tuna.tsinghua.edu.cn/simple |
下载的速度很快。之后就可以验证是否成功了。
1 | python |
如果import没报错,然后最后输出了tensorflow的版本,我的是1.14.1。说明一切顺利,可以愉快的开始玩耍了。
import tensorflow这一句我碰到了两个bug,给大家贴出来,避一避。
1.ImportError: librccl.so: cannot open shared object file: No such file or directory During handling of the above exception, another exception occurred:
解决:Google到的。输入以下命令,安装这些包。
1 | sudo apt-get update && sudo apt-get install -y --allow-unauthenticated rocm-dkms rocm-dev rocm-libs rccl rocm-device-libs hsa-ext-rocr-dev hsakmt-roct-dev hsa-rocr-dev rocm-opencl rocm-opencl-dev rocm-utils rocm-profiler cxlactivitylogger miopen-hip miopengemm |