Lập trình Các Bộ Xử Lý Song Song Khổng Lồ: Tiếp cận Thực Hành
Khóa học này cung cấp một giới thiệu toàn diện về tính toán GPU và lập trình song song sử dụng môi trường CUDA C. Nó bao gồm kiến trúc GPU, tính song song dữ liệu, quản lý luồng, tối ưu hóa bộ nhớ và các vấn đề hiệu suất nâng cao, được minh họa thông qua các ví dụ thực tế như tái tạo MRI và trực quan hóa phân tử.
Tổng quan khóa học
Tóm tắt Nội dung
Khóa học này cung cấp một giới thiệu toàn diện về tính toán GPU và lập trình song song bằng môi trường CUDA C. Nó bao gồm kiến trúc GPU, tính song song dữ liệu, quản lý luồng, tối ưu hóa bộ nhớ và các yếu tố hiệu suất nâng cao, được minh họa thông qua các ví dụ thực tế như tái tạo MRI và trực quan hóa phân tử.
Chinh phục nghệ thuật tính toán song song hiệu suất cao với hướng dẫn thực hành, trực tiếp về CUDA và kiến trúc GPU.
Tác giả: David B. Kirk, Wen-mei W. Hwu
Lời cảm ơn: Ian Buck, John Nickolls, đội NVIDIA DevTech, Jensen Huang, David Luebke, Bill Bean, Simon Green, Mark Harris, Manju Hedge, Nadeem Mohammad, Brent Oster, Peter Shirley, Eric Young, và Cyril Zeller.
Mục tiêu Học tập
- Phân biệt triết lý thiết kế và xu hướng hiệu suất giữa các CPU đa lõi và GPU nhiều lõi.
- Nhận diện các thành phần chính trong kiến trúc GPU hiện đại, bao gồm các đơn vị xử lý luồng (SMs) và cấu trúc bộ nhớ.
- Áp dụng Luật Amdahl để tính tốc độ tăng theo lý thuyết và xác định ảnh hưởng của các điểm nghẽn tuần tự.
- So sánh sự khác biệt kiến trúc giữa các đường truyền cố định và mảng xử lý có thể lập trình thống nhất.
- Giải thích vai trò của "GPGPU" như một bước chuyển tiếp và những hạn chế của mô hình lập trình shader ban đầu.
- Phân tích cách các tính năng phần cứng như thao tác nguyên tử, đồng bộ rào chắn và hỗ trợ số đôi đã thúc đẩy quá trình chuyển đổi sang tính toán tổng quát quy mô lớn.
- Nhận diện và tận dụng tính song song dữ liệu trong các thuật toán nhân ma trận.
- Triển khai quản lý bộ nhớ thiết bị bao gồm cấp phát, truyền dữ liệu giữa host và device, và giải phóng.
- Xây dựng và khởi chạy các kernel CUDA sử dụng chỉ số luồng và cấu hình lưới/khối phù hợp.
- Thiết kế các hiệ thống luồng đa chiều (lưới và khối) để ánh xạ các cấu trúc dữ liệu phức tạp lên phần cứng GPU.