Hướng dẫn Lập trình CUDA
Tài nguyên chính thức, toàn diện dành cho các nhà phát triển để học mô hình lập trình CUDA và cách viết mã hiệu suất cao chạy trên GPU của NVIDIA. Hướng dẫn này bao gồm kiến trúc nền tảng, giao diện lập trình, các tính năng phần cứng nâng cao và thông số kỹ thuật kỹ thuật.
Tổng quan khóa học
📚 Tóm tắt nội dung
Tài liệu chính thức, toàn diện dành cho các nhà phát triển để học mô hình lập trình CUDA và cách viết mã hiệu suất cao chạy trên GPU NVIDIA. Hướng dẫn này bao gồm kiến trúc nền tảng, giao diện lập trình, các tính năng phần cứng nâng cao và thông số kỹ thuật kỹ thuật.
Thành thạo nghệ thuật tính toán song song với hướng dẫn chuẩn ngành về NVIDIA CUDA.
Tác giả: Công ty NVIDIA
Ghi nhận: Bản quyền © 2007–2024 Công ty NVIDIA và các công ty liên kết. Mọi quyền được bảo lưu.
🎯 Mục tiêu học tập
- Xác định vai trò của thiết bị chủ (CPU) và thiết bị (GPU) trong hệ thống đa dạng.
- Giải thích mô hình lập trình SIMT và cấu trúc phân cấp của luồng, khối và lưới.
- Phân biệt giữa PTX (Parallel Thread Execution) và mã nhị phân (cubins), và giải thích cách biên dịch ngay lúc cần (JIT) hỗ trợ tương thích.
- Phát triển và biên dịch các hạt nhân CUDA: Viết hàm global, cấu hình thực thi bằng ký hiệu ba dấu chéo, và quản lý quy trình biên dịch NVCC.
- Tối ưu hóa bộ nhớ và di chuyển dữ liệu: Phân biệt các mô hình bộ nhớ Unified, Explicit và Mapped, và triển khai bộ nhớ trang khóa trên máy chủ để truyền tải hiệu quả.
- Quản lý thực thi song song: Sử dụng CUDA Streams, Events và Cooperative Groups để quản lý các tác vụ bất đồng bộ và đồng bộ hóa hoạt động giữa CPU và GPU.
- Thực hiện phép toán con trỏ phức tạp và xác định các điểm nghẽn kiến trúc (von Neumann so với Harvard).
- Triển khai các mẫu thực thi CUDA nâng cao, bao gồm việc khởi chạy hạt nhân phụ thuộc chương trình và truyền dữ liệu hàng loạt đa dạng.
- Sử dụng các tính năng đặc thù phần cứng như Thread Scopes, Proxy bất đồng bộ và Pipeline để tối đa hóa độ song song.
- Cấu hình và điều chỉnh hiệu suất bộ nhớ Unified bằng cách sử dụng chức năng đón trước, gợi ý sử dụng và quản lý kích thước trang.
Bài học 共 5 课时 · 预计 30.0h
Bài học
Lesson
This lesson introduces the fundamental shift from latency-optimized CPU architectures to throughput-oriented GPU computing. Students will learn to distinguish between these processing models and understand how the CUDA programming platform enables massive parallel execution for data-intensive tasks.
This lesson introduces the fundamentals of CUDA kernel development, focusing on the SIMT execution model and the use of the __global__ specifier to launch parallel functions on GPU Streaming Multiprocessors. Students will learn how to manage asynchronous kernel execution, handle device memory, and structure code to ensure effective hardware utilization.
This lesson explores the fundamental differences between von Neumann and Harvard architectures, focusing on how memory access pathways impact computational performance. Students will learn to identify the von Neumann bottleneck, understand the benefits of split-cache Harvard designs, and analyze how modern systems utilize a Modified Harvard Architecture to balance throughput with programming flexibility.
AI021: Optimization, Graphs, and Hardware Accelerators (Lesson 4) explores the shift from CPU-bottlenecked stream execution to GPU-autonomous workflows. Students will learn to utilize modern primitives like CUDA Graphs, lazy loading, and asynchronous memory prefetching to minimize host-side overhead and maximize hardware efficiency.
This lesson explores the technical reference and language extensions in CUDA, focusing on the relationship between virtual architectures (PTX) and real hardware (SASS). Students will learn to manage compute capabilities, utilize architecture-specific macros, and navigate language constraints to ensure code portability and performance.