本文探讨了NVIDIA的CUDA生态系统,包括编译链、高层工具、分层结构、数学库(如cuBLAS和cuDNN)、通信库(如NCCL)及Triton DSL。文章比较了AMD ROCm和华为CANN的定位,分析了CUDA在大模型训练中的重要性和优势,并强调了性能调优工具Nsight的使用,以及FP8训练的潜在问题和解决方案。
学习CUDA编程,掌握NVIDIA Hopper GPU的WGMMA管道和Cutlass优化,适用于大规模矩阵乘法和现代AI。课程包括多GPU扩展及训练万亿参数模型所需的NCCL原语,需具备C++和线性代数基础。
在NVIDIA GTC展会上,我们展示了基于MAX框架的FLUX图像生成和Mojo编程的CUTLASS内核移植。DeepSeek V3在云端运行,提供实时指标,欢迎到3004号展位交流。
NVIDIA GPU的峰值AI性能通常以TFLOPS或TOPS表示,但使用HPC软件重现这些性能并不总是有效。通过自定义微基准测试直接调用Tensor Core MMA指令,可以更可靠地测量性能。本文介绍了如何使用CUTLASS和CuTe测量NVIDIA Tensor Core MMA指令的峰值性能,并提供选择合适指令的参考。
CUTLASS是一个仅包含头文件的库,提供CUDA C++模板抽象,用于高性能矩阵乘法(GEMM)。本文介绍如何在CUDA Docker容器中使用CMake构建CUTLASS和CuTe CUDA内核,包括创建Docker镜像和示例的构建与运行。
Apache TVM 是一个支持 CPU 和 GPU 的深度学习编译框架。本文介绍如何结合「Pipeline Executor」与 Relay 创建和拆分简单神经网络。通过配置子图和目标,使用 CUTLASS 构建,实现两个子图的异步或同步运行,并验证输出结果。
本文介绍了FlashAttention-2前向传递的优化实现,使用了自定义融合的CUDA内核,适应NVIDIA Hopper架构,并使用开源的CUTLASS库编写。通过解释在线softmax和连续的GEMM内核融合的挑战和技术,利用Hopper特定的Tensor Memory Accelerator(TMA)和Warpgroup Matrix-Multiply-Accumulate(WGMMA)指令,定义和转换CUTLASS布局和张量,重叠复制和GEMM操作,并选择最优瓦片大小,平衡寄存器压力和共享内存利用率。在单个H100 PCIe GPU上的对比性测试中,与针对上一代NVIDIA Ampere架构进行优化的FlashAttention-2版本相比,FLOPs/s高出20-50%。
完成下面两步后,将自动完成登录并继续当前操作。