請更新您的瀏覽器

您使用的瀏覽器版本較舊,已不再受支援。建議您更新瀏覽器版本,以獲得最佳使用體驗。

科技

從人工智慧的大型語言模型,回顧記憶體匱乏症與可能解藥

科技新報

更新於 2023年05月09日15:37 • 發布於 2023年05月10日08:00

人工智慧訓練的浮點運算量(Flops)每年都大幅增長,自然語言處理(NLP)、機器視覺(CV)和語音識別學習過去十年,以 2 年 15 倍速度攀升。自從 Google 在 2017 年推出 Transformer 模型,更激增到「2 年 750 倍」。但瓶頸並非運算能力,而是記憶體的「容量」(Capacity)、「頻寬」(Bandwitdh)與「延遲」(Latency),無論晶片內、晶片之間還是人工智慧加速器間通訊。

▲ 摩爾定律遠遠追不上人工智慧浮點運算能量,尤其大型語言模型(LLM)。

訓練人工智慧模型的記憶體需求,因訓練過程需儲存中間激勵函數,通常會比參數量增加數倍記憶體容量。普遍用在自然語言處理和機器視覺的 Transformer 模型問世後,參數量呈 2 年 240 倍超指數增長,但 GPU 記憶體容量卻僅 2 年 2 倍成長。

從 Nvidia 在 2016 年 P100(Pascal)最新 H100(Hopper),FP16 性能提升 46 倍(21.2TFlops → 989.5TFlops),但記憶體容量卻只長 5 倍(16GB→80GB),記憶體理論頻寬更僅約 3 倍(720GB→2TB/s),代表每個 Flops 分到的記憶體頻寬只會越來越少。

▲ GPU 記憶體容量和頻寬成長幅度也遠遠看不到新模型的車尾燈。

隨著不斷飆升的模型規模,大型語言模式光模型權重記憶體,就可能需要 100GB 以上容量,導致大型模型訓練大部分時間(超過 40%),其實都沒有花在矩陣乘法運算,而是在等資料傳輸,人工智慧訓練難以避免的「記憶體撞牆」(Memory Wall)。

同場加映兩台頂級超級電腦的節點網路頻寬,就更清楚影響究竟多大。當初富士通設計 A64FX 處理器,其實可選擇 1,024 位元長的運算資料寬度,而非後來的 512 位元。換言之,本來可推出一台有「兩倍 Flops」的超級電腦,但選擇不這樣做,其因甚明:沒有足夠頻寬,就無法達到真正效能,這也反映到富岳擁有較高峰值性能百分比(實際性能 Rmax ÷ 理論性能 Rpeak)。

冰凍三尺,非一日之寒

由於運算能力和記憶體差距越來越大,「記憶體撞牆」也讓訓練更大模型更困難。如果不大量最佳化,再高階 GPU 也只有非常低 Flops 利用率,但就算大量最佳化,很多時間還是花在等記憶體,大型語言模型 Flops 也只能達 60% 左右。

同樣情況也發生在核心數量持續穩定成長的 CPU,受制於有限處理器腳位量和主機板空間,處理器腳座越來越大(尤其伺服器),每個核心分到的記憶體頻寬(CPU 反而較沒有容量問題)也越來越少。

但這件事並不是今天才突然發生,時間放遠,近 20 年運算設備峰值計算能力提高「9 萬」倍,但記憶體和匯流排頻寬卻只有 30 倍,差了整整 3 千倍。看更遠點,記憶體速度逐漸跟不上運算能力,更早 1970 年代末期,精簡指令集電腦(RISC)陸續誕生時就高度重視,如大型化暫存器檔案(Register File)、載入/回存(Load / Store) 架構、騰出更多電晶體預算以便放入更高容量快取記憶體(Cache Memory)等,都是減輕記憶體效能落差的努力。時至今日,面積超過 CPU 核心的高容量多層快取記憶體,只能說是「不是辦法的辦法」。

▲ 看似不大的差距(3.1x vs. 1.4x),長期累積下來就是無法踰越的「3 千倍」巨大鴻溝。

