Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Đề cương khóa học
Giới thiệu
- Lập trình GPU là gì?
- Tại sao nên sử dụng lập trình GPU?
- Những thách thức và sự đánh đổi của lập trình GPU là gì?
- Những framework và công cụ cho lập trình GPU là gì?
- Lựa chọn framework và công cụ phù hợp cho ứng dụng của bạn
OpenCL
- OpenCL là gì?
- Những ưu điểm và nhược điểm của OpenCL là gì?
- Thiết lập môi trường phát triển cho OpenCL
- Tạo một chương trình OpenCL cơ bản thực hiện phép cộng vector
- Sử dụng API OpenCL để truy vấn thông tin thiết bị, cấp phát và giải phóng bộ nhớ thiết bị, sao chép dữ liệu giữa host và device, khởi chạy kernel và đồng bộ hóa thread
- Sử dụng ngôn ngữ C OpenCL để viết kernel thực thi trên thiết bị và thao tác dữ liệu
- Sử dụng các hàm, biến và thư viện tích hợp của OpenCL để thực hiện các tác vụ và thao tác phổ biến
- Sử dụng các không gian bộ nhớ OpenCL, chẳng hạn như global, local, constant và private, để tối ưu hóa việc truyền dữ liệu và truy cập bộ nhớ
- Sử dụng mô hình thực thi OpenCL để kiểm soát các work-item, work-group và ND-range xác định tính song song
- Gỡ lỗi và kiểm tra các chương trình OpenCL bằng các công cụ như CodeXL
- Tối ưu hóa các chương trình OpenCL bằng các kỹ thuật như coalescing, caching, prefetching và profiling
CUDA
- CUDA là gì?
- Những ưu điểm và nhược điểm của CUDA là gì?
- Thiết lập môi trường phát triển cho CUDA
- Tạo một chương trình CUDA cơ bản thực hiện phép cộng vector
- Sử dụng API CUDA để truy vấn thông tin thiết bị, cấp phát và giải phóng bộ nhớ thiết bị, sao chép dữ liệu giữa host và device, khởi chạy kernel và đồng bộ hóa thread
- Sử dụng ngôn ngữ CUDA C/C++ để viết kernel thực thi trên thiết bị và thao tác dữ liệu
- Sử dụng các hàm, biến và thư viện tích hợp của CUDA để thực hiện các tác vụ và thao tác phổ biến
- Sử dụng các không gian bộ nhớ CUDA, chẳng hạn như global, shared, constant và local, để tối ưu hóa việc truyền dữ liệu và truy cập bộ nhớ
- Sử dụng mô hình thực thi CUDA để kiểm soát các thread, block và grid xác định tính song song
- Gỡ lỗi và kiểm tra các chương trình CUDA bằng các công cụ như CUDA-GDB, CUDA-MEMCHECK và NVIDIA Nsight
- Tối ưu hóa các chương trình CUDA bằng các kỹ thuật như coalescing, caching, prefetching và profiling
ROCm
- ROCm là gì?
- Những ưu điểm và nhược điểm của ROCm là gì?
- Thiết lập môi trường phát triển cho ROCm
- Tạo một chương trình ROCm cơ bản thực hiện phép cộng vector
- Sử dụng API ROCm để truy vấn thông tin thiết bị, cấp phát và giải phóng bộ nhớ thiết bị, sao chép dữ liệu giữa host và device, khởi chạy kernel và đồng bộ hóa thread
- Sử dụng ngôn ngữ ROCm C/C++ để viết kernel thực thi trên thiết bị và thao tác dữ liệu
- Sử dụng các hàm, biến và thư viện tích hợp của ROCm để thực hiện các tác vụ và thao tác phổ biến
- Sử dụng các không gian bộ nhớ ROCm, chẳng hạn như global, local, constant và private, để tối ưu hóa việc truyền dữ liệu và truy cập bộ nhớ
- Sử dụng mô hình thực thi ROCm để kiểm soát các thread, block và grid xác định tính song song
- Gỡ lỗi và kiểm tra các chương trình ROCm bằng các công cụ như ROCm Debugger và ROCm Profiler
- Tối ưu hóa các chương trình ROCm bằng các kỹ thuật như coalescing, caching, prefetching và profiling
HIP
- HIP là gì?
- Những ưu điểm và nhược điểm của HIP là gì?
- Thiết lập môi trường phát triển cho HIP
- Tạo một chương trình HIP cơ bản thực hiện phép cộng vector
- Sử dụng ngôn ngữ HIP để viết kernel thực thi trên thiết bị và thao tác dữ liệu
- Sử dụng các hàm, biến và thư viện tích hợp của HIP để thực hiện các tác vụ và thao tác phổ biến
- Sử dụng các không gian bộ nhớ HIP, chẳng hạn như global, shared, constant và local, để tối ưu hóa việc truyền dữ liệu và truy cập bộ nhớ
- Sử dụng mô hình thực thi HIP để kiểm soát các thread, block và grid xác định tính song song
- Gỡ lỗi và kiểm tra các chương trình HIP bằng các công cụ như ROCm Debugger và ROCm Profiler
- Tối ưu hóa các chương trình HIP bằng các kỹ thuật như coalescing, caching, prefetching và profiling
So sánh
- So sánh các tính năng, hiệu suất và khả năng tương thích của OpenCL, CUDA, ROCm và HIP
- Đánh giá các chương trình GPU bằng các chuẩn đo và chỉ số
- Học các phương pháp hay nhất và mẹo cho lập trình GPU
- Khám phá các xu hướng và thách thức hiện tại và tương lai của lập trình GPU
Tóm tắt và Các bước tiếp theo
Requirements
- Hiểu biết về ngôn ngữ C/C++ và các khái niệm lập trình song song
- Kiến thức cơ bản về kiến trúc máy tính và hệ thống phân cấp bộ nhớ
- Kinh nghiệm sử dụng các công cụ dòng lệnh và trình soạn thảo mã
Đối tượng
- Các nhà phát triển muốn tìm hiểu kiến thức cơ bản về lập trình GPU và các framework và công cụ chính để phát triển ứng dụng GPU
- Các nhà phát triển muốn viết mã di động và có khả năng mở rộng, có thể chạy trên các nền tảng và thiết bị khác nhau
- Các lập trình viên muốn khám phá những lợi ích và thách thức của lập trình và tối ưu hóa GPU
21 Hours
Testimonials (2)
Very interactive with various examples, with a good progression in complexity between the start and the end of the training.
Jenny - Andheo
Course - GPU Programming with CUDA and Python
Trainers energy and humor.