當前位置:
首頁 > 新聞 > AMD 開源高性能機器智能庫MIOpen,可加速卷積神經網路

AMD 開源高性能機器智能庫MIOpen,可加速卷積神經網路

選自GitHub

機器之心編譯

參與:蔣思源


AMD 最近宣布新的深度學習加速庫 MIOpen 1.0 現已發布,該深度學習庫支持加速卷積神經網路,並且構建和運行在 ROCm 軟體棧的頂部。同時 MIOpen 還提供了卷積層、池化層、批量歸一化層等眾多使用參考,機器之心對這一機器智能庫的特性和安裝進行了介紹。

AMD 開源高性能機器智能庫MIOpen,可加速卷積神經網路新發布的版本包含以下特性:

  • 同時為前向和反向傳播最優化的深度卷積求解器(Deep Convolution Solver)

  • 包括 Winograd 和 FFT 轉換的卷積優化

  • 為深度學習優化了 GEMM

  • 提供了池化、Softmax、激活函數、批量歸一化梯度演算法和 LR 歸一化等

  • MIOpen 採用 4 維張量描述數據,即 Tensors 4D NCHW 格式

  • 支持啟用了 OpenCL 和 HIP 的框架 API

  • MIOpen Driver 可以允許在 MIOpen 特定層中測試前向/反向傳播網路

  • 二進位包支持 Ubuntu 16.04 和 Fedora 24

  • 源代碼在: https://github.com/ROCmSoftwarePlatform/MIOpen

ROCm1.6 已經有 MIOpen 的與構建包

安裝 ROCm MIOpen 實現(假定已經安裝了「rocm」和「rocm-opencl-dev」包):

對於 OpenCL 開發環境來說:

sudo apt-get install miopengemm miopen-opencl

對於 HIP 開發環境來說:

sudo apt-get install miopengemm miopen-hip

同時也可以從源代碼構建:https://github.com/ROCmSoftwarePlatform/MIOpen

ROCm 所支持的深度學習框架:

AMD 開源高性能機器智能庫MIOpen,可加速卷積神經網路

MIOpen

MIOpen 是 AMD 的高性能機器學習基元庫,它支持兩種程序設計模型:

  • OpenCL

  • HIP

前提要求

  • 啟用 ROCm 的平台,更多信息:https://rocm.github.io/install.html

  • 基礎軟體棧,需要包括:

  • OpenCL:OpenCL 庫和頭文件(header files)

  • HIP:HIP、HCC 庫和頭文件,還需要 clang-ocl

  • MIOpen 依賴於 miopengemm 庫,並允許啟用運算 GEMM 所需的幾個功能性函數。miopengemm 是我們推薦的,擔不是必須的

  • ROCm cmake 組件可以在此處安裝:https://github.com/RadeonOpenCompute/rocm-cmake

請在以上依賴庫各自的項目中尋找安裝指導並完成安裝。

使用 cmake 配置

首先用命令創建一個 build 目錄,並轉到該目錄下:

mkdir build; cd build;

然後再配置 cmake。MIOpen 首選的後端可以使用 -DMIOPEN_BACKEND cmake 變數進行設置。

對於 OpenCL,運行:

cmake -DMIOPEN_BACKEND=OpenCL ..

以上命令假設 OpenCL 已經安裝在標準位置中。如果沒有的話,我們需要手動設置這兩個 cmake 變數:

cmake -DMIOPEN_BACKEND=OpenCL -DOPENCL_LIBRARIES= -DOPENCL_INCLUDE_DIRS ..

對於 HIP,運行:

設置 C++編譯器為 hcc。

cmake -DMIOPEN_BACKEND=HIP -DCMAKE_PREFIX_PATH=";;" ..

cmake 步驟的示例可以為:

CXX=/opt/rocm/hcc/bin/hcc cmake -DMIOPEN_BACKEND=HIP -DCMAKE_PREFIX_PATH="/opt/rocm/hcc;/opt/rocm/hip" ..

我們需要將默認安裝地址設置為「/opt/rocm」,這一步可以使用 CMAKE_INSTALL_PREFIX 完成設置:

cmake -DMIOPEN_BACKEND=OpenCL -DCMAKE_INSTALL_PREFIX= ..

另外,我們可以使用 MIOPEN_DB_PATH 變數設置網路配置的資料庫路徑。通常它默認設置為資料庫文件安裝的地方。而對於開發目的來說,設置 BUILD_DEV 將配置資料庫文件的儲存路徑為源目錄中:

cmake -DMIOPEN_BACKEND=OpenCL -DBUILD_DEV=On ..

