不犧牲算法,不挑剔芯片,這個來自中科院的團隊加速國產AI芯片破局

機器之心原創

作者:澤南、張倩

在《沙丘》構建的未來世界裡,「得香料者得天下」。但在生成式 AI 席捲的智能世界裡,得 GPU 者得天下。

前段時間,外媒 The Information 曝出了一則重磅消息:微軟和 OpenAI 正在規劃一個雄心勃勃的數據中心項目 —— 建造一臺名爲「星際之門」的 AI 超級計算機。這臺計算機將配備數百萬個專用服務器芯片,是目前一些最大數據中心的 100 倍。當然,這個計劃是相當燒錢的,成本可能高達 1000 億美元,令其他公司望而卻步。

在國內,生成式 AI 引發的這場算力競賽也變得愈發激烈。但除了瘋狂堆卡,企業還有沒有其他更加經濟、有效的方法來提升算力,尤其是在 AI 芯片國產化進程加速的當下?對此,中科院計算所編譯團隊負責人、中科加禾創始人崔慧敏提到了一條鮮有人涉足的路徑 —— 編譯技術。

編譯的作用就像一位翻譯,它能把高級編程語言翻譯成芯片可以理解並執行的機器語言。同時編譯器還要做優化,讓生成的機器代碼運行起來更高效。

這種優化的力量有多大?崔慧敏提到,「我們能做到的是在不降低算法精度的情況下,把算力的利用效率給提上來,提供額外的 2~10 倍的性能提升。」這個數字可能超出了很多人的預料,就像崔慧敏所說,「在 AI 這樣的負載裡面,編譯器的作用其實是被遠遠低估了的。」

那麼,她提到的加速是在英偉達 GPU 上實現的,還是在國產卡上也行?是針對特定大模型做的優化,還是換個模型也能用?對此,她的答案是兩個字 ——通用。

「我們做的是一層基礎的軟件平臺層。有了這一層以後,底下的芯片就可以隨意切換,上面的模型也可以隨意切換,它們之間不再是一個緊耦合的狀態了。」崔慧敏解釋說。

其實,在當前的國產芯片生態中,這種緊耦合的狀態非常常見。在 AI 芯片加速國產化的進程中,大多數國產芯片做了大量算子定製化開發工作,這不但大幅增加了開發成本,隨之而來的還有技術標準化進程緩慢和兼容性的問題。各家廠商形成一個個獨立的生態小島,造成整個行業趨於碎片化,這無疑限制了技術和產業的快速發展和廣泛應用。

崔慧敏團隊想要做的,就是鏈接這些生態孤島,通過一個編譯中間平臺,讓模型、應用可以在不同的硬件平臺之間自由移植,同時優化移植後的性能,後續出現的新模型、新應用也能無縫適配,保證持續的可用性。

「我們要用一套軟件工具,實現大模型應用在國產算力平臺上的 0 成本適配、0 損耗執行、0 延遲部署。」崔慧敏說。

這有望補齊國內 AI 產業生態的缺位,大幅降低上層應用在國產芯片平臺上的落地門檻和成本,顯著提升多種異構算力的利用和適配效率。

崔慧敏畢業於清華大學計算機系,並於中科院計算所獲得計算機體系結構博士學位,持續從事編譯方向研究工作,曾在芯片和編譯器領域頂級會議和期刊發表論文五十多篇。她已有 20 年以上的編譯器開發經驗,曾作爲核心成員主持或參與過多款國產芯片的編譯器研發工作。爲了實現上述目標,她以中科院計算所原始編譯團隊爲核心組建起了中科加禾的精英隊伍。去年 8 月以來,中科加禾已經完成兩輪,共計近億元融資,股東涉及知名芯片領域投資機構、頭部國產芯片、服務器、互聯網等上下游廠商,其中不乏有過緊密合作的 AI 芯片產業夥伴。

近日,我們與崔慧敏進行了一番對話。

在採訪中,崔慧敏向我們介紹了國內編譯技術的發展歷程、國內 AI 芯片產業面臨的挑戰,同時也對未來跨多平臺 AI 算力產品的前景進行了展望。

創業緣起:國產芯片市場走強,涌現市場機會

