Workflow
Python生态系统
icon
搜索文档
GPU编程“改朝换代”:英伟达终为CUDA添加原生Python支持,百万用户变千万?
36氪· 2025-04-08 19:28
英伟达CUDA对Python的原生支持战略 - 公司明确将Python提升为CUDA并行编程框架中的“一等公民”,并宣布CUDA工具包将为Python提供原生支持和全面集成 [1] - 公司将2025年定为“CUDA Python元年”,此观点已成为内部共识及GTC大会的核心主题之一 [1] - 开发人员现可直接使用Python在GPU上执行算法式计算,无需掌握C或C++等底层语言 [1] 行业背景与现有解决方案 - 过去英伟达主要依赖C和C++作为编程接口,开发者需在此基础上构建更高级的Python库(如PyTorch)以实现应用 [2] - OpenAI的Triton等项目允许开发者用特定风格的Python编写代码,再通过编译器转化为GPU可运行的内容,表明在GPU编程Python化方向已有先行者 [2] - 这些第三方库的广泛应用在某些方面甚至超越了英伟达自家的解决方案 [2] 战略动机与生态影响 - CUDA架构师指出,Python开发者生态的用户规模已从百万级别增长至千万级别,底层的改进将通过Python生态系统产生更广泛的影响 [3] - 公司的整体愿景是为Python开发者提供完整的NVIDIA体验,使整个CUDA生态系统都能通过Python进行访问和使用 [3] - 此举并非放弃C++,而是在扩大开发者圈层,特别是显著加大对Python社区的支持 [4] 技术实现与开发者体验 - 公司强调Python中的CUDA应保持自然的Python风格,而不仅仅是语法转换,让开发者能轻松创建运行在GPU上的AI程序 [5] - 例如CuTile提供了比传统CUDA更高层级的抽象,开发者接触的接口完全是Python,无需直接使用C++ [5] - 新的Python接口版本Cutlass允许开发者直接在Python中构建算子和进行低级优化,同时保留原有性能 [6] 分层生态系统构建 - 公司正在构建一个分层的开发者生态系统金字塔:底层是核心CUDA C++,中间层是面向专业开发者的高性能Python接口(如Triton、Python Cutlass),顶层是面向AI构建者的抽象层(如PyTorch) [6] - 这种分层方式支持开发者从顶层工具快速原型设计逐步深入到底层接口,实现了GPU编程的“民主化”,使熟悉Python但不精通系统编程的人也能参与 [6] - 布道师认为这降低了AI开发者、研究者和初创公司的门槛,无需专门的CUDA工程师团队即可充分发挥GPU性能 [7] 技术栈整合与性能优化 - CUDA Python项目围绕即时(JIT)编译构建,减少了技术栈中的依赖项数量,旨在实现无需脱离Python环境的端到端GPU加速 [9] - 公司已构建基础Python绑定、cuPyNumeric(NumPy的GPU替代方案)等组件,仅变更一条导入指令即可将NumPy代码从CPU运行转为GPU运行 [9] - 通过将Python代码链接到经过微调的C++底层代码,新实现的性能影响几乎可以忽略不计 [12] 新型编程模型CuTile - CuTile编程模型添加了在GPU上执行且与高级别抽象一致的编码层,其设计更契合Python特性,使程序员关注数组而非线程 [13][15] - 该模型将问题拆分成tiles在GPU上处理,编译器能更好地将数组操作映射至GPU,在保持高性能的同时使代码更易于理解和调试 [15][16] - 编译器因其对开发者意图和GPU运行细节的深刻理解,通常能比程序员做得更好 [17] 未来扩展计划 - 在提升Python为核心语言的同时,公司也在积极招募程序员,以支持包括Rust和Julia在内的更多编程语言 [8]