▲ 除了 2017 年英特爾 Skylake-SP 伺服器平台「Purley」曾因 6 通道記憶體而曇花一現罕見反彈,每個 CPU 核心分到的記憶體和 I/O 頻寬,依舊穩定下滑。

山窮水盡疑無路,柳暗花明又一村

眼睜睜看著處理器和記憶體越來越大的差距,難道只能雙手一攤,束手無策?俗語說得好,生命自己會找出路。先將人工智慧訓練法和部署放在一旁,純粹就硬體角度,由小到大,由近到遠,一步步瞧瞧,還有哪些避開「記憶體撞牆」的手段和技巧。

減少主記憶體存取和搬移:GPU 雙雄的選擇

Nvidia GPU 從 A100(Ampere)演化到 H100(Hopper),浮點運算效能增長超過 6 倍,但記憶體頻寬卻只有 1.65 倍,H100 透過分散式共享記憶體(Distributed Shared Memory,或稱 DSMEM)和 L2 快取群播(L2 Multicast),讓一個 SM(Streaming Multiprocessor)資料可直接寫入另一個 SM 的 SRAM(共享記憶體/L1 快取),無須經外部 DRAM 主記憶體執行緒區塊間資料交換,加速約 7 倍,不但有效增加快取記憶體容量,也減少讀寫 DRAM 的頻寬。

▲ 要避開記憶體撞牆最好的方法,就是繞過它。

另一手段是讓 CPU 與 GPU 共享主記憶體,讓 CPU 和 GPU 更快速容易傳遞資料,並減少資料份數。AMD Instinct MI300 與 Nvidia Grace Hopper 就是採取這種方法。

▲ 以往 UMA(Unified Memory Architecture)視為「便宜電腦才用的東西」,但現在反倒成為高效能運算與人工智慧非常重要的技術。

順道一題,早從 21 世紀初期,被 AMD 併購的 ATi 與 Nvidia 構建 GPU 雙雄抗衡局面時,「記憶體控制器內建壓縮傳輸機能」就一直是兩間公司暗中較勁的技術重心,Nvidia 從 GeForce 6800Ultra(NV40)開始,就取得明顯技術領先優勢,持續精進相關技術並申請專利。過去十幾年,ATi 或 AMD GPU 需要更多記憶體頻寬,才能達到 Nvidia 同等級產品的效能,絕對不是偶然。日後如有機會,筆者會特別撰文深度介紹這主題。

打造專用架構晶片:人工智慧加速器

2017 年計算機工業最高榮譽「圖靈獎」(Turing Award)獲獎者、RISC 一詞發明者、經典教科書《計算機結構:計量方法》作者之一 David Patterson 在 ACM Communications 發表文章,大意是:隨著製程提升困難和摩爾定律終結,通用計算晶片每年效能提升僅 3%,深度神經網路加速的特化架構將是未來主流,最具開創性的案例,莫過於 Google 2015 年陸續推出 TPU(張量處理單元),讓深度神經網路(DNN)計算速度提高 15~30 倍,能耗比更比現在 CPU 和 GPU 提升 30~80 倍。不限 Google,近年許多新創公司人工智慧加速器也如出一轍、有志一同做這件事。

所以「理論」於古老論文存在已久,讓「運算多跑一會」的「脈動陣列」(或稱脈動管線,Systolic Pipeline),相隔 30 餘年後,變身為雲端霸主初代人工智慧晶片的靈魂。概念也很簡單,既然運算動作反覆存取記憶體浪費時間,何不「串串樂」,讓資料經過大量相同處理單元(PE,Processing Element)?舉例來說,想連續加法運算,要進行六次 +1,與其反覆存取記憶體六次,不如六個 +1 串在一起,不就畢其功於一役?