在使用 ccmake 運行 cmake 之後,配置將得到改變:ccmake .. 或 cmake-gui: cmake-gui ..。注意,ccmake 程序在 Windows 中是不可用的。

構建庫

我們可以在 build 目錄下使用「Release」配置構建軟體庫:cmake --build . --config Release 或 make。

然後可以使用「install」目標安裝:cmake --build . --config Release --target install 或 make install。

隨後軟體庫就會安裝到我們設置的 CMAKE_INSTALL_PREFIX 路徑中。

構建驅動(driver)

MIOpen 提供了應用驅動(application-driver),其可以用於獨立地執行任何一個特定層,並且用來衡量軟體庫的性能和驗證。

驅動可以使用 MIOpenDriver 目標構建:cmake --build . --config Release --target MIOpenDriver 或 make MIOpenDriver

解釋如何運行驅動的文檔如下:https://github.com/ROCmSoftwarePlatform/MIOpen/blob/master/driver/README.md

運行測試

我們可以使用「check」目標運行測試:cmake --build . --config Release --target check 或 make check。

而單次測試可以使用以下命令構建和運行:

cmake --build . --config Release --target test_tensor

構建文檔

我們可以使用命令構建 HTML 和 PDF 文檔:cmake --build . --config Release --target doc 或 make doc。該命令會在./MIOpen/doc/html 文件夾下構建一個本地可搜的網站,和在./MIOpen/doc/pdf 文件夾下構建一個 PDF 文檔。

文檔可以使用 Doxygen 創建生成,並且需要單獨的安裝。HTML 和 PDF 文件可以在 ReadTheDocs theme 下分別使用 Sphinx 和 Breathe 生成。

Sphinx、Breathe 和 ReadTheDocs theme 所需環境可以在 MIOpen/doc 文件夾下安裝:pip install -r ./requirements.txt。pip 安裝可能會需要使用 sudo 命令獲得部分根許可權。

格式化(Formatting)代碼

所有代碼都使用 clang-format 格式化(formatted),而格式化文件可以使用:

clang-format-3.8 -stylex=file -i

同樣我們可以安裝 githooks 來提前格式化代碼:

./.githooks/install

MIOpen 的安裝和使用文檔地址:https://rocmsoftwareplatform.github.io/MIOpen/doc/html/

該文檔主要分為 MIOpen 的安裝嚮導、簡介和 API 的使用參考。其中,API 的使用參考包含了張量、激活層、卷積層、池化層、批量歸一化層等眾多使用參考。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

人臉模型壓縮:MobileID可在移動設備上快速運行
阿里智能音箱發布前夕,首次公布自然語言處理成果
從任務到可視化,如何理解LSTM網路中的神經元
通過提取神經元知識實現人臉模型壓縮:MobileID可在移動設備上快速運行

TAG:機器之心 |

您可能感興趣

DeepMind提出心智神經網路ToMnet,訓練機器的理解能力
SDN與NFV催生智能網卡需求,Ethernity基於FPGA加速虛擬化網路
英特爾的Movidius AI加速技術適用於mini-PCIe版本,旨在加速神經網路
Mozilla推出新功能Hubs,網路瀏覽器秒變VR社交體驗
讓網路瀏覽器秒變VR社交體驗 Mozilla推出新功能Hubs
谷歌雲採用 P4Runtime 打造智能網路
讓機器思考與互相理解:DeepMind提出機器心智理論神經網路ToMnet
TP-Link新推網狀網路由器 可控制智能家居設備
DeepMind 提出 GQN,神經網路也有空間想像力
AI重大突破:DeepMind 構建心智理論神經網路讓機器互相理解
HubblePhone概念智能手機:鉸鏈式多屏+5G網路+雙CPU+雙系統
斯坦福大學教授Christopher Manning提出全可微神經網路架構MAC:可用於機器推理
谷歌大腦開源多種新型神經網路優化器,AutoML探索新架構
Wi-Fi聯盟推出新Easy Mesh標準,跨品牌路由器將可互建網路覆蓋
斑馬網路發布黑科技AR-Driving,將重新定義智能駕駛
Intel發布神經網路壓縮庫Distiller:快速利用前沿演算法壓縮PyTorch模型
BP神經網路模型:Matlab
基於改進MapReduce模型的BP神經網路並行化研究
WiFi聯盟推行EasyMesh標準 跨品牌組建Mesh網路成為可能
快思聰:新的Crestron DM XiODirector網路設備簡化DMNVX網路視音頻系統的部署