ADVERTISEMENT
NVIDIA的投資者之前一直都處在山谷之中:
不過,這張圖表不是NVIDIA最近兩年的情況,而是其從 2017 年初到 2019 年初的股價走勢;下面這張是它從 2017 年到今天的股價走勢:
過去三年,NVIDIA的業務發生了三件大事,將他們的股價推到了前所未有的高度:
- 疫情導致個人電腦購買量激增,尤其是遊戲顯示卡的購買量激增,因為客戶既要買新電腦,手頭又有一筆可自由支配的收入沒地方花,就只能追求更好的遊戲體驗了。
- 機器學習應用在超大規模運算(hyperscalers)中出現爆發式增長,而這些都是用NVIDIA的 GPU 訓練的。
- 加密貨幣泡沫導致對NVIDIA晶片的需求猛增,因為要賺錢(挖礦)得靠求解以太坊工作量證明(POW)。
加密貨幣的走勢與其說是山谷,不如說是懸崖:以太坊成功切換到持有量證明(POS)模型,令由成千上萬的NVIDIA GPU 搭建出來的一整個礦場在一夜之間變得一文不值;鑒於另一個採用工作量證明的主要加密貨幣網路,也就是比特幣,幾乎完全是用定制設計的晶片來開採的,所以所有這些舊的 GPU 都湧入到二手市場。對於NVIDIA來說,這是一段特別糟糕的時期,因為該公司之前為了滿足對 3000 系列晶片的需求而付出的努力正值收穫回報之際,疫情帶來的購買熱潮卻已經結束。不用說,太多的新庫存再加上太多的二手庫存使得公司的財務業績糟糕無比,尤其是NVIDIA還在打算為新系列清理通路:
上周在接受採訪時,NVIDIA首席執行長黃仁勳(Jensen Huang)坦誠,公司沒有預見到這一點:
我不覺得我們本可以預見到這一點。我不認為我會做什麼不一樣的事情,但我從之前的例子學到了一點,那就是一旦事情最終發生在你身上時,就唯有吞下苦果,然後放下……我們度過了兩個糟糕的財季,在公司的背景下,兩個糟糕的財季確實會讓所有投資者感到沮喪,讓所有員工感到艱難。
NVIDIA以前也遇到過這種情況。
出問題應對就是了,不要過度情緒化,瞭解問題是怎麼出來的,讓公司盡可能保持敏捷。但是一旦既成事實,你只能做出客觀、艱難的決定。我們照顧好我們的合作夥伴,我們照顧好我們的通路,我們確保每個人都有足夠的時間。我們推遲了 Ada 的發售,進而確保各方都有足夠的時間來對產品進行重新定價,這樣即便在 Ada 的背景下,即便 Ada 出來了,重新定價後的產品其實還是具備非常好的價值的。我認為我們已經把各方都儘量照顧到了,這導致了兩個相當糟糕的季度。但我認為從大局來看,我們很快就會回來的,所以我認為這也許是過去的教訓。
這個說法也許有點托大;今年早些時候,Tae Kim 與 Doug O'Laughlin 等分析師預測NVIDIA的股價會暴跌,儘管鑒於NVIDIA在疫情中期已經訂購了額外的一批 3000 系列 GPU,這些預測對於避開 PC 銷售放緩與以太坊(從工作量證明)過渡的完美風暴大概已經為時已晚(黃仁勳還指出,晶片的生產前置時間增加是NVIDIA錯得如此厲害的一個重要原因)。
對於NVIDIA來說,更令人擔憂的是,雖然庫存和以太坊問題是經歷了「相當糟糕的財季」的最大的驅動因素,但這還不是其遊戲業務正在經歷的唯一低谷。我想到了約翰‧班揚(John Bunyan)的《天路歷程》(Pilgrim’s Progress):
可是在屈辱谷裡,可憐的信徒可夠受了;因為他還沒有走多遠,就看見一個叫做魔王(Apollyon)的兇惡的敵人在田野裡迎面而來。
這個魔王叫做庫存問題;故事裡信徒打敗了魔王,NVIDIA最終也能戰勝庫存問題。
走完這個山谷,又是一個叫做死蔭谷的山谷;信徒必須要從這兒經過,因為到天國去的路就在它中間穿過。這山谷是個非常冷落的地方。先知耶利米對它這樣形容過:「一片曠野,一片沙漠有深坑之地,一片乾旱和死蔭之地,一片無人(除了信徒)經過、無人居住之地。」
上周NVIDIA關於 GTC 的主題演講令人震驚的是這個寓言在多大程度上契合NVIDIA的野心:該公司正在走上一段似乎相當孤獨的旅程,去定義遊戲的未來,現在還不清楚業界其他人會不會跟進或者什麼時候跟進。此外,該公司在資料中心以及元宇宙方面也在追求同樣大膽的戰略:在所有這三個方向上,NVIDIA要追求的高度比它在過去兩年裡達到的那些成就都要高,但路徑卻是出奇的不確定。
山谷中的遊戲:光線追蹤與人工智慧
長期以來,3D 遊戲的呈現都要靠一系列的技巧,尤其是照明方面的技巧。首先,遊戲決定了你能看到什麼(也就是算繪一個被其他物體遮擋的物體是無用功);然後,你得為物體(如一棵樹、一棵草或任何你能想像到的東西)應用合適的紋理。最後,你得從預先確定的光源位置去打光,然後再為物體添加陰影。最後再把整個場景轉換成一個個的畫素,算繪到 2D 螢幕上;這個過程叫做光柵化。
光線追蹤對光線的處理方式是完全不一樣的:光線追蹤不是用預先確定的光源來打光,應用陰影映射,而是從你的眼睛(或更準確地說,是你觀察場景的攝像鏡頭)開始。然後再追蹤目光所及的螢幕的每一個畫素,然後(基於畫素所代表的物件類型)對畫素進行折射處理,並繼續追蹤該光線,直到光線擊中光源(然後就進行光照處理),或者丟棄這條光線。這種處理能產生非常逼真的打光效果,尤其是反射和陰影效果。不妨看看下面這一來自《PC Magazine》 的圖片:
我們來看看光線追蹤是如何改善了遊戲的視覺效果的。我截取了 Square Enix 的《古墓奇兵:暗影》PC 版的幾張螢幕截圖,這款遊戲是支援Nvidia GeForce RTX 顯示卡的光線追蹤陰影效果的。可以仔細看看地面上的陰影。
[…]與效果更粗糙的光柵化版本相比,光線追蹤的陰影效果更加柔和、更為逼真。其暗度取決於被物體遮擋住的光量多寡,甚至陰影本身都有明暗之分,而光柵化似乎給每個物體都賦予了一個非常生硬的邊緣。光柵化的陰影效果看起來還不錯,但是在玩了帶有光線追蹤陰影效果的遊戲之後,就很難回去了。
NVIDIA是在 2009 年首次宣布 API 支援光線追蹤的;不過,使用這種技術的遊戲寥寥無幾,因為這種技術的運算成本很高(電影 CGI 倒是運用了光線追蹤技術;不過,那些場景算繪一般都需要數小時甚至數天的時間;可遊戲的算繪卻必須是即時進行的)。所以 2018 年NVIDIA才推出了引入了專用光線追蹤硬體的 GeForce 2000 系列顯示卡(所以才叫做「RTX」)。AMD 則走了另一條路,給其核心的著色器單元添加了光線追蹤功能(同時還進行光柵化處理);與NVIDIA的純硬體解決方案相比 AMD 的要慢一些,但能用,而且重要的是,由於 AMD 同時為 PS5 和 Xbox 製造顯示卡,這意味著現在整個行業都支援光線追蹤技術了。將來會有越來越多的遊戲支援光線追蹤,不過由於性能問題,大多數應用仍然相當受限。
不過,光線追蹤很重要一點在於:光照效果是動態運算出來的,而不是靠光線和陰影貼圖,所以開發者可以「免費」獲得光照效果。完全依賴光線追蹤技術的遊戲或 3D 環境開發起來應該更容易、更便宜;更重要的是,這意味著環境可以以開發者從未預料到的動態方式發生變化,而且與大多數靠手工費力預製的環境相比,其光照效果還更為逼真。
對於兩個新興的應用場景而言,這一點尤其吸引人:一是像《我的世界》(Minecraft)一樣的模擬遊戲 。有了光線追蹤技術,擁有高度詳盡的 3D 世界這個夢想會變得越來越接近現實,因為這些 3D 世界都是動態構建的,而且擁有完美的光照效果。未來的遊戲可以走得更遠:NVIDIA的主旨演講一開始就介紹了一款叫做 RacerX 的遊戲,包括物體在內,遊戲當中的每一個部分都進行了完整的模擬;遊戲內的物理特性也利用了相同類型的光照運算。
第二個場景是我在《DALL-E、元宇宙與零邊際成本內容》中討論過的 AI 產生內容的未來。我上面提到的所有紋理目前都是手工繪製的;隨著圖形功能(主要由NVIDIA推動)的增強,由於需要創作高解析度的資產,新遊戲的開發成本也會隨之增加。因此,可以想像,將來有可能資產完全是自動化創建出來的,而且是即時進行的,然後再透過光線追蹤技術賦予合適的光照效果。
不過,目前NVIDIA已經在用 AI 來算繪圖像了:該公司此次還發布了深度學習超級採樣(DLSS)技術的第 3 版。這項技術可以預測影格並進行預算繪處理,這意味著那些影格根本不需要運算(之前版本的 DLSS 需要對獨立畫素進行預測和預算繪)。此外,就像光線追蹤技術一樣,NVIDIA也採用了專用硬體,讓 DLSS 的性能更好。這些新做法搭配上NVIDIA GPU 的專用核心,令NVIDIA非常適合為遊戲與沉浸式 3D 體驗(如虛擬世界)建立全新的範例。
但問題是:所有這些專用硬體都要付出代價。 NVIDIA的新 GPU 是大晶片——頂級的 AD102,以 RTX 4090 的形式出售,這是一款完全整合的片上系統,採用台積電 N4 工藝,尺寸為 608.4 平方公釐;相比之下,AMD 即將推出的 RDNA 3 顯示卡系列內建的頂級晶片 Navi 31 晶片是小晶片(chiplet)設計,採用台積電 N5 工藝,尺寸為 308 平方公釐,加上採用台積電 N6 工藝的 6 顆 37.5 平方公釐的記憶體晶片。簡而言之, NVIDIA的晶片要大得多(這意味著更貴),而且它採用了稍微更現代的工藝流程(可能成本會更高)。 Dylan Patel 在 SemiAnalysis 上解釋了這種做法的潛在影響:
簡而言之,透過放棄 AI 和光線追蹤固定功能加速,轉而採用先進封裝的更小晶片,進而節省了大量晶片成本。 AMD 的 RDNA 3 N31 和 N32 GPU 的先進封裝成本顯著上升,但相對於晶圓和成品率成本來說,小型扇出 RDL 封裝仍然非常便宜。到頭來,與透過將記憶體控制器與無限的快取記憶體拆分、使用更便宜的 N6 而不是 N5 ,以及更高的產出所節省的成本相比,AMD 封裝成本的增加就不值一提了......在接近十年的時間裡,NVIDIA在傳統光柵化的遊戲性能方面第一次出現成本結構更糟的局面。
這就是NVIDIA正在走進的山谷。由於 4000 系列的高昂價格,在NVIDIA做完主旨演講之後,尤其是當NVIDIA的網站上的細則表明NVIDIA發布的其中一款二級晶片其實更類似於三級晶片換了個分身時,遊戲玩家們馬上開始竭力反對,他們懷疑NVIDIA是在玩行銷遊戲來掩蓋價格的大幅上漲。 Nvidia 的顯示卡性能也許是最好的,而且毫無疑問最適合未來的光線追蹤與 AI 產生內容,但代價是它無法為當今的遊戲提供最佳的價值。要達到純類比虛擬世界的高度,需要熬過一代的時間,對大多數遊戲玩家還不關心的功能進行收費。
在山谷中的人工智慧:是系統,而不是晶片
對NVIDIA在遊戲方面的做法持樂觀態度的原因之一,是該公司在發明著色器(shader)時已經對未來下了類似的賭注。我曾經在去年的 GTC 之後解釋過著色器:
NVIDIA先是憑藉 Riva 和 TNT 系列顯示卡(經過了寫死,可對類似微軟的 Direct3D 等 3D 庫進行加速)而聲名鵲起:
不過,GeForce 系列可以透過一種叫做「著色器」的電腦程式進行充分程式設計。這意味著哪怕是在製造出來之後,GeForce 卡也可以透過開發新的著色器(比方說用來支援新版本的 Direct3D)來加以改進。
[…]更重要的是,著色器不一定就得是算繪圖形;任何類型的軟體——理想情況下任何可以並行運行的簡單運算程式——都可以程式設計為著色器;訣竅是弄清楚如何寫這種程式,這就是 CUDA 的用武之地。我在 2020 年的那篇談NVIDIA的整合夢想的文章中解釋道:
這種抽象層次的增加意味著底層圖形處理單元可以更簡單,這意味著圖形晶片可以擁有更多的 GPU。比方說, NVIDIA剛剛發布的 GeForce RTX 30 系列最先進版本的核心數達到了令人難以置信的 10496 個。
這種程度的可擴充性對顯示卡來說很有意義,因為圖形處理完全是並行處理的:一塊螢幕可以分成任意數量的多個部分,每一部分均可同時獨立運算。這意味著性能可以水準擴充,也就是說,每增加一個核心都能提高性能。不過,事實證明,可以充分並行運算的運算類型並不只有圖形而已……
所以NVIDIA才從模組化的零件製造商變成了軟硬體整合製造商。模組化零件是指它的顯示卡,而軟硬體整合是指它的 CUDA(統一運算設備架構)的平臺。 CUDA 平臺可以讓程式設計師透過多種語言存取NVIDIA顯示卡的並行處理能力,但又不需要瞭解如何對圖形進行程式設計。
現在 Nvidia 「技術棧」有三個層級:
這大部分是出於絕望。 去年春天,黃仁勳在接受我們採訪時解釋到,在他看來對公司未來至關重要的著色器的引入,幾乎殺死了這家公司:
可程式化性的缺點是效率要差一些。正如我之前所提到的那樣,功能固定的東西效率更高。任何東西只要是可程式化的,任何光看定義可以做不止一件事情的東西,對於完成任何特定任務來說都會帶來不必要的負擔,所以這裡的問題是「我們該什麼時候做這件事(讓自己的東西可程式化)?」當時給我們啟發的一點是,一切看起來都像 OpenGL 的飛行模擬(OpenGL Flight Simulator)。一切都可以看成是模糊紋理和三線性插值細化紋理,一切東西都沒有生命,但我們覺得,如果不賦予媒介生命的話,就沒法讓藝術家創造出不一樣的遊戲,不一樣的流派,講述不一樣的故事,而最終媒介也將不復存在。與此同時,我們也希望做出一個更加可程式化的調色板,讓遊戲和藝術家可以用它做一些很棒的事情,我們受到了這種野心的驅使。還有一個動機也在敦促我們做這件事,那就是有朝一日就算顯示卡被商品化了我們也不會倒閉。所以當這些考量到了一定程度,我們就開始做可程式化的著色器,所以我認為要這樣做的動機是非常明確的。但後來我們受到的懲罰是我們沒想到的。
什麼樣的懲罰?
這個懲罰來得太突然,所有我們對可程式化性的預期,所有我們為將來所做的,在一切不必要功能方面的開銷,這些都是懲罰,因為當前的應用並不能從中收穫好處。除非出來新的應用,否則的話,我們的晶片會顯得太貴,而現在的市場競爭非常激烈。
NVIDIA之所以能活下來,是因為他們的直接加速能力仍然是最好的。從長遠來看,NVIDIA仍將蓬勃發展,因為他們為了利用著色器而開發了一整個 CUDA 基礎設施。這就是資料中心增長的來源;黃仁勳解釋道:
從你成為一家處理器公司的那一天起,你就必須內化這一點:這個處理器架構是全新的。以前從未出現過像這樣的可程式化畫素著色器,或者這樣的可程式化 GPU 處理器,以及這樣的程式設計模型,因此我們得內化這個。你必須內化這是一種全新的程式設計模型,而且與成為一家程式處理器公司或一家運算平臺公司相關的一切你都得做出來。所以我們必須建立一支編譯器團隊,我們必須考慮做出 SDK,必須考慮建立自己的庫,也必須與開發者接觸,宣傳我們的架構,並幫助人們實現它的好處,如果不行的話,甚至你得自己開發新的庫,讓人們可以輕鬆地將自己的應用移植到我們的庫,然後看到它的好處。
這個故事之所以要再講一遍,第一個原因是要指出著色器複雜性的成本與當前遊戲的光線追蹤和人工智慧的成本之間的相似之處;二是要大家注意這一點,NVIDIA解決問題的方法一直都是自己把所有的事情都幹了。在那時候,它意味著要開發出 CUDA 來對這些著色器進行程式設計;而在今天,這意味著要為人工智慧開發出整套系統。
黃仁勳在上周的主旨演講中談到:
NVIDIA致力於透過加速運算來推動科學與工業發展。無需做加速運算即可取得更好性能的時代已經結束了。使用沒有加速支援的軟體,只能花費高昂成本來彌補其性能與擴充性的不足。近 30 年來NVIDIA始終專注於這一領域, 作為加速軟體與擴充運算的專家,NVIDIA提供了百萬倍的加速,遠超摩爾定律。
加速運算是一項全棧挑戰。需要對問題領域有深入瞭解,並對運算的每一個層次以及 CPU、GPU 與 DPU 這三種晶片進行優化。跨多 GPU 多節點擴充是資料中心規模所面臨的挑戰,要將網路和儲存與運算資源統一調配,從 PC 到超級運算中心和企業資料中心,從雲端到邊緣,開發者和客戶希望能在許多地方跑自己的軟體。不同的應用希望在不同的位置以不同的方式運行。
今天,我們將著眼於全棧來討論加速運算。我們將介紹新的晶片,並闡述其如何用有限的電晶體釋放更多的性能,我會介紹新的庫,以及這些庫如何加速科學和工業領域的關鍵任務,還有特定領域專用的新框架,有助於開發性能更高且易於部署的軟體。以及新平臺,它可以讓你安全、安心地部署軟體,並獲得數量級的提升。
在黃仁勳看來,光是有速度很快的晶片已不足以應對未來的工作負載:這就是NVIDIA要用上自己的所有設備來建設整個資料中心的原因。不過,再一次地,在一個每家公司都需要加速運算的未來裡,NVIDIA專門為他們打造的資料中心——NVIDIA的天國之城(Celestial City)——卻與現狀形成鮮明對比,因為現在的資料中心裡面,NVIDIA晶片的最大使用者是那些自己的系統已經就位的大型玩家(hyperscalers)。
比方說,像 Meta 這樣的公司就不需要NVIDIA的網路;他們發明了自己的。這些公司確實需要大量可大規模並行化的晶片來訓練自己的機器學習演算法,這意味著他們必須給NVIDIA交錢,貢獻其高額利潤。也就難怪 Meta 和之前的Google一樣,正在開發自己的晶片。
這就是所有大公司都可能要走的一個過程:他們不需要NVIDIA的系統,他們需要的是可以滿足他們的要求,跑他們的系統的晶片。這就是為什麼NVIDIA會如此賣力地投入到人工智慧和加速運算的大眾化的原因:從長期看,規模化的關鍵在於為除了最大玩家之外的所有人開發系統。穿越山谷的訣竅在於,在NVIDIA目前的大客戶停止購買NVIDIA昂貴的晶片之前,就能看到該生態體系的發展。 黃仁勳曾經預見到 3D 加速器將會被商品化,於是用著色器來實現跨越;你會感覺到他對晶片也有同樣的恐懼,所以現在正在躍進到做起系統來。
在山谷中的元宇宙: Omniverse Nucleus
在去年春天的採訪中,我曾問黃仁勳NVIDIA會不會自己做雲端服務;
如果我們要做服務的話,除了我們自己做的東西以外(如果必須自己做的話),這個服務還會運行在世界各地的 GPU 上,跑在每個雲端上面。我們公司制定的其中一條規則是不浪費公司的資源去做已經有的東西。如果某個東西已經存在,比方說 x86 CPU 這樣的東西,我們會直接用。或者如果某個東西已經有了,我們會選擇與其合作,因為我們不想把自己稀缺的資源浪費在那上面。所以,如果雲端已經有了某個東西了,我們絕對只會用那個東西,或者讓那個東西去做就行了,這樣會更好。但是,如果做有些東西對我們來說行得通,但對他們沒有意義的話,我們會找他們去做;如果其他人不想做,那麼我們可能會決定自己去做。對於要做什麼我們是很有選擇性的,但對於其他人已經做過的,我們態度非常堅決,那就是不做。
事實證明,有個東西是沒有其他人想做的,那就是為 3D 物件建立一個通用的資料庫,這個資料庫的用處是NVIDIA所謂的 Omniverse。這些物件可以是用於製造業或供應鏈的超級詳細的公釐精度等級物件,也可以是為虛擬世界產生的奇幻物件和建築物;按照黃仁勳的設想,任何在 Omniverse Nucleus 上做開發的人都可以使用這些物件。
此處的天國之城是一個跨行業和娛樂可用的 3D 體驗世界——如果你願意的話,可稱之為元宇宙的 Omniverse,它們全都連接上NVIDIA的雲端服務——且其雄心壯志足以讓祖克伯感到臉紅!出於同樣的原因,這座山谷似乎更加漫長,更加黑暗:你不僅需要創建所有這些資產以及 3D 體驗,而且需要讓整個市場相信其實用性和必要性。為一個尚不存在的世界建設一個雲端服務,就是為了攀上目前仍然看不見的高度。
黃仁勳與NVIDIA的雄心壯志之大是毫無疑問的了,儘管有些人可能會質疑同時穿越三座山谷的智慧如何;除了那場遊戲業的完美風暴以外,他們的股票本身仍走不出山谷也許也是合理的。
不過,值得考慮的是, NVIDIA客戶(無論是消費者客戶還是企業客戶)對公司感到沮喪的首要原因是價格:NVIDIA的 GPU 價格昂貴,而且公司的利潤(除了最近幾個季度以外)非常高。不過,就NVIDIA的情況而言,其定價權直接來自NVIDIA自己的創新,這既體現在既定工作負載的絕對性能方面,也體現在其對 CUDA 生態體系的投資、為全新的工作負載創造出來的工具上。
換句話說,因為過去承擔了自己現在正在著手的事情的那種風險,NVIDIA已經贏得了被憎恨的權利。舉個例子,假設未來對所有遊戲的期望不僅僅是要能光線追蹤,而且要對所有粒子進行全方位的模擬:NVIDIA在硬體上的投資將意味著它會像光柵化時代一樣主宰那個時代。同樣地,如果 AI 應用被大眾化,而且可供所有企業使用,而不只是超大規模的企業能用的話,那麼NVIDIA的價值定位將是掌握整個長尾。再者,如果我們進入了元宇宙的世界的話,那麼NVIDIA不僅在基礎設施方面有領先優勢,而且在讓那個世界成為現實所必需的基本物件程式庫方面也有領先優勢(當然了,這些物件將在 AI 產生的空間裡利用光線追蹤點亮),進而讓NVIDIA成為該領域最重要的基礎設施。
這些賭注未必全都能獲得回報;不過,我確實欣賞這個願景之大膽,如果NVIDIA將來得以穿過山谷,到達天國之城,進而獲得可觀利潤的話,我也不會嫉妒的。
請注意!留言要自負法律責任,相關案例層出不窮,請慎重發文!