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