TopGit
Đánh giá repo GitHub

SageAttention: Thư viện Attention lượng tử hóa

thu-ml/SageAttention
STopGit review image for thu-ml/SageAttention
Review by Topgit.dev for thu-ml/SageAttention, with GitHub repository stats and README context.
Nhận định nhanh

SageAttention đáng dùng nếu bạn chạy LLM hoặc video transformer trên phần cứng Ampere/Ada/Hopper và cần tăng tốc 2-5 lần mà không mất độ chính xác. Lưu ý: CUDA 12+ bắt buộc, v1 trên pip dùng kernel Triton chậm hơn nên bạn cần v2++, và với công việc nhạy cảm độ chính xác thì dùng SageAttention2 — chính đội ngũ cũng khuyên thế — vì v3 đánh đổi độ chính xác lấy throughput qua FP8.

Sao
★ 4.0k
Fork
⑂ 535
Người đóng góp
👥 17
Ngôn ngữ
Cuda
Giấy phép
Apache-2.0
Chủ đề
AI Tools
Cập nhật
Jan 2026
Trang chủ
GitHub

SageAttention là gì?

SageAttention là thư viện CUDA/Triton ba thế hệ cho attention lượng tử hóa, tăng tốc suy luận transformer 2-5 lần so với FlashAttention trên GPU hiện đại. Nó áp INT8 smoothing cho tích QK^T và tích lũy FP8 hoặc FP16 cho tích PV, với kernel được điều chỉnh cho phần cứng Ampere, Ada, Hopper và Blackwell. API đơn giản qua hàm `sageattn` gọi được từ PyTorch, mỗi phiên bản exposes các trade-off precision/accuracy khác nhau.

Tính năng chính và kiến trúc GPU được hỗ trợ

  • ✓Lượng tử hóa INT8 cho QK^T với granularity theo token, theo head, hoặc theo thread (SageAttention2)
  • ✓Lượng tử hóa FP8 cho PV với accumulator FP16 — tránh suy giảm độ chính xác mà FP8 tích lũy nguyên thủy gây ra trên Hopper
  • ✓Chiến lược tích lũy hai tầng cho PV trên Hopper WGMMA, giữ nguyên độ chính xác ở precision FP8
  • ✓Làm mượt outliers trong attention logits trước khi lượng tử hóa, ngăn lỗi lớn mà INT8 rounding tiêu chuẩn gây ra
  • ✓Backend Triton (v1 pip) và backend CUDA (v2++), tự chọn kernel qua `sageattn`
  • ✓Biến thể sparse attention SpargeAttn mở rộng kernel lượng tử hóa cho arbitrary block-sparse patterns mà không cần training
  • ✓Hỗ trợ sequence có độ dài biến đổi qua `sageattn_varlen` và native group-query attention
  • ✓RTX 5090 đạt 560 TOPS trên attention kernel — nhanh hơn 2.7 lần so với FlashAttention2 trên cùng phần cứng
Số sao GitHub của repo này thay đổi thế nào theo thời gian. Nguồn: star-history.com.Xem lịch sử sao ↗

Dùng SageAttention trong code của bạn

import torch from sageattention import sageattn # Standard HND layout (batch, heads, seq, dim) q = torch.randn(1, 16, 512, 64, dtype=torch.float16, device='cuda') k = torch.randn(1, 16, 512, 64, dtype=torch.float16, device='cuda') v = torch.randn(1, 16, 512, 64, dtype=torch.float16, device='cuda') output = sageattn(q, k, v, tensor_layout='HND', is_causal=False) # Drop-in SDPA replacement for compatible models: # torch.nn.functional.scaled_dot_product_attention = sageattn Với video model kiểu CogVideoX, README cho thấy swap SDPA trực tiếp hoạt động. Với image và video DiT model, path được khuyên là sửa trực tiếp Attention class (ví dụ trong example/modify_mochi.py).

Cài đặt SageAttention

pip install sageattention==2.2.0 --no-build-isolation Để có feature v2++ mới nhất bao gồm hỗ trợ Blackwell: compile từ source bằng cách clone repo, rồi chạy python setup.py install. Đặt EXT_PARALLEL=4, NVCC_APPEND_FLAGS="--threads 8", và MAX_JOBS=32 để compile nhanh hơn. Lưu ý rằng sageattention v1 từ pip dùng kernel Triton chậm hơn — compile từ source mới kích hoạt được hiệu năng CUDA thực sự.

Điểm mạnh

  • ✓Tăng throughput 2-5 lần so với FlashAttention trên language, image và video model trong benchmark sẵn sàng production
  • ✓Độ chính xác end-to-end không mất mát được báo cáo trên CogVideoX-5B (H20), DiT (ImageNet), và các biến thể LLaMA
  • ✓Ba tier precision cho phép chọn điểm phù hợp trên curve độ chính xác-throughput: FP16 PV để an toàn, FP8 PV để nhanh, FP4 PV để throughput tối đa
  • ✓Giấy phép Apache 2.0 cho phép triển khai thương mại không giới hạn
  • ✓Được chấp nhận tại các venue ML hàng đầu (ICLR, ICML, NeurIPS Spotlight) — không phải dự án làm cuối tuần
  • ✓Biến thể sparse SpargeAttn mở rộng kernel lượng tử hóa cho arbitrary sparse patterns mà không cần retrain

