Hubungi Kami

Kerangka Materi

Pendahuluan

  • Apa itu OpenACC?
  • Perbandingan OpenACC dengan OpenCL, CUDA, dan SYCL
  • Gambaran umum mengenai fitur serta arsitektur OpenACC
  • Mengatur lingkungan pengembangan OpenACC

Memulai Penggunaan OpenACC

  • Membuat proyek OpenACC di Visual Studio Code
  • Mengenal struktur dan file dalam proyek OpenACC
  • Mengkompilasi serta menjalankan program OpenACC
  • Menampilkan hasil eksekusi menggunakan fungsi printf dan fprintf

Direktif dan Klausa OpenACC

  • Pemahaman mengenai direktif dan klausa dalam OpenACC
  • Menggunakan direktif paralel untuk membuat area eksekusi paralel
  • Menggunakan direktif kernel agar kompiler dapat mengatur konkurensi program
  • Menerapkan direktif loop untuk menjalankan iterasi secara paralel
  • Manajemen pergerakan data menggunakan direktif data
  • Sinkronisasi data melalui direktif update
  • Pengoptimalan penggunaan ulang data lewat direktif cache
  • Membuat fungsi khusus untuk perangkat lewat direktif routine
  • Menyelaraskan operasi antar perangkat dengan menggunakan direktif wait

API OpenACC

  • Pemahaman mengenai fungsi dan peran API OpenACC
  • Mengetahui informasi serta kapasitas perangkat yang digunakan
  • Mengatur nomor serta tipe perangkat target
  • Penanganan error maupun pengecualian dalam eksekusi program
  • Pembuatan serta sinkronisasi event antar perangkat

Library dan Interoperabilitas OpenACC

  • Pengertian mengenai library OpenACC beserta mekanisme interoperabilitasnya
  • Menggunakan library matematika, penjanaan angka acak, serta operasi kompleks
  • Integrasi OpenACC dengan model pemrograman lain (CUDA, OpenMP, MPI)
  • Penggunaan library GPU seperti cuBLAS dan cuFFT dalam konteks OpenACC

Alat Bantu Pengembangan OpenACC

  • Mengenal berbagai alat bantu yang tersedia untuk pengembangan OpenACC
  • Profil dan debugging program OpenACC secara efektif
  • Analisis kinerja dengan menggunakan kompiler PGI, NVIDIA Nsight Systems, serta Allinea Forge

Pengoptimalan Kinerja Program

  • Faktor-faktor yang mempengaruhi efisiensi program OpenACC
  • Meningkatkan lokalisasi data guna mengurangi frekuensi transfer antar perangkat
  • Optimisasi konkurensi pada blok iterasi maupun fusi operasi program
  • Pengaturan eksekusi kernel secara paralel dan penggabungan operasi secara efisien
  • Optimalisasi tingkat vektorisasi serta penerapan auto-tuning dalam kode OpenACC

Penutup dan Langkah Selanjutnya

Persyaratan

  • Pemahaman mengenai bahasa pemrograman C/C++ atau Fortran serta konsep-konsep pemrograman paralel
  • Pengetahuan dasar mengenai arsitektur komputer dan hierarki memori
  • Pengalaman dalam penggunaan alat perintah baris (command-line tools) serta editor kode

Target Peserta

  • Pengembang yang ingin mempelajari cara menggunakan OpenACC untuk mengatur perangkat heterogen dan memanfaatkan keunggulan paralelnya
  • Pengembang yang bermaksud menulis kode portabel serta dapat dijalankan pada berbagai platform dan perangkat
  • Programmer yang ingin memahami aspek-aspek tingkat tinggi dalam pemrograman heterogen sekaligus meningkatkan efisiensi penulisan kode mereka
 28 Jam

Jumlah Peserta


Harga per Peserta

Kursus Mendatang

Kategori Terkait