但脈動陣列的限制也很明顯:只適用特定運算,缺乏靈活性與泛用性。很幸運的,像普及特徵辨識的卷積神經網路(Convolutional Neural Networks,CNN)就是非常適合的應用,Google 初代 TPU 內轉化為一連串 8 位元整數乘積運算,時脈僅 700MHz,理論尖峰效能就有 92T,推論效率高達同時期 GPU「10 倍」,並兼顧高品質服務反應時間必備的「低延遲」──這對經營廣告業務和銷售雲端服務的 Google 格外重要。

▲ 因 Google 研發 TPU,讓古老 Systolic Pipeline 成為現實產品能用的技術。

Google 雲端 TPU 發展到第四代(第五代應該已在路上),由 4,096 顆 TPU v4 組成的「人工智慧訓練用超級電腦」TPU v4 Pod,首次公開時性能就可達 Top 500 世界排名第一超級電腦「富岳」2 倍,八項 MLPerf 基準測試六項創造歷史性能紀錄。當然,畢竟自己開發專用 ASIC 所費不貲,大概只有 Google 這種家大業大的雲端巨頭才有足夠本錢,迅速開發出如此優秀的人工智慧加速器,並持之以恆推陳出新。

另一個值得一提「徹底針對人工智慧實際工作流程,量身訂做晶片架構」的案例,是 Blaize 的 GSP(Graph Streaming Processor),講白話點就是「不多花一分力做白工」,將記憶體存取和耗電量降到最低。

▲ 雖然「推論」似乎不需很高運算效能和資料精度,但看在物聯網邊緣運算裝置需要低功耗的份上,避免無謂記憶體存取也是降低耗電量的重要手段。

獨樂樂不如眾樂樂:記憶體共享池

現在焦點轉回 CPU。目前資料中心伺服器平台陷入兩個記憶體架構的巨大瓶頸。第一個瓶頸是 DRAM 記憶體傳輸通道與整體頻寬增長,早跟不上 CPU 核心數量成長。第二個瓶頸是分散不同伺服器的 DRAM 記憶體,面臨資源利用率嚴重偏低的閒置窘境。

先檢視第一個元件層次的瓶頸,雖然 CPU 廠商也很積極強化記憶體頻寬,努力直接反應至驚人腳位數。Nehalem(Xeon 5500 / 5600)時代的 LGA1366 是三通道 DDR3,Xeon E5 的 LGA2011 是四通道 DDR3 / DDR4,Skylake-EP(Purley 平台)是 LGA3647 六通道 DDR4,Ice Lake-SP(Whitley 平台)LGA4189 是八通道 DDR4,AMD 第三代 EPYC 的 LGA4094(SP3)是八通道 DDR4,新 Xeon「Sapphire Rapids」(Eagle Stream 平台)LGA4677 是八通道 DDR5,AMD 第四代 EPYC LGA6096(SP5)更是 12 通道 DDR5。但「物理限制」硬是擺在那邊,CPU 廠商無法永無止盡擴充腳位,得另闢蹊徑。

其實以前英特爾也曾選擇將記憶體控制器功能分而治之,經序列式(Serial)協定存取記憶體,像英特爾 Xeon 平台曾出現 FB-DIMM、SMI 和 SMI2,以及 IBM Power 的 OMI,也是眾多高階伺服器行之有年的作法。不過還是一句話:有極限。

▲ 沒撐幾年就默默消失的 FB-DIMM 已是英特爾伺服器平台史的黑歷史。

接著再深究第二個伺服器應用平台層次的瓶頸。人們對記憶體的需求只增不減,以微軟 Azure 為例,DRAM 佔資料中心 50% 伺服器成本,其他雲端巨頭亦相去不遠。

但很吊詭的是,規模越大的資料中心,卻有更嚴重的記憶體閒置問題,Google 報告指出,資料中心 DRAM 利用率只有 40%,微軟也曾表示,當 Azure 所有 CPU 核心都配給虛擬機器後,仍有 25% 記憶體容量沒有 CPU 用到,處於閒置狀態。對 Google 和微軟這種大型雲端服務業者來說,這麼高記憶體閒置率,形同數十億美元損失。