Hạn chế và yêu cầu về GPU

  • △Bắt buộc CUDA 12+ (12.8 cho Blackwell, 12.4 cho FP8 Ada, 12.3 cho FP8 Hopper, 12.0 cho Ampere) — toolchain CUDA cũ không dùng được
  • △Đường đi FP4 PV của SageAttention3 đánh đổi độ chính xác lấy throughput; README rõ ràng khuyên dùng v2 cho ứng dụng nhạy cảm precision
  • △v1 từ pip dùng kernel Triton nên chậm hơn v2++ — cần compile từ source mới có được con số tốc độ mà benchmark công bố
  • △Không phải mọi model đều chấp nhận global SDPA swap; image/video model thường cần sửa targeted Attention class thay vì gán `F.scaled_dot_product_attention = sageattn`
  • △Python 3.9+, torch 2.3.0+, và triton 3.0+ là hard requirement — stack cũ không chạy được
  • △Hỗ trợ Blackwell (RTX 5090) cần CUDA 12.8, yêu cầu tương đối mới hạn chế khả năng chạy trên nhiều môi trường

SageAttention so với FlashAttention

FlashAttention2 — chậm hơn SageAttention nhưng đã được kiểm chứng thực tế ở nhiều môi trường triển khai hơnFlashAttention3 — throughput H20 tương đương (12'07'' vs 12'14'' trên CogVideoX-5B) nhưng độ chính xác thấp hơn SageAttention2FlashAttention3-FP8 — throughput thuần túy nhanh nhất trên Hopper nhưng chỉ có FP8, đánh đổi độ chính xác mà accumulator FP16 của SageAttention2 bảo toànxFormers memory_efficient_attention — general-purpose, tương thích model rộng hơn, nhưng chậm hơn các kernel lượng tử hóa chuyên dụng

Ai nên dùng SageAttention?

Dùng SageAttention nếu bạn serving hoặc fine-tune LLM, model video generation (CogVideoX, Mochi), hoặc image model dạng DiT trên GPU Ampere, Ada, hoặc Hopper và kernel attention là nút thắt cổ chai. Nó tỏa sáng khi bạn có context dài hoặc batch size lớn. Bỏ qua nếu bạn dùng phần cứng cũ, không đáp ứng được CUDA 12+, hoặc cần giữ nguyên kết quả bit-exact — và với pipeline production nhạy cảm độ chính xác, mặc định dùng SageAttention2 thay vì v3.

Câu hỏi thường gặp

Nên dùng phiên bản SageAttention nào cho tác vụ cần độ chính xác cao?

Dùng SageAttention2 (phiên bản 2.2.0 qua pip hoặc compile từ source). README nêu rõ SageAttention2 chính xác hơn v3, và khuyên dùng v2 cho ứng dụng nhạy cảm precision. Đường đi FP4 PV của SageAttention3 đánh đổi độ chính xác lấy throughput.

SageAttention hỗ trợ những GPU nào (Ampere, Ada, Hopper, Blackwell)?

SageAttention hỗ trợ Ampere (A100, RTX 3090/4090), Ada (A800, L20/L40), Hopper (H100, H800, H20), và Blackwell (RTX 5090, cần CUDA 12.8). Việc chọn kernel là tự động qua API sageattn.

Có thể dùng SageAttention thay thế drop-in cho scaled_dot_product_attention không?

Được với nhiều model — gán torch.nn.functional.scaled_dot_product_attention = sageattn là chạy. README cho thấy cách này hoạt động với video model như CogVideoX. Với image và video DiT model, sửa trực tiếp Attention class được khuyên (có ví dụ trong repo).

Cần Python và CUDA phiên bản nào để cài SageAttention?

Yêu cầu Python 3.9+, torch 2.3.0+, và triton 3.0+. CUDA tùy GPU: 12.0 cho Ampere, 12.3 cho FP8 trên Hopper, 12.4 cho FP8 trên Ada, và 12.8 cho Blackwell.

SageAttention xử lý sequence có độ dài biến đổi và group-query attention thế nào?

SageAttention hỗ trợ sequence có độ dài khác nhau trong một batch qua sageattn_varlen, dùng INT8 cho QK^T và FP16 cho PV với backend Triton. Group-query attention được hỗ trợ native bởi API sageattn.

SageAttention có miễn phí cho sử dụng thương mại theo Apache 2.0 không?

Có. SageAttention được cấp phép Apache 2.0, cho phép sử dụng thương mại, sửa đổi và phân phối lại với điều kiện ghi nhận nguồn.

Bài toán mà nó giải quyết

Phép tính attention là nút thắt cổ chai chính trong transformer có context dài, và attention FP16/FP32 nguyên thủy scale kém theo sequence length. FlashAttention giải quyết được memory wall nhưng bỏ qua phần lượng tử hóa gây áp lực độ chính xác. SageAttention lấp khoảng trống đó bằng cách lượng tử hóa QK^T sang INT8 và PV sang FP8, ép thêm throughput từ tensor core mà không gây suy giảm độ chính xác như tính toán low-precision nguyên thủy.

Trường hợp sử dụng tốt nhất

  • •Suy luận LLM context dài trên H100/H800/H20 với tích lũy FP8 PV
  • •Tăng tốc suy luận video generation (CogVideoX, Mochi) qua thay attention DiT
  • •Image transformer (DiT-based) với INT8 QK^T và FP16 PV cho tăng tốc không mất accuracy
  • •Batch inference với sequence có độ dài khác nhau trong cùng một batch
  • •Serving các mô hình lượng tử hóa mà attention computation là nút thắt cổ chai
  • •Triển khai trên GPU Blackwell với SageAttention2++ nhắm vào RTX 5090

Repo liên quan

Nguồn & ghi công

Repository: thu-ml/SageAttention on GitHub. Stars and fork counts are displayed live from GitHub metadata.

Dữ liệu GitHub · đồng bộ lần cuối 28 thg 9, 2026Đánh giá bởi Henry
← Về TopGit

Muốn nghe thêm một ý kiến về SageAttention?

Hỏi một AI đọc được trang này — một cú bấm là có ngay nhận định về SageAttention.

GitHub