Tile编程模型
搜索文档
英伟达自毁CUDA门槛,15行Python写GPU内核,性能匹敌200行C++
36氪· 2025-12-08 15:23
CUDA 13.1更新核心内容 - 英伟达发布CUDA 13.1,官方定性为自2006年诞生以来最大的进步[1] - 核心变化是推出全新的CUDA Tile编程模型,让开发者可以用Python编写GPU内核[1] - 一个15行的Python内核性能可以媲美200行手动优化的CUDA C++代码[1][13] CUDA Tile编程模型的技术革新 - 编程范式从传统的SIMT(单指令多线程)模型转变为基于Tile(瓦片)的模型[4][5] - 开发者无需手动管理线程索引、线程块等底层细节,只需将数据组织成Tile并定义运算,编译器和运行时会自动完成硬件映射[4][5] - 此举将GPU编程门槛从“HPC专家”降低到“会写Python的数据科学家”[8] 支撑新模型的核心组件 - CUDA Tile IR是一套全新的虚拟指令集,在高级语言和硬件之间增加抽象层,确保基于Tile编写的代码能在不同代际的GPU上兼容运行[8] - cuTile Python是面向开发者的接口,允许直接用Python编写GPU内核[8] 针对Blackwell架构的性能优化 - cuBLAS引入了FP64和FP32精度在Tensor Core上的仿真功能[10] - 新增的Grouped GEMM API在MoE(混合专家模型)场景下能实现高达4倍加速[10] - cuSOLVER的批处理特征分解在Blackwell RTX PRO 6000上相比L40S实现了约2倍的性能提升[10] - 开发者工具Nsight Compute新增了对CUDA Tile内核的性能分析支持,可将性能指标映射回cuTile Python源代码[10] - 目前CUDA Tile仅支持Blackwell架构(计算能力10.x和12.x),开发重点集中在AI算法,未来会扩展到更多架构并推出C++实现[10] 行业影响与“护城河”争议 - 芯片设计传奇人物Jim Keller质疑,Tile模型可能使AI内核更容易移植到其他硬件上,从而削弱英伟达CUDA的“护城河”[3][11] - Tile编程模型并非英伟达独有,AMD、Intel等厂商的硬件在底层架构上同样可以支持基于Tile的编程抽象[11] - 新模型提高了代码抽象层次,理论上使同一套算法逻辑更容易适配到其他支持Tile编程的硬件[11] - 但英伟达通过CUDA Tile IR提供的跨代兼容性,主要服务于其自家GPU平台间的无缝迁移,移植到竞争对手平台仍需重写[12] 对开发者生态的潜在影响 - GPU编程门槛大幅降低,大量数据科学家和AI研究者可直接上手编写高性能GPU代码,无需依赖稀缺的HPC专家进行深度优化[12][13]
英伟达自毁CUDA门槛!15行Python写GPU内核,性能匹敌200行C++
量子位· 2025-12-08 12:00
文章核心观点 - 英伟达发布CUDA 13.1,推出全新的CUDA Tile编程模型,这是CUDA自2006年诞生以来最大的进步,旨在彻底改变并大幅降低GPU编程的门槛[1][2] - 新模型让开发者可以用Python编写GPU内核,15行Python代码性能即可媲美200行手动优化的CUDA C++代码,使得更多数据科学家和AI研究者能直接上手高性能GPU编程[3][22] - 行业专家Jim Keller认为,这种提高抽象层次、降低硬件依赖的编程范式,可能削弱英伟达以CUDA生态构建的护城河,使得AI内核更容易移植到其他厂商的硬件平台[5][15][17][18] CUDA Tile编程模型的革新 - 传统CUDA采用SIMT(单指令多线程)模型,开发者需手动管理线程索引、线程块、共享内存布局和线程同步等复杂细节,对开发者经验要求极高[6][7] - CUDA Tile模型彻底改变玩法:开发者将数据组织成Tile(瓦片),并定义在Tile上的运算,而如何将运算映射到GPU的线程、Warp和Tensor Core等硬件细节则由编译器和运行时自动处理[8] - 新模型类比NumPy之于Python,通过提高抽象层次简化了编程[9] 新模型的核心技术组件 - **CUDA Tile IR**:一套全新的虚拟指令集,在高级语言和硬件之间增加抽象层,确保基于Tile编写的代码能在不同代际的GPU上运行,包括当前的Blackwell及未来架构,提供跨代兼容性[11][18] - **cuTile Python**:面向开发者的接口,允许直接用Python编写GPU内核,将编程门槛从“HPC专家”大幅降低至“会写Python的数据科学家”[12] 性能优化与当前支持范围 - 目前CUDA Tile仅支持Blackwell架构(计算能力10.x和12.x),开发重点集中在AI算法上,公司表示未来会扩展到更多架构并推出C++实现[14] - 更新带来一系列面向Blackwell的性能优化:cuBLAS引入FP64和FP32精度在Tensor Core上的仿真功能;新增的Grouped GEMM API在MoE(混合专家模型)场景下能实现高达4倍加速;cuSOLVER的批处理特征分解在Blackwell RTX PRO 6000上相比L40S实现了约2倍的性能提升[16] - 开发者工具Nsight Compute新增对CUDA Tile内核的性能分析支持,可将性能指标直接映射回cuTile Python源代码[16] 对行业竞争格局的潜在影响 - Tile编程模型并非英伟达独有,AMD、Intel及其他AI芯片厂商的硬件在底层架构上同样可以支持基于Tile的编程抽象[15] - 过去CUDA的SIMT模型与英伟达硬件深度绑定,代码难以移植到其他硬件。而Tile模型的高抽象层次使得同一套算法逻辑理论上更容易适配到其他支持Tile编程的硬件上,可能降低CUDA生态的锁定效应[15][17] - 专家Jim Keller指出,这可能导致“AI内核将更容易移植”[18] - 然而,英伟达的CUDA Tile IR提供的跨代兼容性主要服务于其自身平台,开发者代码更容易在英伟达不同代GPU(如从Blackwell到下一代)间迁移,但要移植到AMD或Intel平台仍需重写[19][20] 对开发者生态的影响 - GPU编程门槛大幅降低,从需要稀缺的、能熟练驾驭CUDA并优化至跑满Tensor Core的专家,扩展到广大会写Python的数据科学家和AI研究者[21][22][23] - 公司表示,一个15行的Python内核性能可以媲美200行手动优化的CUDA C++代码,打通了高性能计算与更广泛开发者群体之间的瓶颈[22]
DeepSeek突然拥抱国产GPU语言,TileLang对标CUDA替代Triton,华为昇腾Day0官宣支持适配
36氪· 2025-09-30 10:52
TileLang技术特性 - TileLang是一种专门用于开发GPU内核的领域专用语言,性能可对标英伟达CUDA,采用Python式语法并在TVM之上构建编译器基础架构[4][13] - 其核心设计理念是将调度空间与数据流解耦并封装为可自定义的注解和原语,以Tile作为编程模型核心概念,直观控制数据在全局内存、共享内存和寄存器间的流动[15] - 提供三个层次编程接口:硬件无关的高层接口供初学者使用,包含预定义优化操作的Tile Library供有经验开发者使用,以及允许直接操作线程同步等底层特性的线程原语供专家用户使用[15] 性能优势与效率提升 - 使用TileLang只需不到100行代码就能写出比Flash Attention 2原版快30%的注意力实现[3] - 在FlashAttention算子开发中,代码量从500多行减少至80行,并保持与官方版本持平的性能[5] - 在H100上的MLA解码速度,TileLang编写的内核做到与FlashMLA相当[21] 行业生态适配与合作 - TileLang与国产算力生态适配,华为昇腾在第一时间公告对TileLang的支持[4] - 沐曦集成电路的高级总监董兆华与TileLang团队成员共同讨论沐曦GPU与TileLang的适配[5] - 该语言由北大团队主导开发,核心人物包括王磊、董宇骐以及北大计算机学院副研究员、博士生导师杨智[9] DeepSeek与TileLang的合作关系 - DeepSeek在v3.2中开源TileLang版本算子,其受关注程度超过新稀疏注意力机制DSA[1] - DeepSeek团队使用TileLang快速开发原型,之后用更底层的方法进一步优化性能,v3.2论文中提到在内核层面共享k-v提升计算效率,让DSA的闪电索引器机制运行速度远超传统实现[17] - DeepSeek v3.2验证了TileLang确实可以用来训练模型,TileLang发起人王磊发帖致敬DeepSeek敢于使用新编程语言开发核心产品[23]