Chuyển đến nội dung chính
⚡ 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ọc

Mụ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
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

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.