Terima kasih telah mengirimkan pertanyaan Anda! Salah satu anggota tim kami akan segera menghubungi Anda.
Terima kasih telah mengirimkan pemesanan Anda! Salah satu anggota tim kami akan segera menghubungi Anda.
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