近日,AMD 宣布推出適用於 ROCm GPU 的 TensorFlow v1.8 接口,其中包括 Radeon Instinct MI25。AMD 稱,這是該公司在實現深度學習加速上的重要裡程碑。ROCm 即 Radeon Open Ecosystem,是 AMD 在 Linux 上的開源 GPU 計算基礎環境。這次的 TensorFlow 實現使用了 MIOpen——一個適用於深度學習的優化 GPU 例程庫。
目前,AMD 的深度學習加速解決方案已經官方支持 TensorFlow 和 Caffe 兩種框架。
AMD 提供了一個預構建的 whl 包,使安裝變得像 Linux 通用 TensorFlow 的安裝那樣簡單。AMD 已經發布了安裝說明以及一個預構建的 Docker 映像。
除了支持 TensorFlow 1.8,AMD 目前還在致力於對 TensorFlow 主存儲庫進行所有針對 ROCm 的強化。其中一些補丁已經在上遊合併,另外幾個正在積極審查中。在全面更新增強功能時,AMD 還將發布和維護未來支持 ROCm 的 TensorFlow 版本,如 v1.10 版。
AMD 相信深度學習的優化、可便攜性以及可擴展性的未來在於特定領域編譯器的基礎之上。其開發者受到 XLA 早期結果的啟發,正在朝著為 AMD GPU 開放和優化 XLA 的方向發展。
有關 AMD 深度學習加速的更多內容可參照:www.amd.com/deeplearning
2017 年,AMD 發布了 ROCm 平臺,開始為開發者提供深度學習支持。同時,這家公司也開源了高性能機器學習庫 MIOpen。
準備能運行 ROCm 和 docker 的機器
以下教程假定了使用全新的機器來準備 ROCm+Docker 環境;除了典型的庫存包(stock package)更新以外,不需要安裝額外的軟體。
最新的公開 docker.re 發布,18.02 版本已知在 docker 鏡像下與非根帳戶共同使用時存在缺陷。請使用以下 deb 包更新 docker 包到 18.04 版本。
安裝包:https://download.docker.com/linux/ubuntu/dists/xenial/pool/nightly/amd64/docker-ce_18.04.0~ce~dev~git20180315.170650.0.8fabfd2-0~ubuntu_amd64.deb
首先推薦安裝 ROCm 內核,ROCm KFD 按 DKMS 模塊的方式分布,適用於 ROCm1.7.0 後的版本。AMD 推薦儘量升級到最新的通用內核。更新的內核通常能夠更好地支持 AMD 硬體,並且庫存視頻解析度和硬體加速性能也通常會得到改善。同時,ROCm 已經官方支持了 Ubuntu 和 Fedora Linux 分布。以下的 asciicast 展示了在 Ubuntu16.04 上更新內核。更多的細節可以在 Radeon Open Computer 網站上找到。
第1步:安裝 ROCm 內核
你需要鍵入(或複製)如下命令:
# OPTIONAL, upgrade your base kernel to 4.13.0-32-generic, reboot required
sudo apt update && sudo apt install linux-headers-4.13.0-32-generic linux-image-4.13.0-32-generic linux-image-extra-4.13.0-32-generic linux-signed-image-4.13.0-32-generic
sudo reboot
# Install the ROCm rock-dkms kernel modules, reboot required
wget -qO - http:
sudo apt-get update && sudo apt-get install rock-dkms
sudo update-initramfs -u
sudo reboot
# Add user to the video group
sudo adduser $LOGNAME video
確保在安裝 ROCm 內核包後重啟計算機,以強制新內核在重啟時加載。你可以通過在提示符下鍵入以下命令來驗證是否加載了 ROCm 內核:
lsmod | grep kfd
在屏幕上打出的內容應該如下:
amdkfd 270336 4
amd_iommu_v2 20480 1 amdkfd
amdkcl 24576 3 amdttm,amdgpu,amdkfd
第 2 步:安裝 docker
確認過新核正在運行之後,下一步就是安裝 docker 引擎。可以在 docker 的網站上找到安裝 docker 的手冊,但可能最簡單的方法時使用 docker 自己的 bash 腳本。如果允許在你的機器上運行從網際網路下載的 bash 腳本,打開一個 bash 提示符並執行以下命令行:
curl -sSL https:
用上面的腳本查看 Linux 發行版和安裝的內核,並正確安裝 docker。腳本將在 ROCm 平臺上輸出一條警告消息,表明它不能識別 ROCm 內核;這個是正常的,可以忽略。腳本可在無法識別內核的情況下進行正確的 docker 安裝。
第 3 步:驗證/更改 docker 設備存儲驅動程序
sudo docker info
docker 設備存儲驅動程序管理 docker 如何訪問圖像和容器。docker 官網上可以找到很多關於存儲驅動程序架構的文檔和詳細描述。通過在命令提示符下發出 sudo docker info 命令並查找「Storage Driver:」輸出,可以檢查哪個存儲驅動程序正被 docker 使用。我們很難預測安裝時存儲驅動程序 docker 會選擇什麼作為默認值,默認值會隨著時間的推移而變化,但在經驗中,我們發現尺寸較大的圖像會遇到 devicemapper 存儲驅動程序問題。它對圖像和容器的最大尺寸施加了限制。如果你在「大數據」領域工作,如在深度神經網絡的應用中,devicemapper 限制了 10GB 的默認值。如果遇到此限制,有兩個選項可用:
1. 切換到其他存儲驅動
2. 如果你必須使用「devicemapper」,請在服務啟動時傳遞「devicemapper」配置變量——dm.basesize,以增加潛在圖像的最大值。
在創建和使用「devicemapper」圖像後切換到「overlay2」存儲驅動程序的缺點是需要重新創建現有圖像。因此,AMD 建議在進行重要工作前驗證是否使用「overlay2」存儲驅動程序設置了 docker。
第 4 步 A:使用 docker CLI 構建 ROCm 容器
git clone https:
sudo docker build -t rocm/rocm-terminal rocm-terminal
sudo docker run -it --device=/dev/kfd --device=/dev/dri --group-add video rocm/rocm-terminal
(可選)第 4 步 B:使用 docker-compose 構建 ROCm 容器
git clone https:
sudo docker-compose run --rm rocm
第 5 步:驗證 ROCm-docker 容器是否成功構建
cd /opt/rocm/hsa/sample
sudo make
./vector-copy
參考內容:
https://medium.com/tensorflow/amd-rocm-gpu-support-for-tensorflow-33c78cc6a6cf
https://github.com/RadeonOpenCompute/ROCm-docker
本文為機器之心報導,轉載請聯繫本公眾號獲得授權。
✄---
加入機器之心(全職記者 / 實習生):hr@jiqizhixin.com
投稿或尋求報導:content@jiqizhixin.com
廣告 & 商務合作:bd@jiqizhixin.com