機器之心:從做學術到創業,您走過了一段怎樣的心路歷程?

崔慧敏:自 97 年開始,我在清華計算機系讀本科和碩士,畢業後在計算所讀博,之後包括工作,就一直在做編譯器和芯片工具軟件相關的科研工作。編譯這個方向比較偏向於理論和實踐的結合,既有前沿的理論探索又有落地的工程開發。在這一過程中,我們一直都伴隨着國產芯片的發展進行實踐,形成了一支伴隨着國產芯片的研發而成長起來的編譯隊伍。

在這個過程中我們做了很多方向,包括面向通用芯片、專用芯片的編譯優化,我們在國際頂會和期刊上發表了一些論文,進行了很多學術交流。

近些年來,隨着國家對國產芯片產業的推動,我們團隊承擔了很多構建芯片工具鏈方面的職責。但在這個過程中我們發現,純靠科研的方式,儘管會產生很多創新突破,但可能面臨難以產業落地的困境。一個軟件從原型走到真正能用的工具,這裡面還是有非常多工程化的事情要做。

做編譯器這個事情,大家一直都覺得可能沒有那麼好做。不過,後來出現了兩個驅動力,一個是大模型的出現,它對算力的需求極大,並且計算模式有一定的收斂;另一個就是業內對國產芯片的需求激增,而國產芯片的生態和英偉達相比又存在很大的差距。我們覺得在這個過程中,需要編譯層和基礎軟件工具來彌合這個差距,讓國產芯片把現有的生態利用起來,或者融入到整體生態中。我們希望通過增強國產芯片的通用性和適配能力,服務於國產芯片算力崛起,把自主生態的整體可用性提上去,把市場需求轉化落地。

國內稀缺的創業團隊,從學術成果到產業經驗

機器之心:在創業之前,您的團隊主要做出了哪些成果?

崔慧敏:我們之前一直在做很多面向底層芯片的兼容工具。最早做二進制翻譯工具,就是能把 X86 的二進制程序翻譯到底層不同的其他的指令集架構上。從那開始我們積累了非常多的關於兼容性、適配性、跨平臺執行的能力。近些年來圍繞 GPU 等架構,AI、高性能計算等負載,我們做了大量編譯器優化的工作。

在這個過程中我們發現,在 AI 這樣的負載裡面,編譯器的作用其實是被遠遠低估了的。通過深度的編譯優化,一方面可以讓同一個程序直接運行在不同的平臺上,解決程序移植的難題;另一方面,移植後的程序還能在不同平臺上保持優化後的性能,這是編譯器能夠發揮長處的一個機會。

在這些方面,我們前期有非常多的論文的積累,像我們近年在 ASPLOS 上發表的一系列論文。論文結果表明,編譯器可以充分地挖掘硬件算力,在 GPU 和 NPU 上都能夠取得非常好的性能。而且通過編譯器的方案,我們能夠比較徹底地解決問題 —— 它不是隻針對某個場景或者某個芯片,而是比較通用的。

我們這個團隊做了 20 多年編譯,所以我們如果要創業,一定是圍繞着編譯這個核心技術來做。而在大模型出現之前, AI 的負載其實是比較發散的,其中的差異性還是比較大的。所以像 TensorFlow、 PyTorch 這些框架其實做了非常多的工作,對負載多樣性提供了支持,比如說動態性、多樣性,對各種神經網絡的形態都能夠支持得很好。那時算子存在着多樣性,這意味着如果想要去做一層國產芯片上的軟件,然後讓它去支撐所有的負載,難度是相當大的。

大模型的出現,其實可以認爲是一種模型結構的收斂。可能它不會代表所有,但是已代表了一大類負載,這一大類負載的市場足夠大了。所以針對這一類負載,我們就有機會提供一套端到端的優化和編譯的方案。

機器之心:中科加禾的團隊中包含很多參與過國內重要 AI 芯片項目的專家,這些經驗和能力對於目前做的事有哪些幫助?

崔慧敏:要把一顆 AI 芯片利用好,有兩個方面的工作必不可少,一是可編程性,能夠方便地把應用映射到芯片上;二是性能,能夠充分地把芯片的算力利用好。

