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