vatt'ghern jaskier's ballads

2026.06.22 —— 今日 10 則

TODAY'S THREAD 今天的線索是「名目對不上實際」——ARGUS 在上萬張 GPU 的訓練叢集裡把偷偷變慢的那一張揪出來、一篇論文戳破 LLM 產的 GPU kernel「看起來對」的錯覺、Apple 把一個還沒人呼叫的 Swift runtime 靜靜鏈進核心;旁邊還有 Graviton5、OCaml 5.5.0、Linux rseq 這些把底層往前推一格的動作。

10 items ai · 3 systems · 3 infra · 2 backend · 2
0 / 10 read
#03

LLM 產的 GPU kernel 看起來對——其實是測試在說謊

一篇論文指出,現在評測 LLM 生成 GPU kernel 的基準太鬆:只用單一輸入形狀做一次 allclose 比對,就把實際有 bug 的 kernel 蓋章成「正確」。作者準備了 24 個 Triton kernel(15 個正確、9 個故意埋錯),改用 op-schema 感知的種子模糊測試加上 fp64 CPU 參考解,把這 9 個壞 kernel 的變體全抓了出來,15 個正確的一個沒誤殺。要拿 LLM 寫 kernel 的人,這是一記提醒:你的綠燈可能是假的。

read source → deep read gpu

#09

AMD MI355X 的 occupancy 數學——從矽片往上算

一篇從第一原理講 AMD MI355X occupancy 的長文:占用率不是黑盒,而是由 VGPR、SGPR、LDS、workgroup slot 這四個資源誰先用完決定的,關鍵洞見是那 512 條的 VGPR 檔案是一般暫存器和 accumulator 共用、不是兩個獨立池。文中還做了一個微基準,獨立改變指令級平行度與占用率,發現 matrix core 在占用率掉到一小截時仍維持約 97% 峰值。想搞懂 GPU 為什麼跑不滿,這是難得攤開算式的一課。

read source → rocm

#10

Multi-LCB——把 LiveCodeBench 擴到 12 種語言

LiveCodeBench 是評 LLM 寫程式的熱門基準,但它只測 Python。Multi-LCB 把 LCB 的題目轉成包含 Python 在內的 12 種語言、保留原本的汙染控制與評測協定,再拿 24 個 LLM 去跑。結果揭露了模型對 Python 的過擬合、特定語言的資料汙染,以及跨語言表現的巨大落差——換個語言,能力就露餡。

read source → benchmarks

#02

核心裡的 Swift——還沒人呼叫,卻已鏈進去

有人逆向了 macOS 的 kernelcache,發現 Apple 已經把 Embedded Swift 的 runtime 靜態鏈進 pthread 與 Libm 這兩個 kernel extension——37 個 Swift 符號躺在那裡,啟動時載入,目前卻沒有任何核心元件呼叫它。核心本體(Mach、BSD、IOKit)還是純 C/C++,但這個「已就位、待命中」的 runtime,像是某個 KernelKit 計畫的前置。對追蹤作業系統演化的人,這是一個值得記住的訊號。

read source → deep read swift

#06

Linux 的 Restartable Sequences 是什麼

rseq(restartable sequences)讓 user space 程式能察覺自己被搶佔、然後重跑一小段臨界區,藉此在不上重鎖的情況下做 per-CPU 的快速操作,malloc 一類的實作能因此受益。這是個存在已久卻少被講清楚的核心機制,gslin 這篇順著最近的討論把它的用途與限制整理了一遍。對在意併發效能、想少碰鎖的人值得一讀。

read source → linux

#08

OCaml 5.5.0 釋出

OCaml 5.5.0 在 6 月 19 日、Pascal 生日當天釋出。這版的重頭戲集中在型別與模組系統:module-dependent functions 讓模組能當輕量的 functor 參數、higher-rank 多型函式可以直接當引數傳,還附帶一個可重新定位的編譯器,標準庫也多了 60 幾個函式。對寫 OCaml、或想看函式語言怎麼往前演化的人,是一份值得翻的更新。

read source → ocaml

#01

ARGUS——在上萬張 GPU 裡揪出變慢的那一張

大型 LLM 訓練叢集裡,粗粒度的資源監控看得到變慢、卻定位不到根因,細粒度 profiler 又貴到不能常開。ARGUS 把觀測拆成 CPU 呼叫堆疊、框架語意、GPU kernel 執行三個維度,把每個 rank 每步的原始 kernel 事件壓掉約 3700 倍(10 MB 變 2.7 KB),總開銷壓在 2% 以下。它在超過一萬張 GPU 的生產叢集上跑了半年多,抓出 compute straggler、網路鏈路劣化、JIT 編譯卡頓等多種 fail-slow。

read source → deep read tracing

#04

AWS Graviton5 上線

AWS 推出新一代 Graviton5 處理器,首批落在 EC2 的 M9g 與 M9gd 實例上。官方數字是相較前代有 25% 到 35% 的效能提升、L3 快取放大到 5 倍,並支援 PCIe Gen6。對在 ARM 上跑服務、或在評估雲端機型 CP 值的人,這是又一輪把每瓦效能往上推的更新——值得拿自家 workload 實測一輪。

read source → arm

#05

優化 #[sqlx::test] 的重建時間

kobzol 追查為什麼改一個測試就要重編很久,發現 #[sqlx::test] 巨集會把 migration 程式碼 inline 進每個測試:350 個測試配 30 個 migration,展開後膨脹到 32 MiB,每次都得重編這坨東西。把 migration 收進一個共用的 MIGRATOR 常數、再用 migrator = "crate::MIGRATOR" 參數引用後,重建時間從約 7.5 秒降到 5 秒。一個關於巨集如何悄悄拖慢編譯的具體案例。

read source → rust

#07

Distrobox v2——用 Go 整個重寫

Distrobox 把 v2 以 release candidate 形式公開,這是一次用 Go 從頭重寫的版本。原本一大包 shell script 換成 Go 之後,程式結構、測試與維護都好做了,也帶來效能提升,並從多個分散的指令收斂成單一一支 binary,同時保持與舊版的 CLI 相容。常用 distrobox 在主機上開各種發行版容器的人,可以開始留意這次大改。

read source → containers

today's deep reads

deep · 01 ARGUS——在上萬張 GPU 的訓練叢集裡,把偷偷變慢的那一張揪出來 deep · 02 核心裡的 Swift——Apple 把一個還沒人呼叫的 runtime 靜靜鏈進 kernel deep · 03 LLM 產的 GPU kernel 看起來對——是你的測試在說謊