众所周知,a卡对于tensorflow gpu的支持很小,要想使用的话一般都得配n卡的电脑。而我只是感兴趣一个项目,想要跑出来一个模型,如果不用gpu加速,可能得跑一个月,所以不得不寻找在a卡上的解决方案。好在,终于找到了一个解决方案,虽然只是取巧,速度也不如正常n卡跑的快,但已经很不错了。

我的配置:
显卡:RX 550
所用系统:虚拟机ubuntu 18
注:如果是虚拟机的话,最好分配3GB内存或以上,否则可能无法import tensorflow

a卡上支持的ROCm框架,暂时只支持ubuntu系统。如果你是windows系统,也可以安一个虚拟机,道理是类似的,我也是在虚拟机上跑的。用虚拟机进行下面教程的时候:会遇到无法导入显卡信息的bug,但是不影响训练情况。经过测试,我在虚拟机上训练的速度是之前在a卡上训练速度的四五倍,不知道安linux子系统是不是会再快一点,但我没做尝试。要注意,你的AMD显卡是否支持ROCm框架,请参考以下链接确定你的显卡是否支持。https://rocm.github.io/hardware.html 。还有你的工程如果不是python3.5/3.6,你也用不了此框架。

如果条件都符合,就可以开始愉快的安装了。(变通的法子就是费劲儿。。。)

更新系统

建议:把源换为国内的,比如阿里的,会快很多的。

sudo apt update
sudo apt upgrade

安装ROCm

添加ROCm库(没有这一步,会提示找不到 软件包)

wget -qO - http://repo.radeon.com/rocm/apt/debian/rocm.gpg.key | sudo apt-key add -
sudo sh -c 'echo deb [arch=amd64] http://repo.radeon.com/rocm/apt/debian/ xenial main > /etc/apt/sources.list.d/rocm.list'

安装必要的软件包

sudo apt update && sudo apt install -y \build-essential \clang \clang-format \clang-tidy \cmake \cmake-qt-gui \ssh \curl \apt-utils \pkg-config \g++-multilib \git \libunwind-dev \libfftw3-dev \libelf-dev \libncurses5-dev \libpthread-stubs0-dev \vim \gfortran \libboost-program-options-dev \libssl-dev \libboost-dev \libboost-system-dev \libboost-filesystem-dev \rpm \wget

安装ROCm驱动

sudo apt update && \sudo apt install -y --allow-unauthenticated \rocm-dkms rocm-dev rocm-libs \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

提示:rocm-dkms这一步下载的非常的慢,也和你的网络状况相关,我下的时候慢的时候10几k,快的时候有200。一共大概要下载500m,耐心等待一下吧。

添加用户

sudo adduser $LOGNAME video
sudo reboot

安装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

cd 下载目录
chmod +x ./Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh

这一步安装的时候,会让你先阅读一个license,按enter到一个栏让你选择输入yes/no,当然选yes,然后进入下一步是选择安装路径,如果选择默认路径,就按enter,然后就会出现安装的信息,安装好之后会退出来。可以新建一个终端,验证一下是否安装成功:

conda -h#输出以下信息就是成功了usage: conda [-h] [-V] command ...conda is a tool for managing and deploying applications, environments and packages.Options:.....

ROCm版的tensorflow仅支持3.5和3.6,我的项目也是3.6的,所以需要新建一个环境。

conda install python=3.6

安装python相关的软件包

sudo apt update && sudo apt install -y \python3-numpy \python3-dev \python3-wheel \python3-mock \python3-future \python3-pip \python3-yaml \python3-setuptools

安装TensorFlow

pip3 install --user tensorflow-rocm -i https://pypi.tuna.tsinghua.edu.cn/simple

下载的速度很快。之后就可以验证是否成功了。

pythonimport tensorflow as tftf.__version__

如果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到的。输入以下命令,安装这些包。

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

2.terminate called after throwing an instance of ‘std::bad_alloc’ what(): std::bad_alloc 已放弃 (核心已转储)

解决:Google一下,你就知道。这句话的意思是虚拟机内存分配的不够,我原来只分配了2G的内存,加到3G以后,再import tensorflow就好用啦。

希望这个教程能帮助到大家,也希望大家都可以用a卡跑gpu。更简单的方法还是换电脑啊。。。。

给大家推荐一个非常好的科研网站可以使用免费Web of Science、zhi网、IEEE、EI等账号。亲测好用。这个网站拥有众多的数据库,法律的、医学的、工科的,等等。

感谢大家的时间,并希望以上的内容会对大家有所帮助。

欢迎大家访问我的博客

