《陈龙-CUTLASS跨平台编译与优化.pdf》由会员分享,可在线阅读,更多相关《陈龙-CUTLASS跨平台编译与优化.pdf(34页珍藏版)》请在三个皮匠报告上搜索。
1、陈龙 中科加禾CTO曾于中国科学院计算技术研究所获得博士学位,研究方向包括编译技术、并行计算及异构计算。陈龙博士多年从事面向国产芯片的编程与编译技术研发工作,曾任华为编译器与编程语言实验室架构师,主导过多项国产化芯片的编译器产品开发工作。技术涵盖高性能服务器、无线通信、AI加速芯片等多个领域,面向市场获广泛应用。基于多年在芯片基础软件建设上的经验积累,于2023年联合创办了中科加禾科技有限公司,致力于解决国产AI算力落地应用所面临的困难。中科加禾通过全系统优化、编译技术及工具加持,提供大模型推理及微调系统工具,为国产AI算力加速落地提供帮助。演讲主题:cutlass跨平台编译优化实践分享CUT
2、LASS跨平台编译与优化陈龙-中科加禾矩阵乘及CUTLASS简要介绍CUTLASS在A架构上的编译CUTLASS在A架构上的优化矩阵乘及CUTLASS简要介绍CUTLASS在A架构上的编译CUTLASS在A架构上的优化矩阵乘的重要性 矩阵乘是Transformer模型架构的核心计算(,)=Attention Is All You Need,=,(,)=()()矩阵乘优化的难点 不同的矩阵形状和计算规模方形/扁长型/瘦高型小规模/大规模矩阵相乘计算瓶颈/访存瓶颈 不同的数据类型FP64/FP32/FP16/BF16/INT8/FP8.InputType/OutputType/AccumType
3、不同的数据布局NN/NT/TN/TTNCHW/NHWC不同的硬件架构和特性有无TensorCore有无异步数据传输不同的算法与延申Batched/SplitK/Back2back.Gemm/Convolution算子融合的需求Gemm+Relu情况复杂多样,开发和优化难度较大矩阵相乘:=CUTLASS模板化CUDA C+编程组件Block-wide/Warp-wide/Thread-wide数据移动和计算原语ShapeTileIterator/FragmentGemm/MMA模板化以容许较大的设计空间Kernel在布局和问题规模方面的定制混合精度的运算和存储Kernel融合常量化消除计算初始状
4、态的开销CUTLASS是基于现代C+实现的、面向GPU的矩阵计算加速库良好的抽象、丰富的优化,开放开源模块化的计算抽象,优良的性能矩阵乘及CUTLASS简要介绍CUTLASS在A架构上的编译CUTLASS在A架构上的优化编译目标架构GPGPU架构计算单元CU:Compute UnitSIMT执行方式有sGPR和vGPR(与NVGPU不同)存储层次Global memoryL2&L1 CacheLocal shared memoryRegisterProgram CountersGPRsALUvGPRvALUvGPRvALUvGPRvALUvGPRvALULocal Data ShareComp
5、ute UnitCache参考架构:类AMDGPU架构目标A架构:与CUTLASS抽象架构基本吻合CUTLASS组件 标准C+实现,容易复用 C+模板特化:针对不同的算法、数据类型、矩阵形状、数据布局,提供对应的特化版本 只需要有一个健壮的、支持现代C+的编译器,即可复用CUTLASS的相关组件usingGemm=cutlass:gemm:device:Gemmcutlass:half_t,/ElementInputAcutlass:layout:RowMajor,/LayoutInputAcutlass:half_t,/ElementInputBcutlass:layout:RowMajor
6、,/LayoutInputBElementOutput,/ElementOutputcutlass:layout:RowMajor,/LayoutOutputElementAccumulator,/ElementAccumulatorcutlass:arch:OpClassWmmaTensorOp,/Operatorclasscutlass:gemm:GemmShape,/ThreadblockShapecutlass:gemm:GemmShape,/WarpShapecutlass:gemm:GemmShape,/InstructionShapecutlass:epilogue:thread