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.
Kursplan
Introduksjon
- Hva er OpenACC?
- OpenACC vs OpenCL vs CUDA vs SYCL
- Oversikt over OpenACC-funksjoner og arkitektur
- Sette opp utviklingsmiljøet
Starter
- Opprette et nytt OpenACC-prosjekt med Visual Studio-kode
- Utforske prosjektstrukturen og filene
- Kompilere og kjøre programmet
- Viser utdata ved hjelp av printf og fprintf
OpenACC-direktiver og klausuler
- Forstå rollen til OpenACC-direktiver og klausuler i verts- og enhetskoden
- Bruk av OpenACC parallelldirektiv og klausuler for å lage parallelle regioner og spesifisere antall gjenger, arbeidere og vektorer
- Bruke OpenACC-kjerner-direktivet og klausuler for å lage kjerneregioner og la kompilatoren bestemme parallelliteten
- Bruk av OpenACC loop-direktiv og klausuler for å parallellisere looper og spesifisere loopdistribusjonen, kollapsen, reduksjonen og flisen
- Bruker OpenACC-datadirektivet og klausuler for å administrere databevegelse og dataregioner
- Bruk av OpenACC oppdateringsdirektiv og klausuler for å synkronisere data mellom verten og enheten
- Bruker OpenACC cache-direktiv og klausuler for å forbedre gjenbruk og lokalitet av data
- Bruk av OpenACC-rutinedirektiv og klausuler for å lage enhetsfunksjoner og spesifisere funksjonstype og vektorlengde
- Bruk av OpenACC-vent-direktiv og klausuler for å synkronisere hendelser og avhengigheter
OpenACC API
- Forstå rollen til OpenACC API i vertsprogrammet
- Bruker OpenACC API for å spørre etter enhetsinformasjon og -funksjoner
- Bruke OpenACC API for å angi enhetsnummer og enhetstype
- Bruker OpenACC API for å håndtere feil og unntak
- Bruke OpenACC API for å opprette og synkronisere hendelser
OpenACC-biblioteker og interoperabilitet
- Forstå rollen til OpenACC-biblioteker og interoperabilitetsfunksjoner i enhetsprogrammet
- Bruk av OpenACC-biblioteker, som matematikk, tilfeldig og kompleks, til å utføre vanlige oppgaver og operasjoner
- Bruk av OpenACC interoperabilitetsfunksjoner, som deviceptr, use_device og acc_memcpy, for å integrere OpenACC med andre programmeringsmodeller, som CUDA, OpenMP og MPI
- Bruke OpenACC interoperabilitetsfunksjoner, som host_data og declare, for å integrere OpenACC med GPU biblioteker, som cuBLAS og cuFFT
OpenACC-verktøy
- Forstå rollen til OpenACC-verktøy i utviklingsprosessen
- Bruk av OpenACC-verktøy til å profilere og feilsøke OpenACC-programmer og identifisere ytelsesflaskehalser og muligheter
- Bruk av OpenACC-verktøy, som PGI Compiler, NVIDIA Nsight Systems og Allinea Forge, for å måle og forbedre utførelsestiden og ressursutnyttelsen
Optimalisering
- Forstå faktorene som påvirker ytelsen til OpenACC-programmer
- Bruk av OpenACC-direktiver og klausuler for å optimalisere datalokalitet og redusere dataoverføringer
- Bruk av OpenACC-direktiver og klausuler for å optimalisere loopparallellisme og fusjon
- Bruk av OpenACC-direktiver og klausuler for å optimalisere kjerneparallellisme og fusjon
- Bruk av OpenACC-direktiver og klausuler for å optimalisere vektorisering og auto-tuning
Sammendrag og neste trinn
Krav
- En forståelse av C/C++ eller Fortran-språk og parallellprogrammeringskonsepter
- Grunnleggende kunnskap om dataarkitektur og minnehierarki
- Erfaring med kommandolinjeverktøy og koderedigerere
Publikum
- Utviklere som ønsker å lære å bruke OpenACC til å programmere heterogene enheter og utnytte deres parallellitet
- Utviklere som ønsker å skrive bærbar og skalerbar kode som kan kjøres på forskjellige plattformer og enheter
- Programmerere som ønsker å utforske høynivåaspektene ved heterogen programmering og optimalisere kodeproduktiviteten deres
28 timer
Testimonials (2)
Veldig interaktiv med ulike eksempler, med god progresjon i kompleksitet mellom start og slutt på treningen.
Jenny - Andheo
Kurs - GPU Programming with CUDA and Python
Machine Translated
Trener energi og humor.
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Kurs - NVIDIA GPU Programming - Extended
Machine Translated