飛槳推理引擎性能優化.pdf

編號:29527 PDF 40頁 2.31MB 下載積分:VIP專享
下載報告請您先登錄!

飛槳推理引擎性能優化.pdf

1、飛獎推理引擎性能優化1飛漿百度深度學習技術平臺部商智洲#page#目錄P飛漿1.PaddleInference基本介紹2.PaddleInference性能優化方法3.ERNIE模型優化4.PaddlleInference應用案案例#page#目錄P飛漿1.PaddleInference基本介紹2.PaddleInference性能優化方法3.ERNIE模型優化4.PaddleInference應用案例#page#P飛菜飛獎深度學習平臺飛漿企業版EasyDL零門檻AI開發平臺BML全功能AI開發平臺飛獎開源深度學習平臺PARLPGLAutoDLPALMPaddleFlPaddle Quantu

2、m強化學習聯邦學習紫區海專區自動化深度學習多任務學習量子機器學習工具組件PaddleHubPaddlexVisuaIDLPaddleClou預訓練模型應用工具全流程開發工具可視化分析工具云上任務提交工具PaddeocRERNIEPaddleDetectionPaddleSegPLSCElasticCTRParakeetPaddleCla端到端開發套件醫像分割語營合成語義理解圖像分類文學識別擬爾原熱發點擊率預估目標檢測AI Studio學習與實訓社區PaddleNLPPaddlecvPaddleRecPaddleSpeech基礎模型庫開發訓練推理部餐核心框架動態圖大規橫分布式訓練工業級數據處理P

3、addle.jsanappd靜態超Paddleslim安全與加密nerer#page#飛獎-推理場景P飛漿83服務器端高性能部署:PaddleInference模型服務化部署:PaddleServing側重延退,吞吐,資源消耗(X86、NVGPU)側重線上模型管理,彈性服務,A/B測試Mobile&loT: Paddle Lite&Paddleslim側重性能,資源使用,部署體積Web端部署:PaddlejsARM、XPU、NPU、FPGA、MALI.瀏覽器部署場景#page#PaddleInference-飛漿核心框架原生推理引擎P飛漿多框架,多硬件,通用化,高性能CaffeONNXTens

4、orFlow飛漿核心框架(Paddle)X2PaddlePaddle ModelPaddle InferencePaddle LiteARM, OpenCL, FPGA,華為NPUX86,GPU,昆侖,飛騰RK NPU,MTKAPU.PaddleInference開源鏈接:https:/ config準備模型的輸入config.SetModeldautoinput_names=predictor-GetlnputNames0;“.Jresnet50/model.“./resnet5O/params”;auto input t= predictorconfigEnableUseGpu(1000,

5、0);GetlnputTensor(input namesfo)config.SwitchUseFeedFetchOps(false);inputt-Reshape(input_shape);config.EnableMemoryOptim0;input_tcopy_from_cpu(input.data());/模型推理auto predictor= CreatePaddlePredictor(conigCHECK(predictor-sZeroCopyRunO)參數共享/獲取模型的輸出auto output names= predictor-GetOutputNames();auto ou

6、tput t=predictor-sGetOutputTensorloutput namesfoj)auto cloned predictor= predictor-sClone0output_t-copy_to_cpulout_data-data())#page#PaddleInference-顯存優化P飛漿顯存復用優化效果:25007000500060004000200050003000150040003000200010002000100050010000CBatchSize=32BatchSize=32BatchSize=32口優化后(單位:MB)口優化前口優化后(單位:MB)口優化前

7、口優化后(單位:MB)口優化前DAM模型顯存占用Resnet50顯存占用MaskRCNN顯存占用#page#PaddleInference-顯存優化P飛漿顯存池管理假設device上共8000M顯存,fraction_of_gpu_memory160oMuusd)設置為0.2,即預先分配1600M顯存50oMu從顯存池申請500M顯存50MUS200從顯存池申請200M顯存500M200M釋放500M顯存到顯存池,確定并合并左右的顯存碎片1600M(unused釋放200M顯存到顯存池,確定并合并左右的顯存碎片#page#PaddleInference-顯存優化P飛漿,顯存池管理1600Mlu

8、nused假設device上共8000M顯存,factionofgpumemory設置為0.2即預先分配1600M顯存10MS從顯存池申請1000M顯存,bucket1剩余600M0OMs500M從顯存池申請700M顯存,發現bucket1剩余600M,此時,申請第二塊bucket2,顯存大小為(8000-1600)*0.2=1280M1280M(unused)10oOMuse2OOM從bucket2獲取700M70MuM#page#Paddle Inference-OP融臺P飛漿Conv操作:ConvX=input*W+biasConvBatchNorm操作:BNX=(X-mean)/std

9、Y=alpha*X+beta1.降低模型計算量Y=input*(alpha*W/std)+((bias-mean)*alpha/std)+beta2.減少Kernel調用次數3.減少顯存/內存訪問Y=(input*W+bias-mean)/std)*alpha+beta#page#Paddle Inference-OP融合P飛漿conv affinechannelfuse pass,conv eltwiseadd affine channel fuse pass圖優化PASS:shuffle channeldetect pass,quant convd dequant fuse passdel

