1、RecISRecIS:C C+驱动的高性能推荐系统训驱动的高性能推荐系统训练优化实践练优化实践阿里巴巴-平台技术易慧民(须焰)目 录CONTENTS背景:计算演进和衡量指标背景:计算演进和衡量指标分析:推荐系统的性能挑战分析:推荐系统的性能挑战优化:优化:RecISRecIS C+C+工程实践工程实践总结和展望总结和展望背景:计算演进和衡量指标背景:计算演进和衡量指标The Free Lunch Is OverThe Free Lunch Is Over 免费午餐时代免费午餐时代 2005 单核 摩尔定律 午餐终结与午餐终结与 CPU CPU 的困境的困境 2015 主频撞墙 多核 GPU G
2、PU 的暴力美学的暴力美学 now 深度学习计算 海量并行和专用电路The Free Lunch Is OverThe Free Lunch Is Over CPUCPU 片上面积50%以上是控制单元 流水线、分支预测、乱序执行 低延迟 GPUGPU 片上面积几乎全是计算单元 海量的可并行计算,能够以计算掩盖延迟 高吞吐GPUGPU VS.VS.CPUCPU H100H100为例为例 SM 132个 ALU(Cuda Core)32*4*132=16896GPUGPU计算优化计算优化-Compute Wall-Compute Wall-高并发高并发&DSA&DSA Peak FP16/BF16
3、:134 TFLOPS Peak FP16/BF16 TensorCore:989T FLOPSGPUGPU计算优化计算优化-Memory-Memory WallWall 访存总比计算慢访存总比计算慢 容量与速度的矛盾 距离 移动数据比计算数据更费电 RooflineRoofline 只有计算密度(算存比)足够大,才有机会打满峰值算力GPUGPU计算优化计算优化-Memory-Memory Wall-MemoryWall-Memory HierarchyHierarchy矩阵乘法通过分块计算,把重复访存从Global Memory转移到Shared Memory和寄存器。大语言模型 50%推荐
4、模型 10%GAPGAP 大语言模型大语言模型 VS.VS.推荐模型推荐模型分析:推荐系统的性能挑战分析:推荐系统的性能挑战推荐模型推荐模型VS.VS.大模型大模型OpsLLMRecModelBottleNeckInput tokens/Batch10k1BCPUInput Columns11000PythonEmb Tables11000PythonTable Rows100k100BMem,CPUOps Count50050000PythonOps TypeGemm 70%Concat/Split/Reduce/bn 70%Compute,Mem IO密集 分列计算 巨大的Embeddin
5、g table 算子数量/种类多 计算密度相对低 Comput Wall(最普遍问题)稠密部分的计算效率 大模型结合 Python Wall(Pytorch带来的问题)人工特征工程导致的千列特征 每列都对应着特征处理和Embedding查询、计算、更新 数万次python构图操作 CPU Wall(历史问题)(历史问题)CPU的样本流水线 CPU的Embedding Table Memory Wall(最核心问题)(最核心问题)稀疏部分都是访存密集型 算子的访存效率 原子操作的低效推荐模型的推荐模型的4 4重性能墙重性能墙优化:优化:RecISRecIS C+C+工程实践工程实践RecISRe
6、cIS PythonPython Frontend Control Flow Model Building C+C+Backend Data Flow Tensor ComputationPythonPython WallWall MoModelingdeling Dataset+Dataset+DataLoaderDataLoader Pythonic with GIL Row-wise Reading CPU Processing Copy to GPU Multi-Processing DataIODataIO C+Columnar Reading