系統(tǒng)設(shè)計人員正在探索簡化數(shù)據(jù)類型精度,以此實現(xiàn)計算性能的跳躍式提升,而且不會使精度明顯降低。
機器學習推斷在降低精度方面一馬當先,首先是 FP16,然后是 INT16 和 INT8。研究人員正在探索進一步降低精度,甚至降到二進制。
GPU ALU 通常原生支持單精度浮點類型 (FP32),有些情況支持雙精度浮點 (FP64)。FP32 是圖形
工作負載的首選精度,而 FP64 經(jīng)常用于一些 HPC 用途。低于 FP32 的精度通常無法在 GPU 中得到有效支持。因此采用標準 GPU 上的更低精度,除了能減少所需存儲器帶寬以外,作用甚微。
GPU 通常提供一些二進制運算功能,但通常只能每 ALU 進行 32 位寬運算。32 位二進制運算存在很大的復雜性和面積需求。在二值化神經(jīng)網(wǎng)絡中,算法需要 XNOR 運算,緊接著進行種群 (population) 計數(shù)。NVidia GPU 只能每四個周期進行一次種群計數(shù)運算,這會極大影響二進制計算。
如圖 2 所示,為了與機器學習推斷空間的發(fā)展保持同步,GPU 廠商一直進行必要的芯片修改,以支持有限的幾種降精度數(shù)據(jù)類型,例如 FP16 和 INT8。例如,Tesla P4 和 P40 卡上的 NVidia GPU 支持 INT8,每 ALU/Cuda 內(nèi)核提供 4 個 INT8 運算。
圖 2:英偉達降精度支持
然而,英偉達面向 Tesla P40 上的 GoogLeNet v1 Inference 發(fā)布的機器學習推斷基準結(jié)果表明,INT8 方案與 FP32 方案相比效率只提升 3 倍,說明要在 GPU 架構(gòu)中強行降低精度并取得高效結(jié)果存在較大難度。
隨著機器學習和其他工作負載轉(zhuǎn)向更低精度和定制精度,GPU 廠商需要向市場推出更多新產(chǎn)品,他們的現(xiàn)有用戶也需要升級平臺才能受益于這種改進。