除此之外,資料中心並不是只有伺服器 CPU 才擁有高容量 DRAM,像早佔一席之地的 GPU、崛起中 SmartNIC / DPU 和各式各樣人工智慧加速器,DRAM 容量也相當可觀,進一步惡化整體記憶體資源無法充分利用的慘狀。

因此 IBM 主導的 OpenCAPI、「反英特爾陣營」發起的 Gen-Z、英特爾帶頭的 CXL(Compute Express Link),即使初衷略有差異,但都企圖利用 PCI Express 的高速傳輸率,實現 CPU、各類加速器(GPU、AI、FPGA、SmartNIC、DPU)、記憶體與資料儲存單元間的低延遲互連,最終目的不外乎「跨越 CPU 與周邊裝置的藩籬,將記憶體虛擬成全部運算單元共用的共享池」,大幅提升記憶體資源的應用彈性與效率。

歷經多年競合,CXL 已成約定俗成的業界標準,連 AMD Zen 4 世代 EPYC 都共襄盛舉(CXL 2.0),不限伺服器平台,也預定導入消費型 CPU,三星和 SK 海力士等記憶體大廠,也推出 Type 3 CXL 記憶體擴充卡,藉 PCIe 插槽安裝多組 CXL 記憶體裝置,可增加近 50% 記憶體容量與 40% 記憶體頻寬。

▲ CXL 三種應用架構,左起「利用 CXL 協定將 CPU 的記憶體分享給週邊裝置」的 Type 1、「利用 CXL 協定讓 CPU 和周邊裝置存取彼次記憶體,動態資源配置」的 Type 2、「利用 CXL 協定擴充 CPU 記憶體容量和頻寬」的 Type 3。

依舊難解的「延遲」:方興未艾的堆積木大戰

上述幾個解決方案,「看起來」同時克服記憶體「頻寬」和「容量」宿疾,但還剩下一個極度難解的課題,就是「延遲」。就系統層面看,整體記憶體延遲之所以持續成長,可歸納以下三點:

  • 越來越多快取記憶體階層(Cache Hierarchy)。

  • 因 DRAM 記憶體分散至不同 CPU,激增存取流程階段,任何一筆記憶體存取,隨時有機會「遠渡重洋」到遙遠的另一端。

  • 數量激增的 CPU 核心結合以上兩點,讓快取資料一致性協定(Cache Coherence Protocol)製造更可觀的延遲。

但很諷刺的是,放眼整個處理器業界,扣除「釜底抽薪」的專用架構晶片,不論 CPU 還是 GPU,「靠越近,跑越快」原則依然有效,「快取記憶體堆堆樂」仍是縮短整體記憶體延遲的主要途徑。

距離運算單元最近的記憶體,一般是內建於處理器、多數為快取記憶體的 SRAM。為什麼這些處理器廠商不將更多 SRAM 放在更靠近運算單元的位置?答案也很簡單:成本。偏偏晶片內 SRAM 製造成本,並不會跟著製程微縮而降太多,還有可能因更先進製程越來越貴。

台積電於國際電子元件會議(IEDM,IEEE International Electron Devices Meeting)發表的論文,3 奈米(N3)和 5 奈米(N5)製程 SRAM 位元,大小分別為 0.0199μm² 和 0.021μm²,僅縮小約 5%,改良型 3 奈米(N3E)製程更糟糕,維持 0.021μm²,跟 5 奈米比幾乎沒有縮減。這代表台積電若最先進製程實作 1GB 容量 SRAM,加上相關控制邏輯電路,將需要超過 400mm² 晶片面積,幾乎是 Nvidia 最高階 GPU H100(814mm²)一半大──H100 的 L2 快取容量也不過 60MB。

這也是為何先進封裝的重要性,越來越水漲船高的主因,AMD 第四代 EPYC 處理器 3D V-Cache 衍生款「Genoa-X」就是最好例證,12 個 8 核心 CCD(Core Complex Die)上面個別多一顆 64MB 的 SRAM 顆粒,讓最高 L3 快取總容量從 384MB(32MB × 12 CCD)激增三倍至 1,152MB(96MB × 12 CCD),再記入 96MB 的 L2 快取和 3MB 的 L1 快取,總 SRAM 容量是驚人的 1.25GB。

