用約 25 行 SQL 自動推匯出 FlashAttention 核心
一份演示用約 25 行只表達樸素 attention 的 SQL,自動推匯出了 FlashAttention 核心。這依賴作者正在建置的三個可移植 SQL 擴充套件:xarray-sql 把雲上 PB 級陣列資料集表示為關係表,ddx 為 SQL 加入 JAX 風格的自動微分,einfold 是面向 SQL 張量收縮的模組化查詢規劃器。作者的主張是把張量程式的邏輯層與物理層分離,用關係代數來形式化「苦澀的教訓」,並招募資料庫理論與 ML 系統交叉方向的人。
把 FlashAttention 核心的推導壓縮到約 25 行 SQL,並給出 xarray-sql、ddx、einfold 三個擴充套件分工,為加速器程式設計提供關係代數視角,對編譯器和資料庫交叉方向的研究者最有參考價值。
原標題:Show HN: Automatic deduction of FlashAttention kernel from ~25 lines of SQL
閱讀原文
| 評分 | 55 / 60(平均 57,門檻 76) |
|---|---|
| 狀態 | 未入選 |
相關報導
llama.cpp 為 Metal 新增 F16 KV 張量 API flash attention 核心
llama.cpp 合併 PR #29570,在 Metal 後端為 F16 KV 快取加入基於張量 API 的 flash attention 核心。該核心覆蓋 DK=DV=512、DK=576/DV=512、DK=192/DV=128 等配置,並支援 attention sinks、ALiBi 與 logit softcap。改動隨 b11362 建置發布,覆蓋 macOS Apple Silicon、iOS 及 Linux、Windows、Android 等多平台建置。
llama.cpp 為 IBM Z 的 ggml-zdnn 後端加入 flash attention
llama.cpp 建置 b11759 為 ggml-zdnn 後端新增 flash attention 運算元(fattn),並去掉原有的 scratch slots,改用 scratch buffer pool 統一管理臨時緩衝,文件也補上了關於 fattn 的說明。該後端面向 IBM Z 的 s390x 平台,本次改動隻影響使用 zDNN 加速的建置。
llama.cpp b11518 為 Metal 新增 128/96 Flash Attention 核心
llama.cpp 發布 b11518,Metal 後端加入 128 與 96 兩檔 Flash Attention 核心,並接受所有已編譯的維度組合(#30209)。該版本同時提供 macOS/iOS、Linux、Android、Windows 與 openEuler 的預編譯產物,覆蓋 CPU、Vulkan、CUDA 12/13、ROCm 10.0、SYCL、OpenVINO 及 Snapdragon 的 Adreno GPU 與 Hexagon NPU;
llama.cpp SYCL 新增量化 KV 快取的 DPAS flash attention 核心
llama.cpp 的 SYCL 後端新增 DPAS flash attention 核心,解碼與小批次(1 到 31 個 query token)可直接在 q4_0、q8_0 的 KV 塊上執行,不必做標量反量化或每次呼叫都把整個快取轉成 f16。Q.K 在 XMX 上使用 s8×s4 與 s8×s8 DPAS,V.P 仍保持 f16;覆蓋 head size 64 到 512、最多 32 的 GQA 與 attention sinks,prompt 階段仍走原有核心。
llama.cpp 將無快取注意力的 KV 維度填充到 256,修復 Flash Attention 回退 CPU
llama.cpp b11576 把無快取注意力路徑的 KV 維度填充到 256,修復了該路徑下 Flash Attention 回退 CPU 的問題。