Đề cương khóa học

Giới thiệu

  • Lập trình GPU là gì?
  • Tại sao sử dụng CUDA với Python?
  • Các khái niệm chính: Threads, Blocks, Grids

Tổng quan về Đặc điểm và Kiến trúc của CUDA

  • So sánh kiến trúc GPU và CPU
  • Tìm hiểu SIMT (Single Instruction, Multiple Threads)
  • Mô hình lập trình CUDA

Cài đặt Môi trường Phát triển

  • Cài đặt CUDA Toolkit và các trình điều khiển
  • Cài đặt Python và Numba
  • Thiết lập và kiểm tra môi trường

Những nguyên lý cơ bản về Lập trình Song song

  • Giới thiệu về thực thi song song
  • Tìm hiểu threads và các cấp độ threads
  • Làm việc với warps và đồng bộ hóa

Làm việc với Trình biên dịch Numba

  • Giới thiệu về Numba
  • Viết kernel CUDA bằng Numba
  • Tìm hiểu @cuda.jit decorators

Xây dựng Kernel CUDA Tùy chỉnh

  • Viết và khởi động một kernel cơ bản
  • Sử dụng threads cho các thao tác element-wise
  • Quản lý kích thước grid và block

Quản lý Bộ nhớ

  • Các loại bộ nhớ GPU (global, shared, local, constant)
  • Chuyển dữ liệu giữa host và device
  • Tối ưu hóa việc sử dụng bộ nhớ và tránh điểm nghẽn

Những chủ đề Nâng cao trong Tăng tốc GPU

  • Bộ nhớ chia sẻ và đồng bộ hóa
  • Sử dụng streams cho thực thi không đồng bộ
  • Cơ bản về lập trình nhiều GPU

Chuyển đổi Ứng dụng dựa trên CPU thành GPU

  • Hồ sơ mã nguồn CPU
  • Xác định các phần có thể song song hóa
  • Di chuyển logic sang kernel CUDA

Gỡ lỗi

  • Debug ứng dụng CUDA
  • Các lỗi phổ biến và cách giải quyết
  • Công cụ và kỹ thuật kiểm thử và xác nhận

Tóm tắt và Bước tiếp theo

  • Xem lại các khái niệm chính
  • Các thực hành tốt nhất trong lập trình GPU
  • Nguồn tài nguyên để tiếp tục học tập

Yêu cầu

  • Kinh nghiệm lập trình Python
  • Kinh nghiệm sử dụng NumPy (ndarrays, ufuncs, etc.)

Đối tượng

  • Nhà phát triển
 14 Giờ

Số người tham gia


Giá cho mỗi học viên

Đánh giá (1)

Các khóa học sắp tới

Các danh mục liên quan