caffe官方將會支持TX1的fp16的特性嗎?

1. caffe官方將會支持TX1的fp16的特性嗎?

2. 如果官方將不支持,有什麼好的建議?

3. 如果我想自己修改caffe源碼,支持fp16的運算,是否可行?

歡迎有興趣的朋友指點迷津。


目前caffe裡面的fp16支持NVIDIA還在寫。因為caffe最開始的設計寫殘了,數據格式的支持是靠C++模板從Net開始一路hard code下來的,所以不是很好一層一層漸進地加fp16支持。簡單地說,如果要用fp16,那網路裡面所有的層都需要用fp16,那就得一把把所有的層都寫好才能測試,這個限制略狠了點。

如果你想先簡單測試一下performance的話,caffe2裡面已經有了CNN當中絕大多數operator的fp16實現,TX1上也是可以編譯運行的。當然請不要問我為啥caffe2的開發那麼半調子。。。我身在Google,你懂的。


nvidia已經出了fp16的了。不過坑好多 重點是大部分人都沒體驗到加速的快感(親測 更慢,可能方法不對吧)anyway,還是有人說可以加速,望告知。於是,自己做了一個opencl的fp16的版本 不過正如前面的說的,caffe的fp16要一層一層又一層全改,所以我只改了conv層的,效果飛起。所以,個人覺得要搞fp16還是得從最底層搞起,比如gpu運行的kernel函數,才能體會到快感。nvidia開源那個,畢竟不是自己的東西,參考下就好。


自己寫可以的,我前前後後花了兩個月時間吧,不過代碼在公司沒法share。暫時只用了half沒有用half2,TX1上跑基礎網路VGG16的SSD,300*300輸入,單幀從200ms左右降到160ms左右,顯存消耗降了160M。NV有一個很殘的參考代碼,並且官方不提供支持。


不一定非要用Caffe啊(Yangqing大神別打我)。neon的fp16就不錯,performance經常可以幹掉CUDNN。TX1是sm_53,加了幾條pack的fp16x2的指令,不過neon的kernel里目前應該還沒有用到。


BVLC組的成員表示,caffe官方正在進行float16的工作,支持CUDA和Opencl,最遲將在明年一月release


請問caffe更改為半精度fp16後,能提高cpu下的運行效率嗎?


有沒有人知道,mali的gpu是否也支持f16計算呢?


推薦閱讀:

caffe下用FCN做圖像分割,如何製作訓練集?
怎樣在windows下輸出訓練caffemodel的log日誌並畫出accuracy和loss曲線?
caffe 每個樣本對應多個label?
caffe的finetuning是如何更新網路參數的?
caffe如何進行數據集測試??

TAG:深度學習DeepLearning | NVIDIATegra | Caffe深度學習框架 |