Windows下利用MKL加速caffe,與openblas比較


一、介紹:先簡單Mark一下網上的介紹資料,弄清楚MKL是個啥,已經與openblas等的關系。

  1. 矩陣運算庫blas, cblas, openblas, atlas, lapack, mkl之間有什么關系,在性能上區別大嗎? 摘自:https://www.zhihu.com/question/27872849
  2. 比較OpenBLAS,Intel MKL和Eigen的矩陣相乘性能。 摘自:http://www.leexiang.com/the-performance-of-matrix-multiplication-among-openblas-intel-mkl-and-eigen

二、MKL使用:

  1. 之前的項目使用的是openblas,需要替換成MKL,然后測試不同庫的效率。首先需要注意的是,這種換庫,或者更新cudnn的版本,需要重新編譯caffe。

  2. 具體步驟:

    - STEP1: 取消之前對openblas.lib靜態庫的依賴,然后刪除openblas.dll(我為了避免是openblas還在起作用)。重新編譯caffe的話,應該會在math_function.h中報錯。

    - STEP2: 在網上下載MKL的庫,官網地址:https://software.intel.com/en-us/mkl。這里我有點疑問,看某些教程說是下載parallel_studio_xe,我理解MKL集成在parallel_studio_xe里面了。因此下載兩個都是OK的。

                      只下載MKL的話,VS中右鍵項目不會出現Intel Compile那個選項。但是我之后也沒有用到過這個選項。

    - STEP3: 按照網上的教程:

      1. 在“配置屬性”下的“Intel Performance Libraries”面板上的“Use Intel MKL”條目的右邊的下拉框選擇“Parallel” 
        這里寫圖片描述

      2. 在“VC++目錄”下設置以下: 
        可執行文件目錄為:D:\Program Files (x86)\Intel\Composer XE 2015\redist\intel64\mkl 
        包含目錄為:D:\Program Files (x86)\Intel\Composer XE 2015\mkl\include 
        庫目錄為:D:\Program Files (x86)\Intel\Composer XE 2015\compiler\lib\intel64;D:\Program Files (x86)\Intel\Composer XE 2015\mkl\lib\intel64 
        注意:如果是32位的,就不是“intel 64”而是“ia32” 
        這里寫圖片描述

      3. 在“自定義生成步驟”下,設置“附加依賴項”,選擇以下lib文件,缺少什么可能需要嘗試以下,一般是這幾個: 
        mkl_intel_c.lib 
        mkl_intel_thread.lib 
        mkl_core.lib 
        libiomp5md.lib 
        這里寫圖片描述

      4. 基本以上步驟就夠了,或者參考intel官方給出的文檔。

 三、效率比較:我的理解,MKL對GPU並沒有太多的加速功能,對CPU的加速效果還是比較明顯的,跑了一個行人結構化分析:

  

  前兩次都是openblas的,最后是cudnn_6+MKL。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM