vatt'ghern jaskier's ballads

2026.08.08 —— 今日 10 則

TODAY'S THREAD 今天的共通處是「儀表板量的不是你以為的那件事」:NCCL 卡死的時候 GPU utilization 仍然讀 100%,真正會說話的是主機板功耗;Cloudflare 把 bot 判定從一次通過改成整段 session 持續評估,因為單點檢查等於發免費通行證;而 pgrust 把每列一次的執行搬成每批 1024 列,讓拖慢分析查詢的真正主角現形:逐行呼叫的解譯器自己。另一側是三件把邊界重新畫過的事——Zig 的 Io.Threaded 讓阻塞的 syscall 也能被取消、celld 讓 bucket 直接當 coordinator、而 PHP 與 Lua 的 log() 因為底數是不是 10 走了兩條不同的計算路徑,把單調性弄丟了。

10 items ai · 2 systems · 2 infra · 2 web · 2 backend · 2
0 / 10 read
#01

看功耗,不要看利用率

一份在 16 張 NVIDIA B300 上對 Qwen3-32B 做全參數微調的現場報告,作者自述是這張加速卡上最早公開的實測帳之一。最值得抄走的是那張用主機板功耗分辨 compute、通訊、餵資料不及與 deadlock 的判讀表——因為 NCCL 卡住的時候,utilization 讀數仍然是 100%。兩個反直覺的結果同樣有用:NFS 直讀與預先 tokenize 的快取都落在每秒約 53k tokens,資料集塞得進 page cache,瓶頸其實在算力;而先前被歸咎於儲存的 throughput 崩塌,重新診斷後是 CPU 與 NFS 的競用。

read source → deep read gpu

#05

選擇性信任:MIST 給了一把量尺

這篇把「模型被誤導」重新定義成選擇性信任的問題:一個把所有 context 都忽略的模型看起來很穩健,實際上在 context 值得相信的時候一樣沒用。作者提出人工標注的 MIST 基準,同一道推理題渲染成 clean、misleading、correct-context、irrelevant-context 四種對照條件,再用 SC2W 這個配對指標數「誤導訊號把原本答對的題目翻成錯」發生了幾次。他們的觀察是這種易感性在受測模型上普遍存在,而 SCOPE 用四種條件均衡配對的 DPO 目標把 SC2W 明顯壓下來,同時保住 context 乾淨、正確或無關時的正確率。

read source → llm

#02

阻塞的 syscall 也能被取消

Zig 新的 Io 介面有一個 Threaded 實作,用的是最普通的阻塞式 syscall,卻仍然支援真正的取消——matklad 說這個組合他想要很久了。做法是共享記憶體裡的一個旗標加上 POSIX signal:要取消時先設旗標,再對那條執行緒送 signal,syscall 以 EINTR 回來之後執行緒自己判斷該重試還是承認被取消,Windows 上對應的是 NtCancelSynchronousIoFile。另一個設計重點是 Io 把「可以並行」與「必須並行」分開,所以執行緒池可以重用,不必每次都付出建立執行緒的代價。

read source → deep read concurrency

#06

換一個底數,log 反而變大了

數學上 a > b > 1 時 log_a(x) 應該小於 log_b(x),但在 PHP 與 Lua(LuaJIT 除外)裡不一定成立。作者給的反例是 x = 2.93、a = 10 + 2^-49、b = 10:這兩個底數的自然對數在這兩個語言裡會捨入成同一個值,最後算出來的結果卻不同。原因是這兩個實作並非一律走 ln(x)/ln(a),底數是 2 或 10 時直接呼叫 libm 的 log2log10,兩條計算路徑的誤差方向不同,單調性就這樣斷了。

read source → systems

#07

裝置怎麼自己找到加密 DNS

DDR 讓裝置去問自己正在用的那台 resolver 有沒有加密入口:查一個保留名稱 _dns.resolver.arpa,resolver 回來的答案帶著主機名、連接埠、協定與偏好順序,裝置挑一個 DoH、DoT 或 DoQ 的端點接上去,之後的查詢就是加密的。作者把安全邊界也講清楚了——從明文 DNS 起手的升級是 opportunistic 的,網路可以竄改或拿掉這段回覆而不被發現;反過來,已經在加密連線上發問的裝置可以沿用那條連線的憑證驗證結果。文中順帶提到 Windows 11 與 Apple 裝置在加入網路時就會自動送出這個問題。

