Imagination 近日宣布了與MulticoreWare.Inc公司的合作,后者是多核和異構計算環境軟件解決方案和開發工具的領先供應商。MulticoreWare公司在展銳T710開發板上實現雙目視覺算法stereoBM的openCL版本的移植和優化,移植后的算法在GPU平臺上性能提升明顯。展銳T710開發板內部集成了Imagination GM9446顯示芯片,主頻為800MHz,采用12nm工藝制造,支持openCL4.0, openCL1.2和openGL3.0版本,最高性能能夠達到128 FP32 FLOPs/Clock 和256 FP16 FLOPs/Clock。CPU支持八核處理器,主頻2.0GHz, 內部集成AI神經網絡處理器NPU,綜合算力達4.2TOPS。為了進一步提升開發板的算力,MulticoreWare團隊在雙目視覺stereoBM的OpenCL實現中,使用了開發板的Imagination GM9446系列GPU作為運算核心,相對于傳統CPU的雙目視覺算法stereo版本得到了極高的加速比。這組算法的設計充分使用了Imagination GM9446的特點,采用大窗口尺寸和小分辨率圖像620x188,local memory存儲優化等方式提高了程序的性能。
算法經過調整不同的參數,窗口winSize大小為21,n_disp為64的時候,性能達到最佳。通常kernel越復雜,寄存器占用的空間就越大,最大工作組的大小就越小,有時候發揮不出來并行流水線的最大數量,從而影響性能。
MulticoreWare公司團隊在對kernel代碼優化內部的寄存器使用量,根據GM9446內部結構,設置合理的global全局工作組大小256x圖片高度,local工作大小為256,從而最大程度發揮GPU并行流水線的并發量,一般情況下,第一個維度的工作組大小應該是wave大小的倍數(例如32),這樣可以充分利用wave資源,MulticoreWare團隊根據多年優化經驗,手動調整工作組大小以滿足這個條件來保證性能有所提升。此外內存讀取也是影響kernel運行效率的一方面,在OpenCL中一般有全局global內存,本地local內存,常量Constant和Private四種形式組成,MulticoreWare公司團隊在將stereo算法重新調整內存布局,將主機內存使用零拷貝技術與GPU內存直接填充,另外將內核kernel多次內存訪問的數據,從global內存轉存到local內存中,雖然增加了一次轉存數據的時間,但是對于對此存取數據整體時間是縮減的,從降低IO時間的角度整體提高了kernel內核的運行效率,性能也有所改善。運行10次后進行效率對比,GPU比CPU計算最高提速80倍左右,平均提速50倍左右。
CPU(展銳T710 2.0GHz) CPU(Unisoc T710, 2.0GHz) | GPU (Imagination GM9446) | 倍數 Multiple | |
1 | 31.935 ms | 0.76 ms | 41.9 |
2 | 56.17 ms | 0.699 ms | 80.3 |
3 | 54.22 ms | 0.72 ms | 75.3 |
4 | 51.67 ms | 0.77 ms | 67 |
5 | 31.72 ms | 0.74 ms | 42.8 |
6 | 27.12 ms | 0.73 ms | 37.1 |
7 | 33.35 ms | 0.77 ms | 43.3 |
8 | 50.12 ms | 0.75 ms | 66.8 |
9 | 31.29 ms | 0.71 ms | 44 |
10 | 29.73 ms | 0.72 ms | 41.29 |
未來Imagination和MulticoreWare兩家公司將致力于共同促進OpenCL在行業中的廣泛采用,鼓勵OpenCL廣泛應用于異構計算、APU、以及CPU和GPU獨立計算的領域中,實現計算資源利用率最大化、高效率處理數據傳輸。
-
gpu
+關注
關注
28文章
4733瀏覽量
128908
發布評論請先 登錄
相關推薦
評論