FlashAttention-4: khi thuật toán chạy đua với GPU

FlashAttention-4: khi thuật toán chạy đua với GPU

GPU thế hệ mới mạnh hơn, nhưng attention mechanism lại là nút thắt cổ chai. FlashAttention-4 viết lại luật chơi cho inference.

Mua siêu xe rồi... đậu trong garage

Mình sẽ mở đầu bằng một nhận định có vẻ ngược đời: GPU càng mạnh, lãng phí càng lớn.

Vô lý? Hình dung thế này: team bạn vừa nâng cấp lên NVIDIA Blackwell — thế hệ GPU mạnh nhất hiện tại. Inference chạy nhanh hơn một chút, ai cũng gật gù. Nhưng thật ra, phần lớn sức mạnh của con GPU đó đang ngồi chơi xơi nước, vì thuật toán attention — cái lõi tính toán của mọi LLM — chưa biết cách khai thác hết kiến trúc phần cứng mới.

Giống như bạn mua xe thể thao 500 mã lực rồi chạy nội thành Hà Nội giờ cao điểm. Xe tốt, nhưng đường không cho phép nhấn ga.

FlashAttention-4 vừa ra mắt, và nó muốn giải quyết đúng cái nghịch lý này.

Con số 1.3× — khiêm tốn mà không hề khiêm tốn

Theo benchmark từ Together AI, FlashAttention-4 đạt tốc độ nhanh hơn đến 1.3× so với cuDNN trên kiến trúc Blackwell. Nhìn qua thì 30% có vẻ không wow, nhưng nói cho vuông: ở tầng kernel — nơi mọi thứ đã tối ưu đến từng nanosecond — nhích thêm 30% là chuyện cực kỳ đáng kể. Đây không phải tối ưu ở tầng application, đây là tối ưu ở tầng sát phần cứng nhất.

Điểm đáng chú ý hơn cả con số nằm ở triết lý thiết kế: co-design — thiết kế thuật toán và phần cứng cùng lúc.

Các phiên bản FlashAttention trước viết thuật toán trước, rồi tìm cách nhét vào GPU. FlashAttention-4 làm ngược — nhìn vào kiến trúc Blackwell với tỷ lệ compute/memory bandwidth không đối xứng (asymmetric scaling), rồi thiết kế thuật toán xoay quanh đặc điểm đó. Pipeline được chia nhỏ, các đơn vị tính toán chạy song song thay vì ngồi chờ nhau.

Nếu bạn quen CI/CD: tưởng tượng thay vì chạy build → test → deploy lần lượt, bạn cho build module A song song với test module B, trong khi deploy module C đã pass từ trước. FlashAttention-4 áp dụng tư duy tương tự, nhưng ở cấp tensor operation trên silicon.

Nếu bạn đang cầm invoice GPU...

Kịch bản 1 — Startup 5 người serve model 70B:

Giả sử team bạn đang self-host Llama 3 70B trên một cụm GPU thuê. Hóa đơn GPU chiếm phần lớn chi phí vận hành. Mỗi request inference mất vài giây, throughput bị giới hạn bởi attention computation.

Với FlashAttention-4 tích hợp vào serving stack, throughput tăng đáng kể mà không cần thêm GPU. Cùng số máy, serve được nhiều user hơn — hoặc giảm bớt GPU mà giữ nguyên chất lượng dịch vụ. Tiền tiết kiệm từ infrastructure? Đủ trả lương thêm một engineer.

Kịch bản 2 — Tech lead đang cân nhắc Blackwell vs H100:

Bạn lên kế hoạch nâng cấp infrastructure. H100 đã quen, Blackwell mới ra. Có đáng upgrade?

Nếu chỉ nhìn raw spec, Blackwell mạnh hơn. Nhưng nếu software stack chưa khai thác được kiến trúc mới, bạn trả giá premium cho sức mạnh không dùng đến. FlashAttention-4 là miếng ghép quan trọng để Blackwell thật sự "chạy đúng tốc độ" — khiến quyết định upgrade có ROI thực tế, không chỉ đẹp trên giấy.

