Đề 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ì?
  • Các framework cho lập trình GPU là gì?
  • Chọn framework phù hợp cho ứng dụng của bạn

OpenCL

  • OpenCL là gì?
  • Ưu 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 kernels và đồng bộ hóa threads
  • Sử dụng ngôn ngữ C OpenCL để viết kernels 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ớ của OpenCL, chẳng hạn như global, local, constant và private, để tối ưu hóa việc truyền và truy cập bộ nhớ
  • Sử dụng mô hình thực thi của OpenCL để kiểm soát work-items, work-groups và ND-ranges 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ì?
  • Ưu 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 kernels và đồng bộ hóa threads
  • Sử dụng ngôn ngữ C/ C++ CUDA để viết kernels 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ớ của CUDA, chẳng hạn như global, shared, constant và local, để tối ưu hóa việc truyền và truy cập bộ nhớ
  • Sử dụng mô hình thực thi của CUDA để kiểm soát threads, blocks và grids 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ì?
  • Ưu 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 kernels và đồng bộ hóa threads
  • Sử dụng ngôn ngữ C/C++ ROCm để viết kernels 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ớ của ROCm, chẳng hạn như global, local, constant và private, để tối ưu hóa việc truyền và truy cập bộ nhớ
  • Sử dụng mô hình thực thi của ROCm để kiểm soát threads, blocks và grids 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

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 và ROCm
  • Đánh giá các chương trình GPU bằng các tiêu chuẩn và số liệu
  • 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

  • Sự 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 cách sử dụng các framework khác nhau cho lập trình GPU và so sánh các tính năng, hiệu suất và khả năng tương thích của chúng
  • 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 ưu và nhược điểm, cũng như những thách thức của lập trình GPU và tối ưu hóa
 28 Hours

Number of participants


Price per participant

Testimonials (2)

Provisional Upcoming Courses (Require 5+ participants)

Related Categories