關於這兩個方面,我們團隊的核心成員在 CPU、GPU 和 NPU 上都積累了豐富的編譯優化經驗。對於某一款特定的芯片,我們可以用編譯的方法把不同計算單元編排好,提升計算、數據傳輸效率,做到資源的最大化利用。另一方面,我們掌握了怎樣去做一套優化,讓它儘可能地適配不同平臺。在這個過程中,我們形成了一套編譯設計、優化的理念。

同時,我們會把這些能力盡可能地模塊化,其中一部分是公共模塊,適用於不同平臺、不同芯片;另外一些是需要定製的模塊。這兩部分模塊我們都有了很好的前期探索和理解,基於這些理解我們可以更好地構建出一個基礎平臺,當有新的負載或者新的芯片需求,我們可以更容易地去接入到這個平臺上來。

編譯的「魔力」—— 極致優化

機器之心:我們知道,像 ChatGPT 這樣的大模型算力消耗非常大,有人認爲這裡面可能還有成百、上千倍的優化空間……

崔慧敏:所謂上百倍、上千倍的優化,裡面既有硬件人的功勞,也有算法人、軟件人的功勞。在硬件層面上,可以通過研發一些更好的芯片,比如特殊架構的芯片,把成本降下來。在算法層面,可以通過量化、壓縮、剪枝把模型的計算量降下來。另外一個層面就是我們所做的,通過軟件的部署把成本降下來。

我們做的事情和前面兩個層面是正交的,就是說芯片設計出來如果是低功耗、低成本的,那編譯層可以把芯片的算力充分地榨乾。如果上層算法做了一些優化,那可以把做完優化以後的模型再拿到我們這個引擎上來部署。可以理解成:上層做好了算法,底層做好了硬件,我們來做更好的映射。

不過這裡面也有一些權衡,比如說有的人對精度的要求特別高,就不希望通過量化、壓縮犧牲模型的精度。我們能做到的是在不降低算法精度的情況下,把算力的利用效率給提上來,提供額外的 2~10 倍的性能提升。

機器之心:從編譯技術的角度看,優化是如何做到的?

崔慧敏:編譯技術會從三個方面去做優化。

首先是如何做算子融合。大模型有很多算子,我們可以把這些算子進行一些比較激進的融合,比如把十幾個算子壓成一個,這樣就可以把 AI 加速卡的利用率提到一個很高的水平。進一步,如何把融合以後形成的大算子優化映射到不同的硬件平臺上也是編譯優化要做的事情。

其次是如何生成高性能的算子。在大模型中會有很多不同形狀的矩陣計算,如何讓這些計算都能獲得接近硬件峰值的性能,是每個芯片廠商都需要付出大量努力去做的事情。我們會基於編譯器的思想,通過基算子加組合的方式來自動生成這些算子,高性能的算子是大模型能夠高效執行的基礎。

最後是如何編排訪存、計算和通訊。我們總希望芯片大部分時間都在算,而訪存和通訊是要等待的,這就涉及如何更好地去切分和編排任務。考慮到不同的國產卡在計算、通訊、存儲、帶寬等方面存在差異,我們要做的就是怎麼把這些因素抽象出來,再基於這個抽象去決定任務的切分,這也是我們要做的事。

以上這些優化集中在一起,就能達到一個整體的效果。

「天下苦 CUDA 久矣」,

探索國產 AI 芯片生態建設

機器之心:說到計算架構,行業內有一個繞不過去的 CUDA,有人說它很大程度上已是英偉達的護城河,如何看待目前行業的現狀?

崔慧敏:我覺得您說得很對,不管是做編譯器還是說做整個軟件生態,我們可能都繞不過 CUDA。我們覺得 CUDA 確實是英偉達的一個護城河,多年來英偉達也確實圍繞 CUDA 構建了非常龐大的生態,甚至可以說整個 AI 都是建在 CUDA 上面的。

有人說「天下苦CUDA久矣」,這背後是兩個問題:如何利用、融合現有的CUDA生態,如何讓國產自主生態生長起來。對於國內來說,各個芯片廠商會有不同的看法。有的芯片廠商會想要建一個自己的生態,就是成爲中國的 CUDA;另外也有做 CUDA 兼容的芯片廠商。這是兩條不同的路線。

