2024年6月10日 星期一

洪士灝 漫談科技創新 Nvidia 兼談

 漫談科技創新,兼談NVIDIA和國內產業的創新

(文長慎入)


創新(Innovation)不一定要透過或發明(Invention ),雖然新發明可以用於創新,但這些是不同的概念,不應混為一談[1]。在AI時代,創新、發明、多層次的思考能力,我想會越來越重要,也會是教育文化的重點。


我們很多做過實務工程技術研發的人都知道,著眼點多半在於解決問題,如果問題可以迎刃而解,早點可以回家睡覺或是玩樂不好嗎?有時候是不得已而創新,但創新不是發明,比別人更早想到四十年多前的老方法可以輾轉用以解決新問題,也是一種創新。就像幾年前的GPU、TPU和NPU,都用了四十年多前發明的Systolic Array,只是整合到硬體上用來加速神經網路、取了新名字而已。


以解決問題為己任的工程師或專業工作者,大概不會像鑽牛角尖的學者或研究員那樣,把創新和發明當成興趣或工作的重點,我個人覺得兩種心態都有其利弊得失,最怕的就是固執一種心態,像有人形容的專家那樣,像個手拿鐵鎚的人,看什麼都像釘子,只會用一套方法應付。


所以我又想當工程師享受解決問題的樂趣,又想當學者看看能否變出一些新花樣,這樣的我可能在某些人眼中,是半吊子的工程師,或是半吊子的學者。沒辦法,我不是天才,但我覺得一半的工程師加上一半的學者,也有其可取之處,當然80-20、20-80或其他的比例也可以,這是多元的時代,而且有AI的加入後還會更多元,或許會變成1/3的工程師、1/3的學者、1/3的AI助理的監護人。


我平常還是以工程師的心態去關注新科技發展以及賞析新科技產品,這算是從小就持續到現在的樂趣。明明知道Apple Vision Pro的生態系還不成熟,有諸多缺點,也不太能直接拿來做計畫中的研究,但我(心裡頭的內在小孩)就是想找機會仔細把玩它,細細品味它的創新性與實際應用的關聯性和限制。這點是實務創新的關鍵,在稍後也會提到。


因為有限制,才會想方法改進,那就有機會連結到創新,這就是以學者出場的時機。研究有哪些已知的解決方法,想想有哪些新方法,有時候在創新的過程中福至心靈想出了能解決問題的新發明,而不是在象牙塔裡鑽牛角尖。無論是創新或發明,值得分享的就拿出去發表,分享給同好,有商業價值的就申請專利,為後續的產學合作奠基。


我鼓勵大家多創新,但創新並不容易,過度勉強為之倒是會出現一些反效果的。我認為,從小鼓勵學子們求新求變,從文化上塑造創新的風氣,是從根本上鼓勵創新該做的事,如果到了大學才開始辦一些活動去鼓勵創新,對那些思想上被制約了多年的學生恐怕已經為時已晚,雖說亡羊補牢,但趕鴨子上架的結果可想而知,一則效果有限,二則急功近利,有時反而不切實際。


發明的門檻通常更高,因此我覺得要求一路讀書考試拼到研究所的學生在短短的碩士班期間發表學術論文,真的是不大務實的作法。坦白說,要求大學教授帶著如此的碩士班學生設法做出世界級的創新和發明,也是相當浪漫的情操。在這種情況下,國內學界竟然能端出像全民健保一樣高性價比普惠國民的高等教育,實在是世界少見的成就,應該也像台積電一樣,難以在其他國家複製。


如前所述,想身兼工程師與學者的我,對於研究生的訓練自然會比較偏重於實務性的創新和發明,沒想要為發明而發明,在十多年之前這樣的心態原本很難在學術圈健全發展的,但好歹我也多少以實例證明了在台灣的學術界原來也有一塊不小的天地,可以讓我這種跨界的人耕作,讓成果被外界看到,只是需要耐心和時間而已。


