《GPU 推理中的數據格式全局優化算法.pdf》由會員分享,可在線閱讀,更多相關《GPU 推理中的數據格式全局優化算法.pdf(25頁珍藏版)》請在三個皮匠報告上搜索。
1、GPU推理中Tensor數據格式的全局優化Alibaba達摩院機器智能陳元凱11/12/2020#page#咨日01問題背景02數據格式優化算法03數據展示/未來工作#page#數據格式數據格式(memorylayout):tensor數據可以按照不同順序排列N:Batch sizeC: Channel sizeHW:Feature map size537891011121314151624NCHW761431548121651310119NC/4HW4c主流框架(TF,onnxetc):NCHW為什么需要不同的數據格式不同的計算流程,多樣的數據讀寫pattern新一代的GPU硬件:tenss
2、orcore#page#數據格式的影響10.4.5.Conversion Between NCHWAndNHWCNHWCTensor Cores require that the tensors be in thata layout.Conversion between NCHWand NHWC isperformed when the user requests Tensor Op mat.However,as stated in Basics,a request to use Tensor Coresis just that,a request and Tensor Cores may n
3、ot be used in some cases.The CuDNN library converts betweenNCHW and NHWC if and only if Tensor Cores are requested and are actually usedfyour input (and output)are NCHW,then expecta layout changehttps:/ NCHWINT8 NC4HW4自研計INT8 NC16HW16算庫sINT8 NHWC推理引擎 FP16 NCHWFP16 NHWC3 party計算庫?TVM#page#數據格式選擇,數據格式
4、和算子性能:Workload的影響(device V100,kernel source CUDNN):Float16卷積13224224*64377NHWC: 0.29ms,NCHW:0.058msFloat16卷積11282828*12812833NHWC:0.045ms,NCHW:0.091ms,如果選擇數據格式?選擇單個算子最快!=模型整體最快數據格式之間轉換需要額外的開銷#page#1例子數據格式轉換時間可能很耗時0.3msconv1最好的組合不見得對單個op最快0.3msconv1全局統籌的算法問題NCHWNCHW0.2msConvertTotal=1.0msTotal=NHWC0.
5、6msconv2conv20.5ms#page#問題綜述問題描述輸入:深度學習模型算子不同實現(cudnn,TVMetc),輸出:模型中每個tensor的數據格式,優化目標:模型整體推理性能最快#page#2算法背景Optimizing CNN Model Inference on CPUsYhi LiuYaoWangRuofeiYMuLVn Sharma.YdaWangAmazon Web Servicesfyihiliwayao,Abstractsisting ofopcrations.In practice.pcople normally use highThe popularity o
6、f Convolutional Neural Network(CNN) mod-performance kernel ibraries(e.g.IntelMKL-DNN127andcls and the ubiquity of CPUs imply that bettcr performanceofOpenBlas S1J) to obtain high performance for CNN operaCNN model inference on CpUs can deliver significant gaintions.While these libraries tune very ca
7、refully for commotoa large number of uscrs.To improve the performance ofon CPUs.cures like MXNet最早來自TVM社區:動態規劃優化CPUtensor數據格式算法很慢,占用大量內存,幾乎沒法用#page#2我們的工作近似線性復雜度的實現剪枝優化,進一步縮短算法運行時間提升推理性能首先運用在fp16,int8模型GPU推理上,#page#2動態規劃將大的優化問題劃分成小的優化問題小的優化問題之間互不影響,獨立優化e.g.最短路徑問題,假設路過某個中間點:超市家到公司最短路=家到超市最短路+超市到公司最短路
8、子問題2子問題1家公司#page#2數據格式優化算法Graphcut:模型切分成兩個子圖考慮其中一個子圖:給定輸入輸出數據格式Subgraph G1它的優化不影響另外一個子圖。不停地分而治之,直至單個opOutput layoutL。枚舉切割處的數據格式(L,L)Input layout Lopt(G)= minlopt(G1)+ opt(G2)+ convert(L-L)1Subgraph G2#page#2數據格式優化算法實現難點Graphcuts數量指數增長,無法枚舉拓撲排序,降維到1D按照拓撲順序考慮N個cut,可以證明:排序順序不影響最優解1-11+2#page#2數據格式優化算法,
9、每個cut定義一組狀態:cutli有兩個輸出tensor,數據格式分別為t1,t2狀態opt(it1,t2)表示cut左邊子圖輸出為t1,t2時的最優解假設每個tensor有M種數據格式選擇,狀態總數=M個2cuti+1輸出一個tensor,狀態為opt(i+1,t3),總數Mcutficuti+1t111i+12#page#數據格式優化算法狀態轉移方程cuti+1看到輸入數據格式為t1t2。從cuti狀態達到cuti+1狀態:t1.t2數據轉換nodeli+1計算opt(i+1,t3)=minopt(it1,t2)+convert(t1,t1)+convert(t2,t2)+node(t1t
10、2t3)。枚舉t1,t2,t1t2cutficuti+1t1t11-1i+11+22t2#page#2數據格式優化算法opt(i+1,t3)=minopt(i,t1,t2)+convert(tl,t1)+convert(t2,t2)+node(t1t2t3)node(t1t2t3)通過profiling得到最優的kernelprofile格式轉換時間記錄profile歷史記錄,避免重復profilecuti+1cutfit1t11-12#page#2數據格式優化算法回:全局最優解為opt(n,graph_outputs),記錄每個狀態最優解對應的之前狀態:prev(i+1,t3)=(t1,t2
11、,t1t2)從最后一個算子往前,確定每個tensor的數據格式cuti+1cutfit1t11-12#page#2數據格式優化算法#layouts=M初始化cutfo的狀態(模型輸入格式)fori=1 toN doEll:cut上的邊的集合anscutli+1Sli:cutli的狀態集合,size(S)=MAIEIforsin Sti do:for kin kernels doL:nodei的輸入數據格式組合forsinSi-1:L:nodelij輸入tensor在s中對應的數據格式組合if(opt(i-1,s)+node(i,)+convert(L,)opt(i,s)1-1opt(i,s)=
12、opt(i-1,s)+node(i,)+convert(L,L)prev(i,s)=sS= min_indexlopt(n,SIn)fori= N-1 to 1 do:S=prev(i,s)根據s設置EU的數據格式#page#page#2數據格式優化算法opt(i+1,t3)=minlopt(i,t1,t2)+convert(tl,t1”)+convert(t2,t22)+node(t1t2t3)剪枝加速方法1:opt(i,t1,t2.tc)并不是所有的M個C組合都需要保留不同數據格式下,算子性能往往有數倍差距差距不斷累積,最差的組合不會被后面使用到只保留minopt(i,t1,.tc)*th
13、reshold#page#2數據格式優化算法opt(i+1,t3)=minlopt(i,t1,t2)+convert(tl,t1”)+convert(t2,t22)+node(t1t2t3)剪枝加速方法2:帕累托原理opt(i,t1,t2)+convert(t2,t2”)opt(i,t1,t2”)opt(i,t1,t2為次優狀態,可以刪除#page#page#3性能數據測試環境:V100;數據類型:float16,平均性能提升1.75x算法運行時間(包括kernelprofiling)20s)Normalized Inference Time120.80.60.40.20resnet101resnet50mobilenetsqueezenetshuffenetw/layoutoptwolayout opt#page#3未來擴展業界趨勢:多元化的計算方案廣義上的數據格式混合精度計算:A100帶來了更多的選擇int8/fp16/TF32/BF16/sparse/etc.異構計算:GPU/CPU/otheraccelerator數據格式選擇+硬件類型選擇格式轉換時間+異構數據傳輸時間#page#謝謝!#page#