CUDA簡介
什麼是CUDA?
CUDA 是一個平行運算平台和程式設計模型,允許在輝達的 GPU 上進行通用運算。該平台使開發人員能夠利用 GPU 的強大功能進行平行運算,從而加速運算要求較高的應用程式。
關於GPU,請見我的另一篇貼文《圖形處理器(GPU)主要的廠商和用途》
CUDA的發佈
輝達於2007年發佈了CUDA。CUDA就是一套輝達GPU提供給客戶的程式設計環境,讓客戶透過這個軟體介面呼叫,存取輝達GPU所提供的所有功能。
CUDA是如何被發明的?
黃仁勲表示過:因為在我們選擇的電玩領域中,你不僅希望它美觀,還希望它動態化,能夠創建虛擬世界。我們一步一步地擴展,並將其引入科學計算。第一個應用之一是分子動力學模擬,另一個是地震處理,基本上是逆物理。地震處理與CT重建非常相似,是另一種形式的逆物理。所以我們一步一步解決問題,擴展到鄰近產業,最後解決了這些問題。
請注意:黃仁勲談的不是只有電腦或電玩產業。
用途
進行通用處理
CUDA是輝達的平行運算平台和應用程式介面。正因為有了CUDA,讓輝達的GPU不限於用於電腦的顯示而已,而是可以被用於其它的用途,進行通用處理。
GPU和CUDA主要用於加速
與通用電腦不同,通用電腦一旦建置好處理器,所有的東西最終都會運作。但GPU是加速計算機,這表示你需要問自己,你要加速什麼?不存在所謂的通用加速器。
不同用途的演算法都是不同的。如果你創建一個處理器,專門擅長這些演算法,並補充CPU處理它擅長的任務,那麼理論上,你可以大大加速應用程式的運作。原因是通常5%到10%的程式碼佔據了99.99%的運行時間。
如果你把那5%的程式碼用輝達的GPU和CUDA來處理,在加速器上,技術上,你可以將應用程式的速度提高100倍。
幾乎所有與機器學習相關的內容都在演進。它可以是SQL資料處理、Spark類型的資料處理,或是向量資料庫類型的處理,處理無結構或結構化的數據,這些資料都是資料幀。我們對這些進行極大的加速,但為了做到這一點,你需要一個頂級的程式庫───那就是CUDA。
最大缺點
CUDA的最大缺點是它缺乏可移植性,因為它只能在輝達的晶片上運作。
封閉不開放
一如蘋果的作法,CUDA是輝達特有的軟體介面,只能用於輝達的硬體上,是封閉不開放的軟體介面。
正因為它的封閉,反而強化了它的獨特性,強化了輝達的競爭力,堆高輝達的整體壟斷性。
為什麼CUDA會形成護城河?
執行效率較佳
它通常被認為速度更快,透過廣泛的程式庫和軟體工具得到更好的支持,並且通常被認為是一個更成熟的平台,與OpenCL相比,CUDA具有更廣泛的用戶基礎。
涵蓋功能廣泛
舉例而言,CUDA提供了cuDNN(用於神經網路運算的函式庫),還有cuOpt(用於組合最佳化的函式庫),cuQuantum(用於量子模擬和模擬的函式庫),以及許多其他的函式庫,像是用於資料幀處理的cuDF,類似SQL的功能。因此,所有這些不同的函式庫都需要被發明出來,它們可以把應用程式中的演算法重新整理,使輝達GPU的加速器能夠運作。如果你使用這些函式庫,你就可以達到100倍的加速,獲得更多的速度,非常驚人。
被廣為接受
請注意,CUDA在深度學習軟體社群中具有更大的吸引力,並且對於AI求職者來說是一種更具吸引力的技能。它是Google的TensorFlow和微軟的CNTK支援的唯一標準,也是大多數其他深度學習框架的主要標準。
如今,許多人工智慧的深度學習框架(包括 Caffe2、Chainer、Databricks、H2O.ai、Keras、MATLAB、MXNet、PyTorch、Theano 和 Torch)都依賴 CUDA 來提供對 GPU的支援。
廣大的使用基礎
輝達晶片的最⼤優勢是花近20年時間開發出來、加速繪圖晶片運算以供AI應⽤的
CUDA,這形成競爭對⼿難以跨越的強⼤護城河。
由於⼤多數AI系統和應⽤已在輝達的CUDA上運⾏,開發⼈員要為其他處理器(例如超微的MI 300、英特爾的Gaudi 3 ,或亞⾺遜的Trainium)重寫這些系統和應⽤,費時⼜有風險。
總之,⽬前輝達的CUDA在後端架構上處於絕對統治地位。替換CUDA這種開發環境,比替換晶片和通道都還要困難。
有多少人使用?
在COMPUTEX 2023期間,輝達透露CUDA擁有超過400萬開發人員、超過3,000個應用程式、驚人的4000萬次CUDA下載量,光是2022年就達到了驚人的2500萬次。此外,輝達平台上已經成立了15,000家新創公司,全球有40,000家大型企業正在利用CUDA進行加速運算。
競爭者
封閉型方案
超微的ROCm
輝達是在2007年發佈CUDA的,超微遲至2016年才發佈ROCm,作為對等的解決方案。CUDA自問世起就支持Linux、Windows多種平台,後者則長期只能支援Linux系統,且不支持部分Linux的更新,並於2023年4月才支援Windows平台。
華為的CANN
CANN(Compute Architecture for Neural Networks)是華為針對AI場景推出的異質運算架構,對上支援多種AI框架,對下服務AI處理器與編程,支援華為的昇騰AI處理器運算效率的關鍵平台。
開放型方案
OpenCL
OpenCL是CUDA的第一個較知名的競爭對手,於2009年推出。然而,儘管OpenCL的豐富性看起來很吸引人,但它在輝達GPU 上的表現不如 CUDA,使後者越來越受歡迎。如今,大多數深度學習框架要不是缺乏OpenCL的支援,不然就是先提供CUDA,後面才會提供OpenCL的版本。
OpenAI的Triton
OpenAI也在於 2019 年開發了⼈⼯智慧應⽤軟體Triton。Meta、微軟和Google等多家公司的⼯程師都參與開發開源的Triton。
Triton最初僅適⽤於輝達GPU,但現在也⽀援輝達Gaudi 和超微的MI300 GPU。其中,Meta⾃主研發的AI晶片 MTIA還採⽤Triton,成為了市場上潛在競爭對⼿。
oneAPI
英特爾、字母、安謀和⾼通等都是UXL Foundation的成員,該聯盟正開發基於英特爾開源平台oneAPI的CUDA替代⽅案。
oneAPI旨在跨不同的運算加速器(協處理器)架構使用,包括GPU、AI 加速器和現場可程式閘陣列(FPGA)。主要目的在消除開發人員必需分別為每個架構維護單獨的程式碼庫、多種程式語言、工具和工作流程的需求;程式嗎只需寫一次就可以在不同的硬體架構下使用。
ZLUDA
ZLUDA 的出現,這是⼀個開放原始碼移植項⽬,允許輝達的CUDA與超微的ROCm兩款運算架構配合使⽤,最終⽀援 GPU 運算。
Mojo
曾在蘋果、特斯拉和字母⼯作過的知名資深⼯程師Chris Lattner,推出針對AI開發商的程式語⾔Mojo,主打毋須使用CUDA,一樣可以撰寫跨硬體平台的AI程式語言,減輕程式設計相容的壓力。
模擬器
Scale
英國一家新創公司,推出了針對超微的CUDA程式編譯工具,而且免費商用。原來的程式碼不需要任何修改轉換,超微晶片也能執行專門為CUDA所撰的程式了。這套軟體工具名為SCALE,開發者給它的定位是一個GPGPU(通用GPU)程式設計工具集。
輝達的對策
禁⽌模擬或相容⽅案
從 2021 年開始,輝達就禁⽌其他硬體平臺使⽤類比層運⾏CUDA 軟體,但只是在線上的 EULA ⽤⼾協定中提出警告。
輝達在2024年3月時,更新 CUDA 11.6 版本的 EULA 協定。其中⼀條提到,「你不能逆向⼯程、反編譯或反彙編使⽤此 SKD ⽣成的任何結果,並在非輝達平臺上進⾏轉譯」。外界揣測,此舉是針對英特爾、超微都參與的 ZLUDA 等第三⽅專案,以及登臨科技 GPU+、沐曦科技等中國廠商的相容⽅案。
持續強化功能
黃仁勲在2024年8 月的第二季法說會中就表示:加速運算始於CUDA-X函式庫。新的資料庫為輝達展開新市場,而輝達已推出許多新的資料庫,包括CUDA-X Accelerated Polars、Pandas和領先的資料科學與資料處理庫Spark,以及用於向量資料庫的CUVI-S。
相關文章
- 《龐大的輝達新業務佈局有利於股價的大幅成長》
- 《CUDA軟體如何強化輝達壟斷的護城河?》
- 《圖形處理器(GPU)主要的廠商和用途》
- 《市場愈來愈大的特殊應用積體電路(ASIC),和美股和台股的相關上市企業》
- 《圖形處理器(GPU)主要的廠商和用途》
- 《輝達的壟斷原因和面對的挑戰》
- 《再論輝達:人工智慧,資料中心,和繪圖的絕對領先者》
- 《輝達(nVidia) 如何賺錢?輝達改變了產業的遊戲規則 》
- 《為什麼輝達(nVidia)併購安謀(ARM)會失敗?》
- 《英特爾正將公司分拆為五家獨立公司 》
- 《英特爾倒閉可能發生嗎?》
- 《英特爾是怎麼賺錢的?以及投資它的好處 》
- 《英特爾目前艱難的困境》
- 《超微(AMD)如何賺錢?企業史上罕見的反敗為勝案例》
- 《長年老二的超微(AMD)表現為何令人瞠目結舌?》
- 《高通(Qualcomm)多元化成功,已不再只靠手機賺錢》
- 《無所不在的安謀(Arm)如何賺錢?》
- 《安謀二次上市成功,且正迎來公司最好的時光》
- 《人工智慧個人電腦(AI PC)正在改變個人電腦的供應鏈和生態系統》
- 《安謀視窗電腦WOA(Windows on ARM)有多大的潛能?
- 《資料中心是仍在高速成長的半導體領域》
- 《目前獲利豐厚的五大人工智慧商》
- 《資本市場的人工智慧泡沫正在形成》
- 《人工智慧投資的陷井》
- 《美股主要的人工智慧上市公司》
- 《目前獲利豐厚的五大人工智慧商》
- 《生成式人工智慧新星OpenAI和爆紅的ChatGPT》
重要聲明
- 本站內容為作者個人意見,僅供參考,本人不對文章內容、資料之正確性、看法、與即時性負任何責任,讀者請務必自行判斷。
- 對於讀者直接或間接依賴並參考本站資訊後,採取任何投資行為所導致之直接或間接損失,或因此產生之一切責任,本人均不負任何損害賠償及其他法律上之責任。