雖然維基百科和創新學的專家說[1]:「創新具有某種不可預見性。科技創新是各創新主體、各創新要素交互作用下的一種複雜湧現現象,是技術進步與應用創新所構成的創新雙螺旋共同演進的產物。」把創新講得很神奇,但我得直白說清楚,教導創新、實踐創新、新創事業是差異極大的三件事。尤其是新創事業(Startup),不一定要靠創新,也不是創新者的目標,但路人有時會因為文字而被混淆。


我個人認爲,創新是一種文化,也是一種才能和專業。文化可以提倡和培養,但才能和專業必須從小啟發和訓練有方,所以我前面才說,到了大學才去學創新,恐怕為時已晚。對具備創新才能和專業的人來說,雖然不見得能預見,不易步步按計劃進行,但有靈敏的直覺和足夠的自信,能隨時面對複雜的議題加以考量和評估,能夠大幅提升創新的機會。


岔個題,說有句跟這個相關的話,出自於《易經.繫辭上》,可以參考一下:「化而裁之存乎變,推而行之存乎通。神而明之,存乎其人。」變通和創新的道理其實很像,能否明白變通的道理,在於個人的修養。要類比於現代教育的話,創新和發明也是博士(Ph.D.)的思維哲學訓練的重要元素,絕對不是死讀書就行的,我後面會再談談如何訓練。


話說上述維基百科的引句中用了「創新雙螺旋」一詞,用來形容在創新的過程中技術和應用必須共同演進才好,我覺得還頗有即視感的。實際上,這個現象在資訊科技領域比比皆是,已經持續了不只半世紀。例如我常說的軟硬體協同設計,基本上也是軟體和硬體的交互作用和共同演進。近幾年來,不止AI本身的創新雙螺旋,軟體和硬體,旋轉得越來越快速,AI作為技術,和各行各業的應用形成形形色色的雙螺旋,都是創新的機會。


然而要引領技術和應用的共同演進,單純了解技術,或者只是熟悉應用,都是不夠的,必須對技術和應用的交互作用有深入的瞭解,而且在每個膠著之處找到關鍵問題並加以改進,才會產生有意義、高價值的創新。


想找個實際例子來談所謂的技術和應用的交互作用,下意識就想到NVIDIA。但我先說,我沒想過度推崇黃總裁,因為NVIDIA的成功不是他一個人成就,甚至不是NVIDIA自己所能夠預見的,但我相信黃總裁和NVIDIA內部有不少具備創新才能的人,有這樣的人和為基礎,加上天時地利,以至於有今天的成功。


舉實際應用與技術來說明最直接了當,我從17年前就開始用GPU技術加速各種應用,一路下來看到NVIDIA對新興應用的關切、積極支持軟體開發、率先加入應用軟體所需的硬體機能,這些形成了創新雙螺旋的演進,過程中包括了:


- 有不少人設法用GPU加速非圖像的計算,於是從僅支援繪圖的GPU演進成支援CUDA程式設計的GPGPU。


- 看到高效能運算的潛力時,結合高速網卡推出讓多台機器上GPU互傳的GPUDirect、後來還併購了Mellanox。


- 察覺CNN潛力時推出優化的CuDNN程式庫和以NVLink連結多GPU的DGX主機。


- 觀察到神經網路都是矩陣運算就把基於systolic array的Tensor Cores加到高階GPU上。


- 當開發LLM的用戶回饋說要更大更快的記憶體時就領先提供大記憶體的高貴選項,打出買越多省越多的口號 🙂


這些從應用和技術交互作用的創新機會,讓NVIDIA不斷堆疊技術、擴展生態系,我想Intel、AMD還有其他大公司也都有機會看得到,也都有能力做,問題是這些大公司沒有全力以赴,因為不做也不會危及這些大公司的主要財源。偏偏這些都不是小公司有足夠資源、願意冒風險去做的項目,否則現在NVIDIA也不會紅成這樣。


