Bedankt voor uw aanvraag! Een van onze medewerkers neemt binnenkort contact met u op
Bedankt voor uw boeking! Een van onze medewerkers neemt binnenkort contact met u op.
Cursusaanbod
Inleiding
- Wat is OpenCL?
- OpenCL versus CUDA versus SYCL
- Overzicht van de kenmerken en architectuur van OpenCL
- Het instellen van de ontwikkelomgeving
Aan de slag
- Een nieuw OpenCL-project aanmaken met Visual Studio Code
- Het verkennen van de projectstructuur en bestanden
- Het compileren en uitvoeren van het programma
- De output weergeven met behulp van printf en fprintf
OpenCL API
- Begrijpen van de rol van de OpenCL API binnen het host-programma
- Apparaatinformatie en mogelijkheden opvragen via de OpenCL API
- Contexten, commando-queues, buffers, kernels en events aanmaken met behulp van de OpenCL API
- Commando’s zoals lezen, schrijven, kopiëren, in kaart brengen en uitvoeren verwerken via de OpenCL API
- Het omgaan met fouten en uitzonderingen met behulp van de OpenCL API
OpenCL C
- Begrijpen van de rol van OpenCL C binnen het apparaatprogramma
- Kernels schrijven die op het apparaat draaien en gegevens manipuleren met OpenCL C
- Werken met datatypes, beperkingen, operators en expressies in OpenCL C
- Gebruikmaken van ingebouwde OpenCL C-functies zoals rekenkundige, geometrische en vergelijkende functies
- Toepassing van extensies en bibliotheken in OpenCL C, bijvoorbeeld voor atomaire bewerkingen of afbeeldingen
Geheugenmodel van OpenCL
- Verschillen tussen host- en device-geheugenmodellen begrijpen
- Omgaan met verschillende geheugenspelers zoals globaal, lokaal, constant en privé-geheugen
- Werken met geheugenobjecten als buffers, afbeeldingen en pijpen
- Kiezen tussen lees- of schrijftoegangsmodes voor gegevensopslag
- Zorgen voor consistente geheugenmanipulatie en synchronisatie via OpenCL-mechanismen
Uitvoeringsmodel van OpenCL
- Het verschil tussen host- en device-uitvoeringsmodellen begrijpen
- Parallelisme bepalen door het instellen van werk-items, werkgroepen en ND-ranges
- Gebruikmaken van functies zoals get_global_id en get_group_id om gegevens te lokaliseren
- Toepassing van groepsfuncties zoals barrier, work_group_reduce en work_group_scan voor organisatie van berekeningen
- Beheer van apparatgegevens zoals get_num_groups en get_local_size via specifieke OpenCL-functies
Debuggen
- Vaak voorkomende fouten in OpenCL-programma’s herkennen en begrijpen
- Het debuggen van code met Visual Studio Code, waarbij gebruik wordt gemaakt van breakpoints en variabele-inspectie
- Debug- en analysehulpmiddelen zoals CodeXL gebruiken voor OpenCL-programma’s op AMD-apparaten
- Intel VTune hanteren om prestaties te beoordelen bij programma’s die op Intel-apparaten draaien
- NVIDIA Nsight gebruiken voor het debuggen en analyseren van OpenCL-programma’s op apparaten van NVIDIA
Optimalisatie
- Factoren identificeren die invloed hebben op de snelheid en efficiëntie van OpenCL-programma’s
- Vectordata-types en vectorisatietechnieken toepassen om rekenkundige prestaties te verbeteren
- Lussen ontwikkelen of verdelen om overhead te beperken en lokale efficiëntie te verhogen
- Lokaal geheugen benutten voor het verbeteren van snelheid en bandbreedtegebruik
- Profileringstoools gebruiken om uitvoeringstijd, middelengebruik en optimalisatiemogelijkheden te bepalen
Samenvatting en vervolgstappen
Vereisten
- Kennis van de C/C++-taal en concepten uit het parallel programmeren
- Basiskennis van computerarchitectuur en het geheugenhiërarchiemodel
- Ervaring met commandoregeltools en code-editors
Doelgroep
- Ontwikkelaars die OpenCL willen gebruiken om heterogene apparaten te programmeren en het parallelisme optimaal te benutten
- Ontwikkelaars die code willen schrijven die zowel draagbaar als schaalbaar is op diverse platforms en apparaten
- Programmeurs die de onderliggende aspecten van heterogeen programmeren wil verkennen en de prestaties van hun code willen verbeteren
28 Uren
Aangepaste bedrijfsopleiding
Opleidingsoplossingen ontworpen exclusief voor bedrijven.
- Aangepaste inhoud: We passen de syllabus en praktijkopdrachten aan naar de echte doelen en behoeften van uw project.
- Voor flexibel schema: Datums en tijden aangepast aan het rooster van uw team.
- Formaat: Online (live), In-company (bij uw kantoren) of Hybride.
Prijs per privégroep, online live training, startend vanaf 6400 € + BTW*
Neem contact met ons op voor een exacte offerte en om onze laatste promoties te horen