▲ 透過 3D V-Cache,AMD 讓 96 核心 EPYC 處理器有超過 1GB 容量的 L3 快取。

AMD GPU 和資料中心 APU 也採類似策略,最新 Radeon RX7000(Navi 3x)將 64 位元寬度 GDDR6 記憶體控制器和 16MB 容量 L3 快取 MCD(Memory Cache Die),放在較便宜的台積電 6 奈米製程,和 5 奈米製程 GCD(Graphic Compute Die)分而治之。

▲ Radeon RX7000 世代 GPU(Navi 3x),AMD 將「比較不適合最先進製程」的功能區塊,如記憶體控制器和 L3 快取記憶體(Infinity Cache)與運算核心分而治之,1 顆 5 奈米 GCD 搭配 6 顆 6 奈米 MCD。

「黏合」13 個晶粒(不含 8 顆 HBM3 記憶體),以實現 24 個 Zen 4 核心、CDNA3 運算架構、128GB 容量 HBM3 記憶體、電晶體總數 1,460 億的 Instinct MI300 資料中心 APU,更是 AMD 默默耕耘 EHP(Exascale Heterogenous Processor)多年後集大成。

▲ Instinct MI300 堪稱 AMD 累積多年的技術集大成,總計打包 13 顆晶粒的高效能運算怪物:9 個 5 奈米 Chiplet(3 個 CPU,6 個 GPU) 和 4 個 6 奈米 Chiplet(4 個 I/O 兼記憶體控制器),再另外緊密耦合 8 顆 HBM3 記憶體。

英特爾和 Nvidia 很快就會跟進,這場「堆積木戰爭」剛開始,後勢更精彩可期。

資料中心伺服器架構新革命會很快出現?

回顧這段處理器和記憶體距離越拉越開的漫長歷史,不論上看下看左看右看,「如何填補一望無際的鴻溝」,即便浮現幾個突破點,但全球經濟景氣前景不明,或多或少延緩新技術普及腳步,仍是看似無解的難題。我們也有充分理由相信,計算機工業還會掙扎於記憶體匱乏症很長時日,極可能永遠看不到盡頭。

也許像量子電腦這種嶄新運算架構,或乾脆從「軟體」下手,才是最終解藥。近期 Google 流出某篇研究員文章〈We Have No Moat, And Neither Does OpenAI〉(我們並沒有護城河,OpenAI 也是),提到 Meta 前陣子釋出比 GPT-3 小很多的 LLaMA(Large Language Model Meta AI)後,造成開源 LLM 大爆發,發展速度遠超過多數人想像,還不斷被眾多開發者改進並縮小到可在消費級 GPU 甚至手機跑,搞不好沒過多久,每個人個人電腦和手機,都可以跑與 ChatGPT 一樣好的 LLM。

假如 Meta 可將開源界成果囊括至產品和技術,原先嫌 Nvidia GPU 太貴想自研晶片,人工智慧太晚應用 GPU,又揮霍一堆資源搞元宇宙(Metaverse),導致現在落後競爭對手的 Meta,說不定有機會在這場人工智慧戰爭,彎道超車 OpenAI(微軟)和 Google,成為最後的贏家也說不定。筆者又扯遠了。

(首圖來源:Pixabay

立刻加入《科技新報》LINE 官方帳號,全方位科技產業新知一手掌握!

查看原始文章

更多科技相關文章

01

路透:輝達擬提高H200晶片產量 因應中國強勁需求

路透社
02

英特爾已測試涉中晶片設備 外界憂可能用於先進製程

路透社
03

迪士尼10億美元注資OpenAI Sora可使用經典角色

路透社
04

美參議員華倫籲黃仁勳出席聽證 說明川普售中國晶片決策

路透社
05

微軟強化 Windows 11,FSE、ASD 助力遊戲體驗升級

科技新報
06

3大電信影音收視榜揭曉 韓綜台劇動漫3大主力

卡優新聞網
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...