read source → networking

#08

一次通過,不等於整場都是人

Cloudflare 把 bot 判定從單點的風險評估改成整段 session 的持續信任評估。BotBase 是一份把所有已知 bot 與 agent 都收進來的名錄,不只收核可的那些,判定好行為的標準是誠實自我宣告加上不濫用;Precursor 則是透過 CDN 注入的 JavaScript,看游標的加速度、自我修正與節奏這類使用者不會刻意控制的細節。他們給的數字是 24 小時內在 73,438 個 zone 上記錄了 2 億 600 萬次 Precursor 評估事件,而可疑行為經常出現在 session 中段,同一段 session 也會在人與 agent 之間切換。

read source → security

#03

把 Durable Objects 搬回自己的機房

celld 是 Deno Land 開源的自架 Durable Objects:V8 執行程式碼、SQLite 存單一 cell 的狀態、LTX 負責把狀態持續複製到 S3 相容的 bucket。設計上最乾脆的一句是「the bucket is the coordinator」——沒有成員協定、沒有失效偵測器、沒有共識演算法,所有權租約靠對 bucket 的 compare-and-swap 原子寫入決定。官方列出的數字是 RPO 為 0、region 內的持久化寫入約 90 毫秒、節點掉了之後約 20 秒完成 failover 且不掉資料,而一台 8GB 節點約可常駐 1,000 個 cell。

read source → durable-execution

#09

為 agent 寫的瀏覽器,跑在 Workers 上

Cloudflare 的 Kitesurf 是一顆完全跑在 Workers V8 isolate 裡的瀏覽器:Engine 負責 CDP 與 session、PageScript 用 Rust 編成 WASM 的 Blitz 與 Stylo 做解析與 DOM、PageRenderer 用 Parley 與 blitz-paint 產出像素。它刻意砍掉分頁、擴充套件、60fps 這些只對人有意義的東西,換來的是截圖 CPU 380 毫秒對 Chromium 的 1,173 毫秒、記憶體 57.8 MiB 對 271.0 MiB。代價也寫得誠實——純執行速度上 Chromium 因為 JIT 仍快 1.7 到 1.8 倍,而影片播放、WebGL、bot challenge 與長時間的登入 session 都不在適用範圍。

read source → wasm

#04

pgrust 的十倍:批次、融合、SIMD

同一句 5 億列的 SUM,原生 Postgres 大約要 20 秒。作者把 pgrust 的執行引擎從 Volcano 模型的 1.3 秒開始往下推:一次處理 1024 列把每列的函式呼叫開銷攤掉,變成 480 毫秒;把 sequential scan 與聚合融合成單一節點、省掉中間緩衝的複製,變成 358 毫秒;再用 ARM64 NEON 的四個累加器一次吃 8 個值,落到 135 毫秒,機器是 AWS c8g.4xlarge 的 Graviton4。pgrust 0.2 對外宣稱的是 ClickBench 上 300 倍於 Postgres、OLTP 上快 30%。

read source → deep read postgres

#10

一疊 PR,整疊合或一層一層合

GitHub 原生的 stacked pull requests 進入 public preview,把一次大改動拆成有順序的多個 PR,每一層以下一層為 base。review 時只看該層自己的 diff,旁邊有一張 stack map 顯示層與層的關係,各層可以平行審而不互相擋;合併時整疊一次併入或一層一層併入都可以,部分合併之後其餘層會自動 rebase。既有的 branch protection 與 required check 照常生效,唯一還沒到位的是 merge queue,官方說會在接下來幾週陸續開放。

read source → code-review

today's deep reads

deep · 01 看功耗,不要看利用率 deep · 02 阻塞的 syscall 也能被取消 deep · 03 pgrust 的十倍:批次、融合、SIMD