使用mkldnn為cpu執行網路加速

2021-09-01 12:46:52 字數 746 閱讀 5518

最近要在用crnn,跑的pytorch模型,本來在gpu跑的好好的,但是後來由於各種原因,需要在cpu上跑,才發現cpu上跑的是真的慢,後來發現了mkldnn這個東西,這是intel開發的開源專案,就是針對cpu上執行神經網路做了一些並行優化。

用了以後,大概速度快了7,8倍吧,效果還是比較明顯的。

git clone 

cd scripts && ./prepare_mkl.sh && cd ..

mkdir -p build && cd build && cmake $cmake_options .. && make

make test

make doc

make install

編完以後,直接跑一下程式,並沒有什麼卵用……看來還需要一些步驟把mkldnn與pytorch 「連線」起來。看了一下mkldnn,基本上就是提供了乙個c++的藉口和一些lib庫,所以,要麼pytorch已經做了相關處理,到時候只要新增個環境變數之類的就可以,要麼就是我要重編pytorch,build工程的時候就把相關庫一起編進去。找了找,沒發現啥要新增的環境變數,就重編吧。

跑到一半會發現列印編譯資訊:

發現mkldnn選項開啟了,放心等就ok了~

編完以後就直接可以用了,至於其他工具,估計也是差不多的步驟,如果以後用到了,再補充吧~

簡單獲取cpu使用率,以及後台執行的問題

做了乙個運維平台,有乙個功能定時執行乙個指令碼,獲取cpu使用率和記憶體使用情況到監控平台。獲取cpu使用率使用的是top中的資訊。直接執行沒有問題。通過nohup sh 之後獲取不到cpu 資訊。如下 cpuratio top n 1 awk f nr 3 這段 也是在網上找的。經過排查發現。to...

CPU 上下文切換,執行佇列和使用率

引用 關於cpu,有3個重要的概念 上下文切換 context switchs 執行佇列 run queue 和使用率 utilization 上下文切換 目前流行的cpu在同一時間內只能執行乙個執行緒,超執行緒的處理器可以在同一時間執行多個執行緒 包括多核cpu linux核心會把多核的處理器當作...

單個類模板的使用 執行環境為vs2019

p15 單個類模板的使用.cpp 此檔案包含 main 函式。程式執行將在此處開始並結束。include using namespace std template class a 成員函式返回值使用虛擬型別 t gett private 成員變數使用虛擬型別 t t void printa a a ...