CONTACT ONS

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.
Investering

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

Voorlopige Aankomende Cursussen

Gerelateerde categorieën