我覺得這兩條路線在長期來說應該是會共存的。即使是在英偉達 GPU 上,大家也是有用 CUDA 的,有用 Triton 等工具的。所以可能在未來很長一段時間,大家都在爭取用戶。這個時間會有多長,其實不好說。在 CPU 上,C 語言用了好多年,一直到現在也在用,大家也在持續提出新的語言,不同的語言反映了不同的設計訴求。所以我們覺得在國產芯片的生態建設過程中,CUDA 可能是繞不過去的一環,但它也肯定不是唯一的路徑。

我們覺得可能兼容 CUDA 對硬件廠商來說是一個短期內佔領生態的捷徑,像 Triton 、SYCL 等新的語言,我們也要積極地去擁抱,因爲它們或許代表了未來。

國產的芯片自建生態這條路我覺得在一定領域內也是可行的。

所以我們覺得兩條路都是可以,都是應該走的。從這個角度來說,我們的芯片生態比較碎片化,可能這兩條路都是必不可少的。

機器之心:在這其中,中科加禾主要走的路線是哪一條?

崔慧敏:我們主要探索的是與語言和芯片解耦的編譯平臺方向。作爲一箇中間平臺,我們對前端語言不依賴,所有不同的語言都可以翻譯到平臺的中間表示上,然後通過中間表示再往不同平臺上去走。

在支持的優先級上,一方面我們有一部分的算子會去做 CUDA 源源翻譯,就是通過軟件來做一些算子轉譯的事。另一方面我們也會去接入像 Triton、SYCL 這樣的新語言。我們會採用一套統一的中間表示,讓任何語言都可以翻譯到這個中間表示上。這樣的話,如果將來再出一個新的語言,或者要推一個新的標準,都可以比較容易地接入到這個平臺上來。

上接各類大模型,下接各家芯片,

突破通用性挑戰,提供商業化最優解

機器之心:你們在做的,是面向大量硬件、大量模型的對接工作?

崔慧敏:對,大概是這樣一個角色。比如傳統行業的公司需要部署一個大模型,目前基本上是以手工的方法來做適配,大家依然面臨通用性的挑戰。而我們的解決方案是在中間做一層基礎的軟件平臺層,有了這一層以後,底下的芯片就可以隨意切換,上面的模型也可以隨意切換,它們之間不再是一個緊耦合的狀態了。

在模型收斂、算力巨量、應用激增的情況下,現在很少有開發團隊寫最底層的模型,更多的工作是在微調開源模型,這也導致適配層面的稀薄、脆弱成爲共性問題。目前大家都在解決「如何讓已有的應用在國產芯片上運行起來」。按發展態勢來看,「以後要開發新的應用怎麼辦」的問題會加劇顯現出來。

我們在做的通用性的軟件工具就是爲了解決這些問題存在的。我們要用一套軟件工具,實現大模型應用在國產算力平臺上的 0 成本適配、0 損耗執行、0 延遲部署。

機器之心:給不同的國產芯片去提供相對統一的一個平臺,是件很有挑戰的事。

崔慧敏:確實是這樣,這也是碎片化的生態帶給應用方的一個挑戰。因爲不同的芯片,首先底層的架構就不一樣。國內的芯片大概分成兩種,一種是類 GPU 架構,一種是 NPU 架構。我們肯定不希望應用層需要針對每一家不同的芯片去重新構建自己的程序,也不能要求每一家硬件廠商都提供足夠豐富的算子讓應用層使用。所以這裡面就有一個挑戰,怎樣通過一套工具把不同的架構歸攏在一起?

這裡我們會有不同層次上的考慮。像大模型,我們就是從框架或引擎的層面上進行統一。比如算子層有統一的接口,我們就能夠統一納入考慮。另外就是可以通過算子轉換工具,或是算子生成、編譯等優化方法,這些方面我們都佈局了相關的產品線。

不過,這裡面也有一個矛盾,就是你一旦通用了,性能就會受影響。如何能夠做到既通用又儘可能降低性能損失,這是我們要突破的核心問題,是技術側的挑戰。

因爲芯片本身的研發節奏不一樣,我們還會受到不同芯片廠商本身研發節奏和軟件工具鏈研發節奏的影響。

