1、推荐系统简介推理性能优化方法目录实验结果总结及展望三#page#期推荐系统简介运会全我图引擎实时计算平台搜索平台个性化引擎OPORSCHE用户行为行为序列淘服务分发用户标签偏好预估展示排序实时日志和特征商品关系EmbeddingAB-test排序策略商品标签实时预测限在线学习展示精排HA3关键字索引个性化索引模型和特征个性化召回粗排聚机器学习平台PAI用户标签销量预估CVR模型排序模型0DPAI-MPIC离线预测模型更新PAI-TF日志joinA特征join训练样本#page#期推荐系统简介背景:11.1模型选代,用户、商品量增长计算复杂度增长天猫全球狂欢季首猜模型的计算量增长为去年十倍硬件资
2、源成本高2020原生的算法模型在CPU-GPU异构系统中无法完全发挥出计算性能务女双11当天流量洪峰,单场景需要上千台服务器支持口结合搜索推荐算法模型特征,从根本上对CPU-GPU异构系统的性能问题进行分析和优化,采用通用模块设计及优化、CUDAGraph、全连接层优化等多种优化策略二#page#期推荐系统模型结构QueryProductUserEmbeddingEmbeddingTablesLookupLookupTablesDense Net:Dense NetMLPMultiHeadAttention皖PURanking自定义结构GPUscores三#page#期推理性能优化方法量化FP
3、32-FP16。维持算法精度的前提下减少计算量算子融合对多个连续的算子进行融合,形成一个OP通用模块设计及优化对于搜索业务中普遍使用的通用模块设计独立的自定义OP,例如MultiHeadAttentionCUDAGraph应用使用CUDAGraph,降低整个graph的launchoverhead,提升GPU利用率MatMul融合利用cutlass工具实现MatMul与其他OP的融合,进一步提高计算密度人示#page#期推理性能优化方法量化NVIDIA T4SPECIFICATIONSPerformanceTURINGTENSORCORES量化规则:320利用TensorCore,FP16量化
4、MatMulNIDIACUDA CORES2.560FP32累加器维持精度SINGLEPRECISIONPERFORMANCEFP16量化MatMul之间的自定义opFP328.1TFLOPS特殊处理:MXEDPRECISIONFP16/FP321使用FP32防止溢出(例如:softmax)65PTEOPSINT PRECISION130MTTOPSINTAPRECISION260mTTOPS三#page#期推理性能优化方法算子融合GPUkernellaunch时间开销对性能的影响QPS GPUUtiliz18000012016000010014000012000080100000098000
5、046000040000202000000.6291.2581.8872.5163.1453.7744.4035.0325.6616.296.9197.5488.1778.8069.435KernelTime(us)减少kernellaunch开销,降低不同算子之间的load和store数据开销人示#page#期推理性能优化方法算子融合奥运会全球Kernel数量减少MatMulMatMul+Bias+Act2Split+ConcatFusedBiasActSplitConcat子图Batching:1.BatchMatMul2.Padding 3.BatchNodeEmbeddingEmbed
6、dingEmbeddingEmbeddingLookUpLookUpLookupLookupMLP-CMLP-AMLP-BMLP-ABC(96O)(3+960)(960)(752)2RankingRankingScoresSCores#page#期推理性能优化方法通用模块设计及优化奥运会全球将通用模块重写,构建一个自定义OP,根据通用模块自身的特点,消除不必要的计算,高效实现op,矩阵向量乘转换为矩阵乘BBA8Nx50x168NX508x50168Nx150BatchMatMulBatchMatMul8Nx1x16