CUDA全名叫Compute Unified Device Architecture,說白了就是一套讓程序員更好用英偉達GPU的編程工具。在講CUDA之前,我得先說說什么是“編程模型”。其實很簡單,就是給程序員定的一套規則,按著這套規則寫程序,就能更高效地用硬件干活。不同的場景、不同的硬件條件、不同的任務環境下,不同的編程模型的效果是不同的。
我們來舉個餐館的例子來形象化解釋不同的編程模型。如何運營一個餐館就可以分成不同的模式。在傳統餐館中,運營模式通常是:服務員接單→交給后廚→廚師按順序做菜→上菜。這就像程序里的順序執行,一步一步來,很清晰,但當任務量大時,例如飯點高峰期,就容易因為某一步驟的延遲而導致整體效率下降。這種餐館模式就像程序設計中的順序編程模型。在順序編程中,程序按照嚴格的步驟依次執行,上一任務完成后下一任務才能開始。這種方式邏輯直觀、適合小規模的任務,但當面對大規模或高度復雜的任務時,效率會顯得不足。
另外一種餐館的模式叫做多廚房并行模式。在面對大型活動,例如音樂節、體育賽事、公司年會時,傳統餐館的模式顯然不夠用。這時,管理團隊通常會采用多廚房并行模式。每個廚房負責處理訂單中的某一部分,比如涼菜由廚房A負責,熱菜由廚房B負責,甜點由廚房C負責。各個廚房彼此獨立,可以同時處理訂單的不同部分,最終將所有完成的菜品匯總到中央區域,再統一交給顧客。這種方法充分利用了多個廚房的并行性,在整體上顯著縮短了服務時間。這種多廚房協同模式,就類似于程序設計中的并行編程模型。
英偉達的GPU硬件采用的就是這種并行編程模型。因為英偉達的GPU里有大量的流處理器(Streaming Processor, SP),每個都能獨立工作,就像有很多個小廚房。而且GPU主要處理的是圖像渲染、科學計算這些容易并行的任務。所以并行編程模型特別適合GPU,CUDA就是專門為這個設計的。CUDA不僅是一套編程規則,它還把復雜的底層操作給包裝起來了。以前用GPU,程序員得自己管顯存、調度線程,特別麻煩。有了CUDA,這些復雜的事情系統自動幫你搞定,你只需要專心想“我要做什么”,而不用操心“怎么做”。
做個類比。就像一臺高端相機,硬件很牛,但要用好它,你得懂光圈、快門、ISO這些專業知識,知道各種專業參數怎么調,門檻太高。所以廠商搞了“智能場景模式”——比如運動模式、夜景模式等等,普通人一鍵就能拍出好照片。CUDA就是GPU的“智能場景模式”。它提供了豐富的工具,讓開發者無需專門研究GPU架構,也能高效完成自己的編程任務。而且,CUDA支持流行的編程語言,例如C、C++、Python、MATLAB等,讓科學家和工程師不用成為硬件專家,就能用上GPU的強大計算能力。
![]()
有個很形象的比方可以形容CUDA:理解CUDA的方式就是,你擁有一張視頻游戲顯卡,但它上面配備了一個開關,CUDA就是這個開關,你只需要輕撥一下,就可以實現你想要的功能。然而,CUDA雖然強大,但代價也是巨大的。G80是英偉達第一款支持CUDA的GPU。為了開發這款芯片,英偉達花了整整4年時間,成本高達4.75億美元,占了那4年總研發預算的三分之一。要知道,以前每代GeForce芯片開發周期才1年。
這還只是“一個”支持CUDA的GPU。當時英偉達內部爭論激烈:是不是所有GPU都要支持CUDA?最初的計劃是只在高端科學和技術工作站顯卡上支持CUDA,但黃仁勛堅持要在全產品線推廣,包括游戲用的GeForce系列。黃仁勛告訴CUDA團隊:“我們應該把這項技術推向所有領域,讓它成為基礎性技術。”因為他有一個想法:使用CUDA的人越多,這項技術成為標準的速度就越快,就越有可能找到新的應用。
這項決策雖然戰略意義深遠,但卻在短期內帶來了高昂的代價。為了讓所有顯卡支持CUDA,英偉達不得不承擔巨大的成本壓力。在2008至2010年間,英偉達的毛利率從45.6%降至35.4%。再加上2008年的全球金融危機,英偉達面臨了巨大的商業沖擊,其股價在短短一年多時間內暴跌了80%。
投資者們開始抱怨英偉達持續投資CUDA并無財務意義。有人批評說:“英偉達在這個新的芯片架構上投入了大量資金,耗費了數十億美元,卻瞄準了學術和科學計算這一偏門領域,而當時這并非一個大市場——遠不及他們投入的數十億美元。”
例如,當時英偉達費盡心思地尋找那些真正需要這種強大性能的用戶。馬薩諸塞州全科醫院的研究人員曾致信英偉達,建議為他們的乳腺X光掃描儀進行升級。黃仁勛邀請這家醫院參與CUDA的初步測試,在一個試點項目中投入了數百萬美元,但最終僅售出兩塊顯卡。更糟糕的是,CUDA軟件下載量持續下滑,至2012年降至最低點,新安裝量僅10萬次出頭。
2013年初,很多投資分析師認為,如果英偉達停止在CUDA上燒錢,股價才會漲,甚至有人開始質疑黃仁勛繼續當CEO是否合適。
英偉達的顯卡就像是一把錘子,原來是用來敲釘子。然而,英偉達并不滿足自己的錘子只能敲釘子,他們希望這把錘子能夠在更多領域發揮作用。為此,他們對這把錘子進行了全面改造,不僅讓它的結構更加靈活,還為這個錘子開發了一套使用方法,幫助使用者更高效地操控這把錘子。
但是,他們拿著這把錘子到處向人推銷,卻發現沒人對這把錘子感興趣。直到有一天他們來到了一家門口,門牌上寫著六個字:深度神經網絡。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.