Linux, 工作, 生活, 家人

Computer/Technical, ARM

Multi-socket is doomed

Brendan Gregg 在 2021 年的演講提到的 Multi-socket is doomed
他的理由是如果在 cloud 上擴展 CPU ,可以再加開 instance 就好,沒有必要一定要讓該機器的 CPU 數變多,因為跨 CPU 的存取的工程非常浩大,而且會有很多問題產生

今天我們就看到有人就這樣幹了

下圖就是一個 CPU 內部架構的示意圖,在大型 CPU 內,通常 CPU 會分成幾塊存取 DRAM 以提高效率,像是這圖上就會分成四塊,如果程式在每一塊內的 CPU 內上執行,通常會優先配給那一塊存取速度較快的 DRAM 區域,但是還是免不了要跨 socket 去存取另外一邊的 DRAM 內容,這時候 Latency 就會非常高,即使是在同一顆 CPU 內,不同 numa node 相互存取的效能也會比相同 numa node 稍低一點

除了一般應用程式存取以外,還有一個叫 cache coherence (快取一致性)的機制也會影響效能,例如在 Node 0 的 CPU 要寫一個值到記憶體,它必需要通知所有的 CPU 你要將你的 cache 內的資料清空,以保持存取該記憶體的資料一致性,這個雖然頻寬佔用不高,但是總是一筆額外的傳輸開銷,尤其是要出 CPU 那就更快了。

而且我們現在單核心的 CPU core 數已經夠高了,沒有必要一定要搞 multi-socket system

像 Ampere AltraMax 已經到達 128 核心
Amazon Graviton 3 也有 64 核心

當然 Amazon 並沒有展示出他們的系統,但是他們圖上提到一件事

這是一個 3 核心的系統,當然一般都是用 CCIX 接起來,應該會是二的倍數,像是 2 顆或是 4 顆
但是 Amazon 的系統是用 Nitro Card 接起來,

Nitro Card 是一塊多功能 DPU Card ,負責資料傳輸加解密等等,看資料似乎也負責管理 edge VM 系統,還有當作 storage 系統

沒有想到 Amazon 衝的這麼快,真的就丟掉 multi-socket 架構,這個應該是整個系統都為了加速 Cloud native system 而生,軟體 CPU 跟不上的用硬體去推
也完全符合 Brendan Gregg 所說的情境

而像 Ampere 下一代的 CPU 更多核,那又更密集了,也符合 Brendan Gregg 的預測

未來 data center 可能就會走半板單 CPU 的架構吧,學 Amazon 的 triple-cores 不現實,一般真要搞 2U 4 systems 還是可以做到的,也比較相容工業標準

Ref.
AWS Graviton3 Hits GA with 3 Sockets Per Motherboard Designs
AWS Nitro the Big Cloud DPU Deployment Detailed

發佈留言