10、ete_quant dequant op_passir_graph build passsimplify_with basic_ops pass,irgraph clean passembedding_eltwise layernorm_fuse passir analysis passmultiheadmatmulfuse pass v2,memory_optimize_passskip layernorm fuse_pass,cony bn fuse_pass,graph viz passfc fuse_pass,ir params sync among_devices passtenso

11、rrt subgraph pass,adjust cudnn workspace size passconv bn fuse pass,conv elementwise_add_act fuse pass,inference_op replace passconv_elementwise_add2_act fuse pass,ir_graph to_program passconv elementwise_add fuse pass.transpose flatten concat fuse pass#page#Paddle Inference-Kernel優化P飛漿訪存優化連續線程訪問連續數

12、據,形成數據合并訪問連續線程寫入連續數據,避免數據分區沖突盡量使用SharedMemory避免BankConflict計算優化減少計算量增加計算并行性快速指令(訪存指令、控制指令、快速計算指令等)#page#Paddle Inference-TensorRT集成P飛漿TensorRT優化與性能內核自動調整權重與激活精度校準層與張量融合通過將模型量化為INT8來更大限度地提高吞吐量,同時保持通過融合內核中的節點,優化GPU顯存和帶寬的使用基于目標GPU平臺選擇最佳數據層和算法高準確度動態張量顯存多流執行更大限度減少顯存占用,并高效地為張量重復利用內存用于并行處理多個輸入流的可擴展設計Tensor

13、RT官網:https:/ Inference-TensorRT集成P飛漿加載模型Proto模型格式模型拓補圖ONNXOP融合TensorflowCaffeNetworBuilder內存/顯存EnginDefiito優化PythonAPlC+APISerlatizOP輸出MATLABOptimizatiorTensorParametersbytesProto模型格式預河PaddleInference執行流程TensorRT執行流程#page#Paddle Inference-TensorRT集成P飛漿初始化階段,TensorRTSubgraphPass主要工作如下:1.將匹配的op融合成N個Te

14、nsorRT子圖。2.為每個TensorRT子圖創建一個”tensorrt_engine”OP:2.1設置TensorRT相關的控制參數(如量化相關、精度、動態shape等);2.2設置OP的輸入、輸出變量;2.3【可選】讀取并傳入量化校準表(如果校準表尚未生成,此為校準流程,中止創建OP);2.4標記重復變量,待后續ir_params_sync_among_devices_pass刪除2.5創建并關聯全局唯一的TensorRTengine2.6【可選】從磁盤文件反序列化engine的plan文件(同一TRT版本,同一硬件),中止創建OP:2.7調用fluidOP對應的op_converter

15、,轉換為TensorRT的對應OP,使用TensorRT的組網API創建TensorRTNetwork,然后調用TensorRT的builder進行網絡優化;2.8保存優化后的plan文件【可選】。3.使用子圖OP替換原圖節點,刪除無用重復OP節點。#page#Paddle Inference-TensorRT集成P飛漿TensorRT運行時1.靜態shape,檢查運行時batch_size不超過maxbatch_size;動態shape,綁定輸入shape。2.綁定輸入數據。3.在GPU上申請輸出的顯存空間。4.異步執行TensorRTengine(enqueue/enqueueV2)。#p

16、age#Paddle Inference-TensorRT集成P飛漿模型支持NLP圖像分類圖像檢測圖像分割Mobilenetv1/v2ResNet50Yolov3UNETVGGICNETERNIEFaster RCNN(SE)-RenextSSDBERTMaskRCNNInceptionDeepLabv3RetinaNetEfficientNetNasNet#page#PaddleInference-混合精度推理P飛漿支持FP32、FP16、Int8混合精度推理支持TensorRT的Int8離線量化支持Paddleslim的lnt8離線量化和量化訓練input離線量化:通過少量數據統計獲得sc

17、aleweightconv2d使用PaddleSlim量化模型:從模型中獲得scaleoutput#page#PaddleInference-TensorRT離線量化P飛漿初次運行時,使用輸入數據和校準器生成校準表并緩存到文件通過實現接口IEntropyCalibrator,給TensorRT提供一個校準器。校準器TRTInt8Calibrator接口函數:getBatchSizeOgetBatchvoid* bindingstl const char* namesti int num bindings)為保證該子圖后續數據的正確性,推理使用framework:Executor。下次啟動時從緩

18、存文件加載校準表,運行TensorRT推理#page#Paddle Inference-PaddleSlim量化P飛漿leakyrelu18.tmp_o量化訓練產出的模型中fake_quantize_moving_average_abs_max,對于量化OPInScale(1)inputscale存儲于fake_quantOP中leakyrelu18.tmp_o.quantizedweightscale存儲于fake_dequantOP中conv2dFilter(256128x33)weight為FP32類型存儲的INT8值conv2d_21.tmp_0fake_channel_wise_de