在商用側,成本、性能、效率是繞不開的問題,我們希望通過一套穩定、可靠的適配優化平臺,實現軟硬件協同、平衡成本、性能、效率的最優解。

大模型時代,也是編譯器的黃金時代,

建好一座「橋樑」

機器之心:2019 年,兩位圖靈獎獲得者 ——John Hennessy 和 David Patterson 刊文說,計算機架構正在迎來一個新的黃金時代。而作爲驅動計算機架構革新的重要組成部分,編譯器也在迎來它的黃金時代。能否根據您過去幾年的經歷、體會談談對這句話的理解?

崔慧敏:對,我覺得確實是這樣。這個黃金時代不光是科研工作的黃金時代,也是建設國產芯片生態的黃金時代。

從學術角度來看,近幾年頂會上冒出來非常多 AI 編譯相關的文章,包括底層編譯,而且一直在飛速增長。以前這類文章很難發在頂會上,比如 ASPLOS 這樣的頂會。

中科加禾兩篇模型推理相關論文發表於計算機體系結構頂會 ASPLOS’2024,相關技術已經融入公司產品。來源:https://mp.weixin.qq.com/s/vx8mfmDmhJz3InhdZSQuSQ)

從產業角度來看,在國外,提出「編譯器黃金時代」的大牛 Chris Lattner 本身也創辦了自己的公司 ——Modular AI。在國內,受 Modular AI 的啓發,投資人判斷國內也有這樣一個機會。其實,大家最初的出發點非常樸素,就是說從芯片的多樣性上來說,中國一定是一個芯片最多樣化的市場,這個市場一定會對編譯提出一個統一的需求。在公司成立之後,許多投資人和產業夥伴來聯繫我們,希望達成合作。我們看到,無論是投資圈還是產業圈,大家都有一個共識,那就是編譯器領域存在明顯的市場機會。

在發展進程上,編譯器是稍微滯後於體系架構的。所以當體系架構的黃金時代到來之後,緊接着就會迎來編譯器的黃金時代。我們也是跟做硬件、軟件、算法的夥伴都做了交流探討之後,才終於確信這對我們來說是一個很好的機會。

機器之心:根據您的觀察,在大模型時代,AI 加速的需求正在發生怎樣的變化?

崔慧敏:我覺得分爲兩個方面。一方面,AI 大模型會給未來的硬件帶來一些新的機會,因爲它們確實和以前的模型不一樣了,它們會對優化方式提出很多不一樣的要求。所以我們看到做 LPU 的 Grok 就針對大模型提出了新的硬件架構。其實國內的很多廠商也在探索類似的事情,就是怎麼針對 Transformer 做更好的硬件加速。我覺得這方面迭代會很快。

另外一方面就是大模型需要的絕對算力確實是太大了,所以它對性能的要求是極致的,要從整個鏈條的環節上去壓縮成本。AI 1.0 時代的模型,芯片性能發揮到百分之四五十也可以。但是現在,你要把每一點價值都充分挖掘出來,一定要極致地去壓榨芯片的性能,所以它對優化 —— 無論是硬件的優化還是軟件的優化 —— 都提出了不一樣的挑戰。

在這個背景下,我們覺得,大模型推理側的市場會非常大。在大模型推理側,大家面向的場景可能會非常不一樣,對模型大小的需求也不一樣,所以這會是第一個非常多樣的市場,就是多種大模型推理芯片共存,所以對碎片化生態的整合需求也比較大。

機器之心:我們看到,在這次的大模型浪潮中,AI 芯片的國產替代進程正在加快,那麼與之強關聯的編譯器能做到多大?

崔慧敏:編譯器分兩個概念,一個是芯片本身的編譯器,我們把它叫做底層編譯器,這個肯定是每個芯片公司來做的。我們做的是更上層的編譯工具軟件,這個軟件基本上是用來完成開放生態和國產芯片底層的對接這件事。我們之間是相互配合的關係。AI 芯片的國產化替代是一個不可避免的過程,而且本身大模型對卡的需求也會有一個增長,所以我們覺得未來國產芯片的市場還是會快速增長的。