Cái bẫy "cứ nâng cấp phần cứng là xong"

Mình từng thấy một team mua GPU mới, chạy benchmark synthetic đẹp lung linh, nhưng deploy model thật với context dài thì tốc độ gần như... không khác mấy. Lý do? Attention mechanism vẫn dùng implementation cũ, chẳng biết tận dụng memory hierarchy mới là gì.

Tư duy này phổ biến hơn bạn nghĩ: đổ tiền vào phần cứng mà quên kiểm tra phần mềm có theo kịp không. Giống nâng cấp đường cao tốc lên 6 làn, nhưng xe cộ vẫn chen nhau trên 2 làn cũ vì chưa ai mở dải phân cách.

Bẫy thứ hai: version mới chưa chắc dành cho bạn. FlashAttention-4 tối ưu cho Blackwell. Trên GPU thế hệ trước, FlashAttention-2 hoặc 3 vẫn là lựa chọn đúng đắn hơn. Đừng nâng version chỉ vì số lớn hơn — kiểm tra danh sách phần cứng hỗ trợ trước đã.

Chiều nay, thử gì được?

Bạn không cần có Blackwell trong tay để bắt đầu. Bốn việc làm được trong một buổi chiều:

  1. Kiểm tra attention backend hiện tại. Nếu đang dùng vLLM, TGI (Text Generation Inference), hay bất kỳ serving framework open-source nào — xem nó đang dùng FlashAttention version mấy. Nhiều framework tích hợp FlashAttention-2 mặc định, nhưng có khi bạn chưa enable đúng flag.
  1. Lập baseline. Gửi 100 request với context length khác nhau (512, 2048, 8192 tokens), ghi lại latency p50/p95. Đây là số liệu so sánh sau khi thay đổi bất kỳ thứ gì.
  1. Đọc release notes FlashAttention trên GitHub. Repo gốc của Tri Dao là open-source — kiểm tra hardware requirements cho version 4. Nếu GPU chưa hỗ trợ, ít nhất bạn biết mình đang ở đâu trên roadmap.
  1. Mở rộng tầm nhìn. Together AI cũng vừa giới thiệu ATLAS — hướng tiếp cận khác cho inference acceleration với runtime-learning — và Batch Inference API giảm chi phí cho workload không cần real-time. Nếu đang tối ưu chi phí, đây là hai thứ đáng đánh giá song song.

Phần cứng mới, luật chơi mới

Điều mình thấy thú vị nhất không phải con số 1.3×. Mà là xu hướng: phần mềm và phần cứng không còn phát triển độc lập nữa.

Thời kỳ "ra GPU mới → phần mềm tự nhanh hơn" đã qua. Mỗi thế hệ GPU giờ có kiến trúc riêng, cần thuật toán thiết kế riêng để khai thác. FlashAttention-4 là ví dụ điển hình — nó không nhắm đến việc chạy tốt hơn trên mọi GPU, mà chạy tốt nhất trên đúng GPU mà nó được thiết kế cho.

Như mình đã chia sẻ trong bài về self-host trợ lý AI và pipeline AI — quyết định infrastructure không bao giờ chỉ là chọn phần cứng. Nó luôn là bài toán phần cứng × phần mềm × chi phí vận hành. FlashAttention-4 nhắc mình rằng: tối ưu đúng tầng, đúng chỗ, đôi khi quan trọng hơn mua thêm máy.

GPU mới không tự làm app bạn nhanh hơn — thuật toán mới mới làm được. Và đôi khi, đọc changelog kernel library lúc 2 giờ sáng lại là khoản đầu tư có ROI cao nhất.

---

Bụi Wire — nghiện đọc release notes lúc 2 giờ sáng

Nguồn tham khảo