GPU

微信扫码分享
从零学大语言模型 L6:Kernels, Triton | 斯坦福 CS336 2025 春季

从零学大语言模型 L6:Kernels, Triton | 斯坦福 CS336 2025 春季

视频讲解了如何编写高性能GPU代码,涵盖了GPU架构回顾、基准测试和性能分析的重要性。通过编写CUDA和Triton内核实现内核融合,优化了gelu和softmax等操作。演示了如何通过手动编写CUDA内核将gelu的速度从8.1毫秒降至1.8毫秒,而Triton内核以更简洁的Python语法达到相近性能。最后比较了torch.compile自动优化的效果,显示其能自动融合操作并接近手写内核的性能。 关键信息:GPU执行模型(线程块、warp)、内存层次(寄存器、共享内存、DRAM)、算术强度;使用PyTorch profiler和NVIDIA Nsight Systems进行性能分析;编写CUDA和Triton内核实现融合操作;torch.compile的自动优化能力;softmax内核设计(每行一个线程块)。 课件与代码: https://cs336.stanford.edu/spring2025/

5 0 0 2025-06-27 16:50
从零学大语言模型 L5:GPU  | 斯坦福 CS336 2025年春季

从零学大语言模型 L5:GPU | 斯坦福 CS336 2025年春季

视频的核心内容是讲解GPU的工作原理、性能优化技巧以及如何利用这些知识加速深度学习模型。首先介绍了GPU的架构,包括流多处理器(SM)、线程块(block)、线程束(warp)等概念,并强调了内存层次的重要性。接着分析了GPU性能优化的关键策略,如降低精度(混合精度)、算子融合、重计算、内存合并(coalescing)和分块(tiling)。最后以FlashAttention为例,展示了如何结合这些技术实现高效的注意力计算,避免全局内存的频繁访问。 关键信息:GPU的SIMT执行模型、内存层次(寄存器、共享内存、全局内存)、性能优化六技巧(条件分支、低精度、算子融合、重计算、内存合并、分块)、FlashAttention通过在线softmax和分块实现亚二次内存访问。 课件与代码:https://cs336.stanford.edu/spring2025/

5 0 0 2025-06-27 16:25