任何事物一旦進(jìn)入泡沫期,就不免讓人擔(dān)心什?時候會崩盤,而當(dāng)下的 AI 芯片已經(jīng)進(jìn)入公認(rèn)的泡沫期。
從 ASPLOS'14 上寒武紀(jì)的 DianNao,到當(dāng)下 Google 的 TPUv3,AI 芯片只花了五年時間就取得了巨大的成功。搭上 AI 算力爆發(fā)的快車道,叫嚷著摩爾定律終結(jié),Domain Specific Architecture(領(lǐng)域定制架構(gòu)) 似乎成了Ψ一的出·。
可是當(dāng)無數(shù)的巨頭和初創(chuàng)公司設(shè)計出一塊又一塊大同小異的 AI 芯片,我們需要回答這樣一個問題:真的需要這?多 AI 芯片嗎?
軟件復(fù)雜度
AI 芯片的快速發(fā)展,其中一個回避不了的問題就是軟件復(fù)雜度的指數(shù)級提升。很多公司花了兩年甚至更短的時間做出一款芯片,卻發(fā)現(xiàn)需要更長的時間支持繁多的框架、緊跟算法的進(jìn)步,適配從手機(jī)到數(shù)據(jù)中心的各類平臺。當(dāng)錯過了部署和量產(chǎn)的窗口期,即便做出了芯片也會很快落伍。
與設(shè)計通用架構(gòu)不同,設(shè)計 AI 芯片這樣的專用架構(gòu)需要同時考慮到軟件的設(shè)計和優(yōu)化。芯片公司往往樂觀估計了軟件適配和優(yōu)化的成本,指望通過中間件和編譯器來解決所有問題。事實(shí)上,從 Intel 到 Google 再到 Nvidia,大量的軟件工程師正被投入到適配各種平臺,手動優(yōu)化網(wǎng)絡(luò)性能當(dāng)中。而對于初創(chuàng)公司,芯片早已 tapeout 卻一再延期交付的問題比比皆是。
從本質(zhì)來看,當(dāng)我們開始不斷挖掘芯片架構(gòu)的潛力時,軟件層的抽象也會變的越來越困難,因?yàn)槠洳坏貌辉谏蠈映橄笾幸氲讓拥募軜?gòu)的模型或參數(shù)?,F(xiàn)在的通常做法是做底層芯片架構(gòu)與上層軟件之間的中間件,然而開發(fā)這些中間件的代價也往往被低估。前段時間某芯片初創(chuàng)公司的同學(xué)咨詢我,開發(fā)一套類似 TensorRT 這樣的 Inference 中間件需要多少人力和多長時間?這并不是一個容易回答的問題,于是我反問他們有多少資源可以做這個項(xiàng)目。
令人意外的是,他的老板只給了三四個人頭,因?yàn)樗麄兗僭O(shè)自己已經(jīng)有了一套底層的編譯器和一套上層的模型轉(zhuǎn)換工具,于是這樣一個用于架構(gòu)抽象的中間件并不需要太大力氣。我猜這樣的投入應(yīng)該可以做出一個功能完好的產(chǎn)品,但我不相信最終的產(chǎn)品在實(shí)際應(yīng)用中可以達(dá)到理想的性能指標(biāo),畢竟做芯片并不只是用來跑 ResNet-50 這樣的 Benchmark。
碎片化
只需要編寫一套代碼即可運(yùn)行在不同平臺,是軟件工程師們的長久訴求。不同架構(gòu)的 AI 芯片帶來的碎片化會極大的打擊他們在實(shí)際軟件產(chǎn)品中應(yīng)用 AI 的積極性。與以往的經(jīng)驗(yàn)不同,深度學(xué)習(xí)糟糕的解釋性會帶來許多意想不到的缺陷。比如這樣一個常見的困擾,一個私有的模型可以在本地 CPU 上得到滿意的結(jié)果,然而卻在部署到某款設(shè)備后性能大幅下降。如何調(diào)試這些問題,誰來負(fù)責(zé)調(diào)試,通過怎樣的工具來調(diào)試,甚至調(diào)試的工程師能否拿到私有的模型?這些問題都難以回答。
碎片化還表現(xiàn)在,專有架構(gòu)為了挖掘絕對性能往往會放棄向前兼容性。如上文提到的中間件,它的一端是碎片化的 AI 軟件框架,另一端則是一代又一代的芯片架構(gòu)。如何同時維護(hù)多個部分不兼容的指令集架構(gòu),并保證?一次軟件更新都能完整的覆蓋所有的設(shè)備?除了投入更多的人力,別無他法。一個常見的論調(diào)是像當(dāng)下的消費(fèi)級芯片一樣只保持一個短期的(2-3年的)軟件支持,然而當(dāng)下 AI 芯片的常見應(yīng)用領(lǐng)域,如智能攝像頭、工業(yè)智能、以及自動駕駛,一款芯片的生命周期可能長達(dá)十年。很難想象一家公司需要多大的量級才能提供持久的技術(shù)支持,如果預(yù)估一家初創(chuàng)公司活不過兩三年,如何才能放心的部署其產(chǎn)品到一款面向消費(fèi)者的量產(chǎn)車上?
AI 芯片只是過渡期產(chǎn)物
從一個軟件工程師的角度,我個人堅(jiān)信定制化的 AI 處理器只會是一個過渡期產(chǎn)物。一個統(tǒng)一的、可編程的、高并發(fā)的架構(gòu)才應(yīng)該是我們追求的方向。回想過去的二十年,我們見證了專用架構(gòu)的小型機(jī)市場的萎縮,圖形處理器到通用向量處理器的發(fā)展,甚至連我們的手機(jī)和電腦的平臺都將趨于統(tǒng)一。有理由相信,現(xiàn)在再把資源投入到定制化的 AI 芯片絕不是一個好的投資。