整理 | 鄭麗媛
出品 | CSDN(ID:CSDNnews)
如果你是一名 Python 開發(fā)者,曾想嘗試 CUDA 卻被 C/C++ 勸退,那么你終于可以松一口氣了——今年 NVIDIA GTC 大會(huì)上傳來了一條重磅消息:CUDA,英偉達(dá)深耕多年的并行計(jì)算平臺(tái)和編程模型框架,正式加入了對 Python 的原生支持!
這意味著:Python 開發(fā)者無需再學(xué)習(xí) C/C++,就可以用最熟悉的 Python 寫代碼、調(diào)庫、跑模型,直接在 GPU 上高效執(zhí)行算法任務(wù)。作為長期以來開發(fā)者社群最為期待的能力之一,Python 原生支持的到來,無疑為 CUDA 注入了新的活力,也為數(shù)以百萬計(jì)的 Python 工程師打開了加速計(jì)算的大門。
(CSDN 付費(fèi)下載自視覺中國)
正式官宣:Python 成為 CUDA 原生語言
自 2006 年推出以來,CUDA 憑借其出色的并行計(jì)算性能,成為深度學(xué)習(xí)、科學(xué)計(jì)算、圖像處理等領(lǐng)域的核心技術(shù)底座。但長期以來,CUDA 的生態(tài)始終圍繞 C/C++ 構(gòu)建,其編程語言支持也主要集中在 C、C++ 和 Fortran 上。
雖然有諸如 PyCUDA、Numba 等第三方庫實(shí)現(xiàn)了部分 Python 封裝,但始終缺乏官方、全面、原生的 Python 集成。尤其在 GitHub 2024 年度報(bào)告中 Python 超越 JavaScript、成為了“全球最受歡迎編程語言”之后,這種不匹配越來越明顯。
如今,這一切終于迎來了轉(zhuǎn)折點(diǎn)。
在 GTC 2025 中,英偉達(dá)正式宣布:CUDA 工具鏈將全面原生支持 Python 編程。CUDA 架構(gòu)師 Stephen Jones 在 GTC 技術(shù)演講中對此表示,“我們一直在努力讓加速計(jì)算與 Python 深度融合,使其成為 CUDA 技術(shù)棧中的‘一等公民’?!?/p>
CUDA 的 Python 化改造
對于添加了原生 Python 支持的 CUDA,開發(fā)者可直接用 Python 編寫算法,并在英偉達(dá) GPU 上高效執(zhí)行,無需手動(dòng)調(diào)用底層內(nèi)核或依賴 C++ 接口封裝。
Stephen Jones 補(bǔ)充道:“這不僅僅是把原來的 C 語言翻譯成 Python,而是要讓 Python 保持本色,讓 Python 開發(fā)者也感到自然?!?/p>
英偉達(dá)也強(qiáng)調(diào),此次更新重新設(shè)計(jì)了一套真正符合 Python 編程習(xí)慣的 CUDA 開發(fā)模型,包括 API、庫、執(zhí)行方式和性能優(yōu)化手段。開發(fā)者可以像使用 NumPy、PyTorch 那樣,用 Python 腳本直接編寫和調(diào)用 GPU 加速邏輯。
換句話說,英偉達(dá)對 CUDA 不是簡單的語法包裝,而是一次從運(yùn)行時(shí)到編程模型的 Python 化重構(gòu)。具體來看,英偉達(dá)提供了:
(1)CUDA Core:重新設(shè)計(jì)的運(yùn)行時(shí)系統(tǒng),支持完全的 Python 編程體驗(yàn),執(zhí)行流程也更貼近 Python 風(fēng)格;
(2)cuPyNumeric:NumPy 的 GPU 加速替代品,修改一行 import 即可將代碼從 CPU 遷移至 GPU;
(3)NVMath Python:統(tǒng)一接口庫,支持在 host 和 device 兩端調(diào)用各種庫函數(shù),這些函數(shù)調(diào)用支持自動(dòng)融合(fusing),可帶來明顯的性能提升;
(4)采用 JIT 編譯:幾乎不依賴傳統(tǒng)編譯器,大幅減少依賴鏈復(fù)雜度,提高執(zhí)行效率和可移植性;
(5)全套的分析工具支持:包括性能分析器、代碼靜態(tài)分析器等,幫助開發(fā)者進(jìn)行性能調(diào)優(yōu)。
除此之外,傳統(tǒng) CUDA 強(qiáng)調(diào)線程(thread)、塊(block)等顯式控制方式,而 Python 工程師則更熟悉“數(shù)組思維”——以矩陣、張量、向量等結(jié)構(gòu)為基礎(chǔ)組織計(jì)算。為此,英偉達(dá)還推出了全新編程模型 CuTile,它更像是面向數(shù)組、張量的抽象,更貼近 Python 開發(fā)者的思維模式。
CuTile 模型強(qiáng)調(diào)以 tile(小塊)為基本計(jì)算單元進(jìn)行調(diào)度,每個(gè) tile 包含若干數(shù)據(jù)元素,由編譯器負(fù)責(zé)自動(dòng)映射到底層線程執(zhí)行,從而實(shí)現(xiàn)高效的 GPU 加速。Stephen Jones 解釋道,“相比線程,tile 更貼近 Python 語言的哲學(xué);它足夠高效,性能也不輸 C++。”——tile 中的數(shù)據(jù)可以是向量、張量或數(shù)組,編譯器可以更好地將整個(gè)數(shù)組操作映射到 GPU。
最終實(shí)現(xiàn)既保留了 CUDA 的性能優(yōu)勢,又貼近 Python 的開發(fā)習(xí)慣。
接下來還有什么值得期待?
根據(jù)市場研究機(jī)構(gòu) The Futurum Group 數(shù)據(jù),2023 年全球 CUDA 開發(fā)者數(shù)量約為 400 萬人。而與之相比,Python 開發(fā)者群體則以指數(shù)級增長,在全球范圍內(nèi)已突破數(shù)千萬,尤其在印度、巴西等新興市場展現(xiàn)出強(qiáng)大活力。
英偉達(dá)此次為 CUDA 添加原生 Python 支持,無疑將把這批人拉入 CUDA 生態(tài)中。無論你是 AI 工程師、科研人員,還是對 GPU 加速感興趣的 Python 愛好者,這波更新無疑是一個(gè)好消息。
更為重要的是,英偉達(dá)在 GTC 大會(huì)上還透露:接下來還將在 CUDA 中支持 Rust、Julia 等語言,進(jìn)一步擴(kuò)大其多語言生態(tài)。也就是說,CUDA 不再設(shè)置“語言門檻”,正在從“專業(yè)工具”向“通用平臺(tái)”演化,未來不再只有系統(tǒng)級程序員才能玩轉(zhuǎn) CUDA。
參考鏈接:https://thenewstack.io/nvidia-finally-adds-native-python-support-to-cuda/
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.