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

Giới thiệu

  • OpenACC là gì?
  • OpenACC so với OpenCL so với CUDA so với SYCL
  • Tổng quan về các tính năng và kiến trúc của OpenACC
  • Thiết lập môi trường phát triển

Bắt đầu

  • Tạo dự án OpenACC trong Visual Studio Code
  • Khám phá cấu trúc và tệp dự án
  • Biên dịch và chạy chương trình
  • Hiển thị đầu ra bằng printf và fprintf

Chỉ thị và Điều khoản OpenACC

  • Hiểu các chỉ thị và điều khoản OpenACC
  • Sử dụng các chỉ thị song song để tạo các vùng song song
  • Sử dụng các chỉ thị kernel để quản lý tính song song do trình biên dịch quản lý
  • Sử dụng các chỉ thị vòng lặp để song song hóa các vòng lặp
  • Quản lý chuyển động dữ liệu bằng các chỉ thị dữ liệu
  • Đồng bộ hóa dữ liệu bằng các chỉ thị cập nhật
  • Cải thiện việc tái sử dụng dữ liệu bằng các chỉ thị bộ nhớ cache
  • Tạo các hàm thiết bị bằng các chỉ thị routine
  • Đồng bộ hóa các sự kiện bằng các chỉ thị wait

API OpenACC

  • Hiểu vai trò của API OpenACC
  • Truy vấn thông tin và khả năng của thiết bị
  • Đặt số và loại thiết bị
  • Xử lý lỗi và ngoại lệ
  • Tạo và đồng bộ hóa các sự kiện

Thư viện và Khả năng tương tác OpenACC

  • Hiểu các thư viện và khả năng tương tác OpenACC
  • Sử dụng các thư viện toán học, ngẫu nhiên và phức tạp
  • Tích hợp với các mô hình khác (CUDA, OpenMP, MPI)
  • Tích hợp với các thư viện GPU (cuBLAS, cuFFT)

Công cụ OpenACC

  • Hiểu các công cụ OpenACC đang được phát triển
  • Phân tích và gỡ lỗi các chương trình OpenACC
  • Phân tích hiệu suất với Trình biên dịch PGI, NVIDIA Nsight Systems, Allinea Forge

Tối ưu hóa

  • Các yếu tố ảnh hưởng đến hiệu suất chương trình OpenACC
  • Tối ưu hóa tính cục bộ của dữ liệu và giảm chuyển dữ liệu
  • Tối ưu hóa song song và hợp nhất vòng lặp
  • Tối ưu hóa song song và hợp nhất kernel
  • Tối ưu hóa vector hóa và tự động điều chỉnh

Tóm tắt và Các bước tiếp theo

Requirements

  • Hiểu biết về ngôn ngữ C/C++ hoặc Fortran 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 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 OpenACC để lập trình cho các thiết bị dị nhất và khai thác tính song song 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á các khía cạnh cấp cao của lập trình dị nhất và tối ưu hóa năng suất mã của họ
 28 Hours

Number of participants


Price per participant

Testimonials (2)

Provisional Upcoming Courses (Require 5+ participants)

Related Categories