大公司缺乏危機意識,小公司缺乏資源,而NVIDIA佔了GPU已經有大量遊戲玩家需求的地利之便,加上公司主動與各界交流互動打造出生態系、持續關注新興應用與技術創新的人和,自然在AI的天時到來前做好了充分的準備,這是我看待NVIDIA成功之道的角度。


當然NVIDIA也不是百戰百勝,新技術不見得一定有用,一時的創新失敗乃兵家常事,但只要符合趨勢,失敗可能就是將來的成功之母。科技的進步有快有慢,但技術大多是演化(evolution),科學新突破到技術實用化通常有段時間,因此最好是就近關注科技的脈動和趨勢。NVIDIA願意多與研發前瞻應用的客戶交流,在賣產品給他們的同時,會去瞭解應用情境,看到有潛力的應用就及早佈局。前面說過的GPGPU、CNN、LLM都是如此,這幾年看到元宇宙和量子電腦有可能紅,NVIDIA也很快地推出軟體支援。


講個NVIDIA失敗的創新產品來平衡一下,附圖的DGX-2就是商業上失敗之作。當年DGX-1獲得極佳的商業成功,NVIDIA推出一台16個GPU的DGX-2趁勝追擊,如圖上說是設計來做到之前不可能做(impossible )的訓練。有業界朋友問我,這台會大賣嗎?我說,這台要賣給誰啊?有哪些訓練真的不可能用DGX-1做到?這一台比兩台DGX-1還貴不少,為什麼不買兩台DGX-1呢?有哪些應用真的會受惠於16個GPU的NVSwitch呢?坦白說,少得可憐,因為當年的神經網路偏小,分散式訓練所需的AllReduce運算用DGX-1v的NVLink連結就堪用了,不必用到貴森森的NVSwitch。(這些商場上的虛虛實實,一不注意就被唬弄了,不過這一台要一千好幾百萬元台幣的定價,要被唬弄的也得有錢才行。合作開發的系統廠商要投入研發成本,要仔細評估市場再決定要不要跟。)


但NVIDIA很懂得在商業上運用策略來分攤風險或是攤提投下的成本。這陣子陪黃總裁吃飯的國內業者,知道分攤風險是什麼意思。後來NVIDIA推出下一代8-GPU DGX-A100乾脆只給內建NVSwitch的版本,把成本轉嫁給所有客戶,反正一堆人搶著買,也沒有其他選擇。NVIDIA的商業策略,黃總的刀法之精湛,協力的台廠和遊戲顯卡的用戶都很清楚,不用我多說,但這些操作的背後,是基於對實際需求的掌握以及與競爭對手的差距,還是源自於創新雙螺旋。


但接下來呢?當其他先前錯失良機的大公司也認真要來做了,會如何發展呢?我想,所有的護城河只能抵擋一段時間,NVIDIA唯有持續創新,才能維持領先地位。但我個人私心樂見競爭白熱化,高階AI晶片的價格大幅下降,也希望AI的技術不被少數人把持,能讓更多人參與。大家最近在COMPUTEX看到了,Intel的Gaudi 3晶片,宣稱比H100快,8個一套的定價USD 125K還不到8x H100市價的一半。NVIDIA要拿什麼來回應呢?


我想,除了固守城池,繼續把GPU做得更強大之外,NVIDIA也會試圖擴大版圖,和ARM並肩作戰一起佔領長久以來歸於x86 CPU的屬地,把ARM部署在高速網卡上來鎮守交通要道,讓資料可以在NVIDIA整合的平台上更順利地從各處送到GPU。


把GPU做得更強大,大概還是得靠TSMC的製程。最新進的製程不便宜,但科技巨擘們每每一出手就買幾十萬個H100,NVIDIA當然出得起,但其他的競爭對手出得起嗎? Intel靠自己,AMD也靠TSMC,其他研發高效能AI加速器的多半還是得要靠TSMC,不過要找到大金主才行,所以沒事都跑到中東。鷸蚌相爭,漁翁得利,無論誰贏,TSMC都是贏家。


