《Disney +》 迪士尼、Marvel、彼思、星球大戰…  數位卡夫特最新作《Fight of Steel: Infinity Warrior》實機遊玩畫面曝光!   Melty Blood 新作「MELTY BLOOD: TYPE LUMINA」上「Fate」Saber正式參戰!!   《NBA 2K22》為PlayStation帶來新賽季和新發現   《Streets of Rage 4》新「生存」模式創作花絮   在遊戲中心「太鼓之達人」與「AI粗品」對戰吧!「AI粗品對戰演奏」模式啟動!   【實測】搭載可自訂多功能觸控板,精巧尺寸華碩電競鍵盤「ROG Falchion」!   「任天堂直面會」將於日本時間2月18日早上7點起進行直播!並且有大約50分鐘的豐富內容!   「魔物獵人 特別節目 2021.5.26」確定播出!更新情報與最新短片! 

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

隨機商業新聞

Gearbest