19、quantize_max_abs()conv2d_21.tmp_o.dequantized#page#PaddleInference-INT8量化推理P飛菜常見模型INT8加速比常見模型INT8精度損失1.051.215600.90.80.850.80.60.750.40.70.650.2FP32基準耗時(1.0)INT8耗時/FP32耗時FP32基準精度(1.0)UINT8精度/FP32精度測試環境:PaddlePaddle2.0Beta,Paddleslim1.1.0,CUDA10.1,CUDNNV7.6,TensorRT6.0.1.5,NVIDIATeslaP4,driiver418.3

20、9#page#目錄P飛漿1.PaddleInference基本介紹2.PaddleInference性能優化方法3.ERNIE模型優化4.PaddleInference應用案例#page#ERNIE模型優化P飛菜中文NLP任務數據集ERNIE-Large效果ERNIE-Base效果BERT-Base效果自動問答NLPCC-DBOA85.8%(+5.0%)80.8%85.3%(+4.5%XNL77.2%自然語言推斷81.0%(+3.8%)79.7%(+2.5%)情感分析ChnSentiCop95.8%(+1.5%)95.5%(+1.2%)94.3%文本語義相似度LCOMC07887.9%(+0.

21、9%)87.9%(+0.9%)92.6%命名實體識別MSRA-NER95.0%(+2.4%)93.8%(+1.2%)59.5%機器閱讀理解Dureador64.2%(+4.7%)61.3%(+1.8%6)66.3%機器閱讀理解CMRC201871.5%(+5.2%)69.1%(+2.8%)84.9%機器閱讀理解DRCD89.0%(+4.19%)88.0%(+3.1%)數據來源:https:/ idsSent idsPos idsEmb+LayerNromPos idsWord idsSent idsLookup tableLookup Tabl個本ENCODEREmbEltwiseLayerN

22、ormOPENCODERERNIE模型結構ERNIE模型輸入結構輸入融合后的結構#page#ERNIE模型優化-OP融合P飛漿3EmbedingEmaoozmMuitiHeadMatmul OFENCODERFcEltwiseLayerNomOPFCOPFCOPErnie模型結構Ernie模型encodOer結構優化后的encoder結構#page#ERNIE模型優化-OP融合P飛漿支持動態shapeOP數量從300+降低到60+,融合后的EmbEltwiseLayernorm等主要融合OP支持FP16英偉達T4上Ernie模型運行時延從224ms降至41.90ms(batch=32,laye

23、rs=12,headnum=12size_per_head=64)Bert250020001500Tno1000Paddle85001.1032.1281.501.1288.508.12832.50Batch,Seq_len測試環境:PaddlePaddle1.8.1,TensorFlow2.0.0,CUDA10.1,CUDNNV7.6,TensorRT6.0.1.5,NVIDIATeslaT4,driverr418.39#page#ERNIE模型優化-變長輸入支持P飛漿動態shape-單batch定長min intput shape: 1x1x1maxinput shape:641281ba

24、tch1:341batch2:251AAAXAAAXXBBBBBBBBBXXX3動態shape-變長輸入Data:AAABBBBCData:AAABBBBBShapeData:0.3,7,8ShapeData: 03,8#page#ERNIE模型優化-變長輸入支持P飛漿支持版本PaddlePaddle 2.0rc1+,TensorRT 7.2.1+PaddlePaddle 2.0rc1+, TensorRT 6,OSS 7.2.1+(TensorRT Open Source Software)性能提升硬件:NvidiaTelsaT4軟件:PaddlePaddle 2.0rc1,cuda10.1,cudnn 7.6,tensorrt 6.0,OSS7.2.1模型:ernie-base-2.0數據集:QNLI性能提升:BatchSize=32時從905sentences/s提升到2237sentences/s#page#PaddleInference-應用案例P飛漿應用于百度內部各大業務,不斷打磨,經得起考驗百度搜索,Feed,百度APP百度地圖,Apolllo,AI醫療.#page#PaddleInference-應用案例P飛漿廣泛應用于工業、農業、服務業等各行各業#page#P飛漿聯系我們共創未來官方網站:https:/paddlepaddle.orgGitHub:https:/

友情提示

1、下載報告失敗解決辦法
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站報告下載后的文檔和圖紙-無水印,預覽文檔經過壓縮,下載后原文更清晰。

本文(飛槳推理引擎性能優化.pdf)為本站 (X-iao) 主動上傳,三個皮匠報告文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。 若此文所含內容侵犯了您的版權或隱私,請立即通知三個皮匠報告文庫(點擊聯系客服),我們立即給予刪除!

溫馨提示:如果因為網速或其他原因下載失敗請重新下載,重復下載不扣分。
客服
商務合作
小程序
服務號
折疊
午夜网日韩中文字幕,日韩Av中文字幕久久,亚洲中文字幕在线一区二区,最新中文字幕在线视频网站