說到TSMC,我要持平地講,高科技創新門檻的代工業者,和採用既有技術做低技術門檻的客製化代工,差距很大,不應該混為一談。雖然TSMC的成功的背後,牽涉到國內一流人才的運用,犧牲了其他產業發展的機會,我也曾從人才培育和職涯發展的角度評論過TSMC,但若是從戰場和戰略的角度看,只要作為合於情理法,有隨著時代在進步,就沒必要多管閒事,而公司的運作和前景如此美好,政府也不必錦上添花。


回來繼續講NVIDIA和ARM的並肩作戰,但這不是老話題了嗎?幾年前NVIDIA就想買ARM,而ARM幾年前就想搶佔PC和伺服器市場,一直都沒有成功。這次的天時、地利、人和都在,趁著AI氣勢正旺,x86陣營分兵來攻但搶佔不下來的期間,聯合新盟友MediaTek和敵人的敵人Qualcomm,在Microsoft挺身支持ARM的時刻,進擊過往打不進去的低階PC和手機市場,同時也以最新的GH/GB系列CPU/GPU整合系統晶片直接進入伺服器,侵佔x86陣營的腹地。多條戰線同時進行,好不熱鬧,同樣地,我希望漁翁得利的會是台灣的廠商們。


關於AI PC的議題,我最近講過一部分了,市場有虛有實,但若是志在打擊x86陣營,NVIDIA不必親自出手,和MediaTek聯手是個好方法。NVIDIA和ARM真正想要的是高階商用伺服器市場,正是x86晶片最豐厚利潤的地盤。但上百核心、標榜高效省電的ARM伺服器好幾年前就有了,卻一直吸引不了客戶,NVIDIA又能如何?


迄今大數據的運算一直就是GPU的痛腳,因為GPU的記憶體容量較小,又必須透過CPU的協助和PCIe介面的傳輸,才能存取檔案資料,如此一來一則增加系統的負擔(overhead)往往大到不划算,一則受限於PCIe的頻寬。我記得十多年前NVIDIA的技術長Bill Dally來訪台大,被我問到這個問題時也沒有正面回答。幾年前NVIDIA推出了DirectStorage和BlueField DPU,但還是沒有很好用,主要都是卡在x86陣營把持的PCIe介面。不樂見GPU坐大的Intel,即便PCIe Gen 4早在2011年就制訂出來[2],卻一直沿用PCIe Gen 3到2020年,倒是NVIDIA聯合了AMD在Intel之前推出了採用Gen 4的DGX-A100。


其實我對於Intel在過去幾次以類似手法刻意阻擋對手的老大霸道心態頗為反感,一則讓科技進步停滯,一則揭示了幕後的心虛。有興趣的人可以去看看制定PCIe標準的PCI SIG組織[3]有哪些會員,大部分都是必須跟著CPU廠商玩的下游廠商,只能聽老大的話,所以我覺得Intel沒什麼資格講NVIDIA採用封閉的規格壟斷市場,因為Intel才是那個實質上長期壟斷市場的公司。


早在2022年初就公開的GH100 [4],後來實際上在2023年底以GH200為名陸續出現在TOP 500超級電腦排行榜,半年間就拿下前百名的5個席次,高居目前第6、11、17名[5],可見得實力不容小覷。對超級電腦的用戶而言,過去對GPU缺乏興趣的理由,和做大數據分析的用戶類似,不願接受GPU的記憶體偏小和無法直接存取檔案資料的缺點,如今的GH200使用NVLink連接NVIDIA自研的"Grace" ARM CPU和Hopper GPU,解開了被x86體系限制多年的資料通道,已經成功吸引了超級電腦的用戶。


