cuSOLVER
搜索文档
刚刚,英伟达CUDA迎来史上最大更新!
机器之心· 2025-12-06 12:08
核心观点 - NVIDIA发布了CUDA Toolkit 13.1,这是其CUDA平台自2006年诞生以来20年最大的一次更新[2] - 此次更新的核心是引入了全新的、更高层级的CUDA Tile编程模型,旨在简化GPU编程,特别是针对AI领域的张量计算,并抽象化专用硬件细节[4][6][14] - 更新还包括对Green Context的运行时API支持、多进程服务(MPS)增强、开发者工具升级以及核心数学库的性能优化,全面提升了软件栈的能力和效率[18][23][31][37] CUDA Tile 编程模型 - **核心概念与优势**:CUDA Tile是一种基于Tile(数据块)的编程模型,允许开发者在高于传统单指令多线程(SIMT)的层级编写GPU核函数[6] 开发者只需指定数据块(Tile)和要在其上执行的数学运算,编译器和运行时环境会自动决定将工作负载分发到各线程的最佳方式,从而简化了高性能代码的编写[7][14] - **抽象硬件细节**:该模型屏蔽了调用Tensor Core等专用硬件的底层细节,并且使用CUDA Tile编写的代码将能够兼容当前及未来的GPU架构[8][14] - **组成组件**:CUDA 13.1包含两个用于Tile编程的组件:CUDA Tile IR(一种用于NVIDIA GPU编程的全新虚拟指令集架构)和cuTile Python(一种新的领域特定语言,用于在Python中编写基于数组和Tile的核函数)[9] - **当前支持与未来规划**:目前CUDA Tile仅支持NVIDIA Blackwell(计算能力10.x和12.x)系列产品,开发重点聚焦于AI算法的Tile编程[15] 公司计划在未来的CUDA版本中扩展对更多架构的支持,增加更多特性、功能并提升性能,同时引入C++实现[15] 运行时与多进程服务(MPS)更新 - **Green Context运行时支持**:自CUDA 13.1起,轻量级的Green Context正式在运行时API中开放使用,此前已在驱动API中提供[19][20] 它允许用户定义和管理GPU资源的独立分区(主要是流式多处理器SM),可用于确保高优先级、低延迟的任务始终有可用的SM资源[20] - **可定制的SM分区**:引入了更加可定制的`split()` API,使开发者能够通过单一接口构建此前需要多次API调用才能完成的SM分区,并配置工作队列以减少不同Green Context之间的伪依赖[21] - **内存局部性优化分区(MLOPart)**:这是NVIDIA Blackwell系列及更新GPU上的一项新特性,允许基于同一物理GPU创建多个专门优化内存局部性的独立CUDA设备,每个设备拥有更少的计算资源和更小的可用内存[24][26] 目前该功能仅支持NVIDIA B200与B300系列产品[27] - **静态流式多处理器(SM)分区**:针对NVIDIA Ampere架构及更新GPU,为MPS客户端提供了一种创建独占SM分区的方法,旨在提供确定性的资源分配并改善客户端之间的隔离性[28] 开发者工具与性能分析 - **Nsight Compute增强**:增加了对CUDA Tile核函数的性能分析支持,在摘要页新增“Result Type”列以区分Tile与SIMT核函数,在详情页新增“Tile Statistics”部分总结Tile维度和管线利用率,并在源码页支持将指标映射到高层级的cuTile源码[32][34] - **编译时修补与插桩**:NVIDIA Compute Sanitizer 2025.4通过`-fdevice-sanitize=memcheck`编译器标志,增加了对NVCC编译时修补的支持,增强了内存错误检测能力和工具性能[33] 编译时插桩可将错误检测直接集成到NVCC中,实现更快的运行速度并捕捉更隐蔽的内存问题[35] - **Nsight Systems新功能**:NVIDIA Nsight Systems 2025.6.1带来了系统级CUDA追踪、CUDA主机函数追踪、默认的CUDA硬件追踪模式以及显示SM分配情况的Green Context时间轴行等新追踪功能[40] 核心数学库性能更新 - **cuBLAS性能提升**:CUDA 13.1增加了对FP4、FP8和BF16数据类型的性能支持[38] 并引入了一项全新的实验性API,支持Blackwell GPU的分组GEMM功能,兼容FP8和BF16/FP16数据类型,在MoE用例中,其设备端形状可实现最高4倍的加速,优于多流GEMM实现[40] - **cuSOLVER性能增强**:针对Blackwell架构,用于特征分解的批处理SYEVD与GEEV API带来了显著的性能提升[41] 例如,批处理SYEV在NVIDIA Blackwell RTX Pro 6000 Server Edition上,相比NVIDIA L40S实现了约2倍的加速[41] 对于GEEV函数,当矩阵行数n=30000时,加速比达到约1.7[45] - **cuSPARSE新API**:引入了一种新的稀疏矩阵向量乘法(SpMVOp)API,与CsrMV API相比性能有所提升,支持CSR格式、32位索引、双精度以及用户自定义的后缀[40] - **cuFFT设备API**:引入了一套全新的cuFFT设备API,提供主机函数用于查询或生成设备功能代码和数据库元数据,旨在提升cuFFTDx库的性能[40] CUDA核心计算库(CCCL)更新 - **确定性浮点运算选项**:NVIDIA CCCL 3.1为`cub::DeviceReduce`提供了额外的浮点确定性选项,允许用户在确定性和性能之间进行权衡[49] - **更便捷的单相CUB API**:为一些接受内存资源的CUB算法添加了新的重载,使用户可以跳过繁琐的临时存储查询、分配和释放的两阶段调用模式,简化了API使用[51][52]