tensorflow在AMD上用ROCm框架实现GPU训练(亲测有效)相关推荐

  1. 使用tensorflow查询机器上是否存在可用的gpu设备

    主要内容: 使用tensorflow查询机器上是否存在可用的gpu设备 使用tensorflow获取可用的gpu设备编号 tensorflow对GPU设备的编码 使用tensorflow查询机器上是否 ...

  2. Gitee上传代码保姆级教程(亲测有效)

    作为一名程序猿or程序媛,怎么能不会使用Gitee上传代码,协同开发呢? 今天,一个小白保姆级Gitee上传代码教程他来啦!亲测有效,小伙伴们来trytry吧! 前提 1.已经下载过Git Bash ...

  3. Tensorflow【实战Google深度学习框架】预训练与微调含代码(看不懂你来打我)

    文章目录 1.前言 2.什么是预训练和微调 3.预训练和微调的作用 4.在一个新任务上微调一个预训练的模型代码实现 1.前言 预训练(pre-training/trained)和微调(fine tun ...

  4. Markdown数学公式、特殊字符、上下标、积分、分式/根式 亲测有效

    一.公式使用参考 1.如何插入公式 行中公式(放在文中与其它文字混编)可以用如下方法表示: 输入: ${dlnL(p)\over dp}$ 输出: dlnL(p)dp{dlnL(p)\over dp} ...

  5. 在电脑上使用考研APP的方法(亲测有效)

    目录 实际问题:为什么要在电脑上使用手机APP? 操作教程 1.下载安装安卓模拟器 2.下载考研APP安卓版 3.在雷电模拟器中安装文都考研APP 4.配置转屏功能 5.效果展示 常见问题解决方法 1 ...

  6. 屏蔽电脑上所有的广告推送(亲测可用)

    如何阻止和屏蔽电脑上弹窗广告,相信很多朋友们对电脑上铺天盖地的广告恶心到吐,下面给大家介绍一下,希望可以帮助到大家. 方法超级简单的: 计算机右键[管理]-系统工具-任务计划程序-任务计划程序库. 然 ...

  7. Python爬虫入门实例九之Scrapy框架爬取股票信息(亲测有效)

    文章目录 写在前面 一.准备工作 二.具体步骤 1.建立工程和Spider模板 2.编写Spider 3.编写pipelines 4.更改settings 5.运行爬虫 三.注意事项 1.文件内容为空 ...

  8. Ubuntu网络显示已连接,但是上不了网,解决方法(亲测有效)

    Ubuntu显示网络已连接,如下图所示 但是打开浏览器显示并没有连上网络 解决方法: 打开网络设置,选择更多网络适配器选项 右键本机网络,选择属性 共享该网络 返回Ubuntu,打开浏览器 完美解决

  9. 在服务器上运行本地的项目 (部署亲测有效)转载请注明出处

    1)内容都是一样的就是文件名不同而已.底层是C语言的不过这第一步只针对现在使用的项目部署所需要的文件.后面的步骤就适合大部分项目了. libSDF_fabu.so, libSDF_zhuce.so, ...

最新文章

  1. 与15级新加入团队同学的约定
  2. 负载均衡的几种常用方案
  3. Oracle Proc开发之Makefile的编写模板
  4. TensorFlow 从零到helloWorld
  5. Atitit 如何在外包找到自己的技术深度
  6. paip.ASP 开发调试大总结
  7. 笑得肚痛!程序猿的 46 张 GIF 搞笑图
  8. ACPI电源管理模式详解
  9. 打开conda环境报错:UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x9a in position 317: illegal multibyt
  10. 【网速监控工具——TrafficMonitor 】的下载安装使用教程
  11. 什么是类?以及类的分类
  12. c#语言猜数字游戏,C#实现猜数字游戏
  13. 用 Python 动态模拟太阳系运转
  14. 如何为SharePoint文档库、文件夹、文件单独设置权限
  15. C#阿里云oss接口上传和下载文件
  16. 数据包从物理网卡流经 Open vSwitch 进入 OpenStack 云主机的流程
  17. 在计算机中公式运算符有哪些,Excel在公式中使用运算符号
  18. 2021河南省第十三届ACM/icpc大学生程序设计竞赛榜单
  19. 如何写综述论文全攻略
  20. 针对kindeditor编辑器的修改记录整理

热门文章

  1. FTPrep, 22 Generate Parenthese
  2. 二十一世纪大学英语读写教程(第三册)学习笔记(原文)——9 - Space Politics(空间政治)
  3. python challenge 7-12关 攻略
  4. Es的针对于nested类型的多重子聚合
  5. 【先锋】聚焦私有云市场,看BoCloud博云如何将Docker落地实践
  6. 微信小程序 设置cookie-保持会话持久-免登录
  7. Zabbix使用Python监控阿里云ECS
  8. Oracle10g 数据库论文
  9. SKIL/配置/高可用
  10. 在Linux上部署各种软件总结