至於能不能讓GPU加速更多AI之外的資料中心應用呢?一般來說,相較於以計算為主的超級電腦,大數據分析的計算密度(arithmetic intensity,計算量/資料存取量)偏低,但是當CPU-GPU之間的傳輸速率(900GB/s)跟CPU本身的記憶體頻寬差不多的時候,要讓GPU參與注重吞吐量(throughput)的應用的基本盤就高了。君不見,NVIDIA談GB200的部落格已經開始推大數據分析了[6]。


話說幾年前IBM Power9 CPU已經用NVLink連接過NVIDIA V100 GPU,打造初曾經在2018-2020排名第一的Summit超級電腦,標榜的就是一台超級電腦可以支持物理模擬、大數據分析、AI這個科學發展的三支柱。只是Power9當年已經不在主流市場的考量,NVIDIA也還在成長期,立意雖佳,但結果和DGX-2類似,都不是商業上成功的產品。時間放長一點看,NVIDIA受惠IBM幫忙繳學費所得的經驗,只要創新是足夠務實的,即使產品因為某些原因而沒有成功,但所獲得的經驗將來還是有派上用場的機會。


人家累積的經驗可以派上用場,我們呢?


一方面,我希望台灣的科技公司們在創新上更積極些。我肯定科技業的前輩們長久以來的努力,把台灣的經濟和產業發展的今天的地步,然而在科技的層次上,我們並沒有某些媒體上自嗨的那麼厲害,也沒有某些酸民講的只能做代工那麼難堪。我想本土產業其實有很多創新的部分,只是層次和範圍有限,也很少被公開強調。


為什麼只能長期幫人代工?我在十多年前問這個問題時,與現在的情況已經有所不同。低門檻的代工,出走到人力更低廉的地方,留在國內的產業,面對國外業者來台灣設研發中心、高階人才出走等問題,自然得要轉型提升,否則得自然淘汰。因此,我從來沒有反對代工,我只是不希望代工業者長期倚賴低廉的勞工和政府的補助,希望他們趁早轉型、找機會創新而已。我想,政府應該支持科技產業轉型提升,但要確實衡量業者在科技創新上的企圖心,除非業者願意長期投資在創新,否則不必錦上添花。


本文一開始就說,創新大部分是為了解決問題,因此轉型提升的關鍵在於找對方向和問題,接下來是人才培育和訓練的事情。


以陪NVIDIA黃總裁吃飯的系統業者為例,天天幫人家製造高單價的伺服器出貨給客戶,會不會好奇客戶用這些設備做什麼好事?如何使用這些設備?如何幫客戶分憂解勞?


如果能跟大客戶密切合作,能否幫忙解決疑難雜症,在軟硬體規格上洞燭機先,自然提高拿到大訂單的機會。但是要跟大客戶密切合作到什麼程度,不只要願意拿出資源,還取決於系統業者有什麼格局的人才。我認為人才並非不足,只是在位的主管們有多大的氣度來啟用人才。這是我最不想談的人事文化的問題,因為談了也無濟於事。


我知道MediaTek在服務大客戶這方面做得非常好,不過他謹守晶片廠的本份,不大敢逾越去做系統與客戶競爭。我私心期待MediaTek跟NVIDIA聯手做PC晶片,搭配國內業者,為PC系統產業注入一些新活力。


對中小型的伺服器客戶來說,高階AI伺服器的應用和技術越來越複雜,是個難題。大客戶可以砸大錢的雇用厲害的專家團隊來規劃、管理和優化這些傳統IT人員不熟悉的叢集,但中小型的客戶想擁有自有雲該怎麼辦?對此,HPE猛打名為GreenLake的混合雲(hybrid cloud),幫傳統IT人員解套。其實,這些機器上大多數的系統軟體都是公版或開源的,本土的系統大廠對硬體技術和系統韌體也都很熟,建立系統規劃與代管團隊來為中小型客戶提供加值服務,讓系統更容易賣給這些客戶,也是可以思考的策略。


