《Disney +》 迪士尼、Marvel、彼思、星球大戰…  解謎類遊戲「地城謎蹤」於Steam開始販售!絞盡腦汁取得最佳分數吧!   滿載追加要素! 《魔法氣泡™ 特趣思™ 俄羅斯方塊™ 2》第二波免費更新今日起開放下載!   「集合啦!動物森友會」推出秋夏季節活動!一起在島上放煙花吧!   「Play at Home」2021年更新:10款遊戲今春供玩家免費下載   目標是成為傳說的貓皇!「貓咪大尋寶」登場!   FIFA 22:PS5 的 DualSense 無線控制器與 3D 音效如何讓您在世界級賽事中獲得前所未有的沉浸感   「Days of Play」優惠活動登陸PlayStation   《惡靈古堡8 村莊》發售前日!「到BIO村玩吧♪」第2話公開! 

DeepSeek 引發的話題:Nvidia 的 PTX 與 CUDA 有什麼分別?

商業

DeepSeek 並未使用 Nvidia 的 CUDA 編寫,而是以 PTX 編寫 ,很多人都以為CUDA要完了,但,要理解Parallel Thread Execution (PTX) 和 CUDA 的區別,我們需要先從它們的基本定位開始說起。首先,一定要說,不論CUDA,或者PTX,其實,都是 Nvidia 。

基本定位不同

CUDA (Compute Unified Device Architecture) 是NVIDIA開發的並行計算平台和程式設計模型,它提供了一個高階的程式開發環境,讓程式設計師能夠利用GPU進行通用計算。

而PTX ISA (Parallel Thread Execution Instruction Set Architecture) 則是一種中間層的虛擬機器和指令集架構,它是CUDA程式編譯過程中的一個重要環節。

應用層次的差異

CUDA:

  • 提供高階程式設計介面
  • 包含了完整的開發工具鏈
  • 支援多種程式語言,如C++、Python等
  • 提供豐富的庫函數和API

PTX ISA:

  • 作為中間碼存在
  • 更接近機器語言層面
  • 提供底層指令集定義
  • 主要服務於編譯器

實際運作方式

當開發者用CUDA寫程式時,編譯過程是這樣的:

  1. CUDA程式碼 → PTX代碼
  2. PTX代碼 → 設備特定的機器碼
  3. 最終在GPU上執行

這就像高階語言→組合語言→機器碼的關係。PTX在這個過程中扮演著”虛擬組合語言”的角色。

主要功能特點

CUDA的特點:

  • 提供線程層級的並行性
  • 記憶體層級管理
  • 同步機制
  • 錯誤處理
  • 調試工具

PTX ISA的特點:

  • 定義基本運算指令
  • 記憶體存取指令
  • 控制流指令
  • 原子操作指令

使用場景

CUDA適合:

  • 開發完整的GPU計算應用
  • 實現複雜的並行算法
  • 需要高效能計算的科學計算
  • 深度學習框架開發

PTX ISA適用於:

  • 編譯器開發
  • 效能優化
  • 底層驅動開發
  • 硬體相關的特定優化

開發難度比較

CUDA:

  • 較容易上手
  • 有完整的文檔和社群支援
  • 提供多種調試工具
  • 開發效率高

PTX ISA:

  • 需要深入的硬體知識
  • 學習曲線較陡
  • 開發時間較長
  • 需要更多的測試驗證

效能考量

雖然PTX ISA層級的程式設計理論上能獲得更好的效能,但實際上:

  • CUDA編譯器已經非常成熟
  • 自動優化效果很好
  • 手寫PTX很難超過CUDA編譯器的優化效果

未來發展趨勢

CUDA正在向以下方向發展:

  • 更好的AI和機器學習支援
  • 更完善的跨平台能力
  • 更強的自動優化能力

PTX ISA則在:

  • 支援新的硬體特性
  • 優化指令集設計
  • 提升執行效率

結論

對於大多數開發者來說,直接使用CUDA進行開發是最佳選擇。PTX ISA的知識對於理解GPU運作機制很有幫助,但除非有特殊需求,否則不需要直接在PTX層級進行程式設計。

參考資料:

https://docs.nvidia.com/cuda/parallel-thread-execution/

DeepSeek’s AI breakthrough bypasses industry-standard CUDA, uses Nvidia’s assembly-like PTX programming instead

TechApple

隨機商業新聞

Micorsoft