2023 年,中國 AI 芯片市場規模已經超千億元,英偉達仍然獨佔最大份額,如果國產芯片替代率可以在 3 到 5 年內達到 50% 或更高,再加上 AI 算力本身需求的增長,國產 AI 芯片的市場規模可能也會很快達到千億人民幣的水平。伴隨着大模型和算力市場的雙重推動,我們做基礎設施軟件的機會還是很大的。

在成立之初,我們定下的目標就是爭取讓我們的軟件裝到每一塊國產卡上去。當然,這不是說我們要管每一個國產芯片廠商去收錢。我們的付費用戶可能是多方的,比如集成商、雲的建設方、智算中心的建設方…… 我覺得只要我們能把國產卡變得更好用,那市場是認可來給這個軟件付費的,畢竟現在 AI 能創造的價值太大了。

機器之心:現在大模型落地的速度很快:手機 SoC 正在加入大模型優化機制,電腦也出現了 AI PC 的概念。在消費電子端,國內公司在計算架構層是否會有機會?

崔慧敏:機會還是挺多的。像現在的智慧屏、學習機、兒童互動遊戲設施已經把大模型的對話能力、語言能力利用起來了。因爲這些領域落地成本沒那麼高,市場需求也比較明朗,比較容易針對家庭環境、家庭成員來做定製,所以我覺得大模型會在家居場景中很快落地。另外值得關注的就是 AI PC,以及端側 NPU 的加入對大模型落地的推動,這可能帶來新的辦公模式。

機器之心:中科加禾會往這方面佈局嗎?

崔慧敏:也會發展。我們的大模型推理引擎分雲側和端側,所以端側我們也在做,也在接觸一些廠商了。

機器之心:您之前演講提到,隨着 AI 時代的到來,編譯器的內涵和外延正在不斷擴大,能否解釋一下這個現狀?

崔慧敏:我們覺得 PyTorch 的路徑是能夠代表這個方向的。其實最早我們說編譯器的時候可能做類比的就是 CUDA,CUDA 往下叫編譯器。這是嚴格意義上傳統的芯片編譯器,就是類似 CUDA 把程序翻譯到英偉達的 GPU 上去。對應到我們國產芯片也都有各自的底層芯片編譯器。

到了 AI 時代,大家在框架層面也做了很多編譯器的事情。大家會把這一層叫 AI 編譯,包括 TVM、XLA 等。這個時候,編譯的概念就往上走了一些。但是進到上層,大家原來做的事情並沒有那麼多,可能更多是圖的融合、張量的優化之類的。

但是我們現在看 PyTorch 2.0 其實是把整個編譯的概念大大延伸了,它把圖上的編譯、動態性的處理等都納入到它的架構裡了。當然,它的這個設計也是爲了未來讓更多的芯片能夠比較容易地接入進來。它中間有很多層,每一層都有很多編譯技術的支撐,讓它能夠更靈活、更通用。

我覺得編譯的目的就是讓整個系統變得更靈活、更通用。因爲整個 AI 系統一開始構建起來的時候,走的是一個快速路線,即讓更多人更容易地用起來。但是在對硬件的支撐和適配方面,原來沒有考慮那麼多,考慮更多的還是算子的接入,也就是硬接入的方式。PyTorch 2.0 更多的是把對算子的依賴變成自動生成算子:工程師在上面寫一個算子,它可以一點一點自動生成。作爲一個芯片後端,只要把這個接入做好,就能很好地接入到整個生態裡面去了。大家都在朝着這個目標去努力。

所以我們看到編譯的外延其實逐漸被延伸到了整個的 AI 框架裡。大家在每一個層面上都會包含很多編譯的能力和理念。包括像 MLIR 這樣的編譯的基礎平臺,也是希望能夠通過從最高層接入編譯的一些知識,中間層是編譯的分析,最底層是編譯的映射,這種架構設計,讓應用能夠更容易、更快地映射到不同的平臺上去。

我覺得對於編譯而言,問題還是在於怎麼能在軟件和硬件之間建立一個更好的橋樑。在 AI 時代,這個橋樑可能不是一下子就建好的,需要一層一層來建。這就是我們正在做的事情。

「聚芯片之合力,築國產之生態」,讓國產芯片更好用是我們的初心,也是我們的夢想。