⚡ Lập trình CUDA và tối ưu kernel 24 bài viết · 8 chương
Module 2: Lập trình CUDA và tối ưu kernel
Bắt đầu từ CUDA cơ bản, đi qua các kernel kinh điển (Reduce, GEMM, Softmax, Attention), rồi đến trình biên dịch AI và công cụ profiling.
Bắt đầu họcMục lục
Dựng môi trường phát triển CUDA, hiểu mô hình lập trình Grid/Block/Thread và mô hình bộ nhớ, viết CUDA kernel thực dụng đầu tiên
Mô hình thực thi Warp, tối ưu truy cập bộ nhớ, tinh chỉnh Occupancy và cơ chế đồng bộ—xây phương pháp tối ưu hiệu năng CUDA cốt lõi
Ba phiên bản tối ưu dần của Reduce (naive, tree reduce trên shared memory, Warp Shuffle) để nắm phương pháp tối ưu toán tử CUDA từng bước
Từ nhân ma trận naive đến tiling Block-Warp-Thread, truy cập vector hóa, loại bỏ Bank Conflict và double buffering — nắm trọn phương pháp tối ưu CUDA GEMM
Hiện thực Softmax ổn định số và Online Softmax, nắm nguyên lý và thực hành fusion toán tử
Nguyên lý và hiện thực FlashAttention V1/V2/V3, cùng Flash-Decoding và hiện thực CUDA PagedAttention cho giai đoạn Decode
Mô hình lập trình Block-level của Triton, chế độ biên dịch torch.compile, cùng vai trò và khác biệt của TVM/XLA
Nsight Systems, Nsight Compute và PyTorch Profiler—ba công cụ cốt lõi để chẩn đoán hiệu năng có hệ thống
Tài nguyên thêm
Luyện tập Tự viết kernel CUDA · luyện phỏng vấn
Bài tập theo cấp độ về truy cập bộ nhớ, Reduce, Softmax, Attention, GEMM và các kernel khác, có gợi ý, danh sách tự kiểm tra và trình soạn mã ngay trên trình duyệt
Luyện tập LeetGPU
LeetCode dành cho lập trình GPU. Bài tập kernel chia theo mức easy, medium, hard, giải được bằng CUDA, Triton, PyTorch và nhiều cách khác. Không cần GPU trên máy, có thể xem PTX/SASS và bảng xếp hạng hiệu năng.
Gợi ý học
Yêu cầu trước
Module kiến thức nền, đặc biệt là chương 5 về phần cứng GPU
- Nên học xong chương phần cứng GPU trong module kiến thức nền trước.
- Mỗi chương về kernel đều có mã đi kèm. Hãy tự chạy và sửa thử.
- Công cụ profiling được dùng xuyên suốt module, nên làm quen sớm.