折騰了兩天,我的臺式機終於不再只是遊戲機,而成為我最強勁的丹爐沒有之一。

過程有點曲折,識別物體的神經網路「dark net」雖然只有23層,但其中有近十幾層的體積為N × 1024/512/256 × 3 × 2 × 1的「巨大層」(N為圖片數量)

訓練數據為36張608×608像素圖片,用我的2015版macbook pro

跑一個週期(訓練所有圖片為一週期)大約需要133秒

這還是隻有36張圖片,如果有3600張…甚至36000張...,這個速度簡直不能接受,於是我想起了cuda,想起了用gpu煉丹,便想起了我「遊戲機」上的兩張gtx1080顯卡(手動奸笑)

「遊戲機」本來只是玩遊戲的所以只有win10系統,原想著用windows煉丹應該沒啥問題,我還是太天真了,安裝完cuda後安裝Torch就出問題了,依賴庫裝不下去各種報錯,Torch(本人用的Torch7非pyTorch別噴…)的作者原本就是在mac和linux上開發的,所以在windows上他只是簡單粗暴的裝個mingw(可以在windows上跑linux),然後裝linux的依賴庫,由於作者對windows的支持年久失修並且本人用的win10,實在沒辦法在windows上煉丹,一咬牙,直接裝linux來煉丹算了,於是直接從家裡的另一臺伺服器上拆了個2T硬碟裝到「遊戲機」上,開始裝linux ubuntu系統。

安裝時慣性的選擇了ubuntu伺服器版,心想只是煉丹不需要桌面程序,但我還是太天真了,坑爹的NVIDIA驅動居然不能在沒有圖形介面服務的linux版本上安裝,嘗試了各種類似假冒圖形介面的偏方,往往到安裝CUDA驅動時候又卡住各種報錯,沒辦法,重裝ubuntu桌面版。這回終於NVIDIA和CUDA驅動安裝成功,到此時已經折騰了一天,看到nvidia-smi在ssh窗口顯示的summary真是老淚縱橫。

藍鵝,當安裝cutorch(基於cuda的torch)時,又報錯了,找不到cudnn5庫(基於cuda的深度神經網路),google一查原來我安裝的是最新版本的cuda9.1集成cudnn7.1,而需要cudnn5.x的話則必須安裝cuda8.0,年久失修的lua torch…,還好NVIDIA官方有提供cuda的歷史版系下載,安裝走起…。然後… 終於… 跑起來了!看到GPU使用率100%的時候心情無法形容…的好,用gtx1080單卡跑10個週期只需要…27秒!順便再試了下用「遊戲機」的6核12線程cpu跑1週期也需要112秒,增益近41倍…!

可惜的是貌似Torch團隊大部分精力放在了PyTorch上,Lua Torch有失修的跡象,不甘心用不是最新版本的cuda,於是google找了個偏方強行Torch用上cuda9.1 + cudnn7.1,10週期從27秒提升到了24秒。

看了下耗電量,用gpu跑和cpu跑差不多都是420左右千瓦時。

gpu大大節省了電量,按照最新的廣州非夏季第三檔電費(見圖8)每0.89一度電來計算,24小時大約9塊錢。

總的來說,折騰兩天的時間還是非常值得的。(pipi美壓寨)


推薦閱讀:
相關文章