創新的策略很多,在此無法一一敘述。但我必須指出,沒有一個是掛保證成功的策略,高報酬伴隨著高風險,是科技創新的本質。我只能說,務實創新,找一些可以從既有的利基為出發點去挑戰的難題,過程中積極思考如何運用人才,而非低階代工時期的運用人力。除非創新只是口頭上說說而已,或者主管沒有氣度,不然人才絕對是科技公司想要的。但國內公司在招募人才上往往有兩大長久以來的問題,第一個是給不出具競爭力的薪資待遇,第二個是在創新作為上偏向保守、範圍過於侷限。因此導致吸引不到人才,我也愛莫能助。


對了,發展AI應用,也是一個值得鼓勵的方向。不過這些年業界和學界一大堆人學習AI、發展AI應用,應該不需要我來鼓勵吧?我倒是想提醒大家,AI應用發展的門檻恐怕比一些人想像得高出一大截,如果只是單調地把AI套用在某個問題上,沒有創新之處,而且大家都知道可以這麼做,那麼這件事的價值何在?這個議題很大也很重要,後續再為文探討。


講實務創新,矛頭也得指回學校。我覺得在政府廣設大學之前的時代,有不少優秀學子就讀專科技職學校,憑藉著對實務和技術的瞭解,對業界的創新功不可沒。但後來廣設大學,加上以學術研究的標準去要求技職校院,再加上學歷膨脹到碩士成為入科技業的標配,學生要如何在進入職場之前有實務創新的經驗呢?難道業界不希望如此嗎?


我想這主要還是因為國內廠商對於創新的看法和國外不同。在國外,大多數科技公司內部具備中短程計畫的研發能力,贊助學界的計畫偏向於前瞻(公司中短期還用不到的)研究;但國內很多公司的研發能力十分有限,跑來大學談合作的目的是把中短期想獲得的技術外包給學校做。


知道這些問題的人不在少數,但誰來改變這種長期以來的研發文化呢?我這些年來試圖跟國內廠商各進(讓)一步,一方面合作廠商的主管要頂得住股東的壓力,一方面學校研究團隊則要實際動手參與,大家共同規劃出中長期的研發方向。


我的實際經驗顯示,這樣的合作模式的確可行,但一開始是吃力不討好的。因為廠商看不到短期的利益,學生看不到長期的收穫,有的會開始懷疑。然而,當廠商明智或有幸度過懷疑期而明白,中期程的研發計畫是對公司未來發展的投資,那就順利了。


前面提過,我對於研究生的訓練比較偏重於實務性的創新和發明,但通常學生也得度過一段懷疑期,才會明白實務性研究不是讀書考試,並非吸收些許知識之後就能創新或發明。我不是大師,對於創新的體驗和領悟,我只能讓學生透過實際參與去意會,必要時加以指導,沒辦法說道理言傳的。


這篇也是如此,寫了大篇幅,但還有很多沒寫的、無法言傳的,有空再聊。比起過往,我想現在台灣的環境和世界的局勢,對有能力且有志於科技創新的朋友們更加有利友善,一起加油吧!


--


[1] 維基百科:創新通常是透過開發更有效能的產品、流程、服務、技術、藝術作品或創新者向市場、政府和社會提供的商業模式來實現的。創新與發明有關,但不相同:創新更傾向於涉及發明的實際實施,以對市場或社會產生有意義的影響,而且並非所有創新都需要新發明。


[2] https://en.wikipedia.org/wiki/PCI_Express


[3] https://pcisig.com/membership/member-companies


[4] https://wccftech.com/nvidia-hopper-gh100-gpu-official-5nm-process-worlds-fastest-hpc-chip-80-billion-transistors-hbm3-memory/


[5] https://www.nextplatform.com/2024/05/15/top500-supers-nvidia-utterly-dominates-those-shiny-new-machines/


[6] https://developer.nvidia.com/blog/nvidia-gb200-nvl72-delivers-trillion-parameter-llm-training-and-real-time-inference/

沒有留言: