AMD 開源高性能機器智能庫MIOpen,可加速卷積神經網路
選自GitHub
機器之心編譯
參與:蔣思源
AMD 最近宣布新的深度學習加速庫 MIOpen 1.0 現已發布,該深度學習庫支持加速卷積神經網路,並且構建和運行在 ROCm 軟體棧的頂部。同時 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 所支持的深度學習框架:
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= 對於 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網路視音頻系統的部署