Cursusaanbod

Inleiding

  • Wat is OpenCL?
  • OpenCL vs CUDA vs SYCL
  • Overzicht van de functies en architectuur van OpenCL
  • Instellen van de ontwikkelomgeving

Aan de slag

  • Het maken van een nieuw OpenCL project met behulp van Visual Studio Code
  • Onderzoeken van de projectstructuur en bestanden
  • Het compileren en uitvoeren van het programma
  • Weergeven van de uitvoer met printf en fprintf

OpenCL API

  • Het begrijpen van de rol van de OpenCL API in het gastprogramma
  • Het gebruik van de OpenCL API om apparaatinformatie en mogelijkheden op te vragen
  • Het gebruik van de OpenCL API om contexten, opdrachtrijen, buffers, kernels en gebeurtenissen te maken
  • Het gebruik van de OpenCL API om opdrachten in te wachten, zoals lezen, schrijven, kopiëren, mappen, ontmappen, uitvoeren en wachten
  • Het gebruik van de OpenCL API om fouten en uitzonderingen af te handelen

OpenCL C

  • Het begrijpen van de rol van OpenCL C in het apparaatprogramma
  • Het gebruik van OpenCL C om kernels te schrijven die op het apparaat worden uitgevoerd en gegevens manipuleren
  • Het gebruik van OpenCL C datatypen, kwalificaties, operators en uitdrukkingen
  • Het gebruik van ingebouwde functies van OpenCL C, zoals wiskundige, meetkundige, relationele enzovoort
  • Het gebruik van OpenCL C extensies en bibliotheken, zoals atomair, afbeelding, cl_khr_fp16 enzovoort

OpenCL Geheugenmodel

  • Het begrijpen van het verschil tussen gast- en apparaatgeheugenmodellen
  • Het gebruik van OpenCL geheuenvariabelen, zoals globaal, lokaal, constant en privé
  • Het gebruik van OpenCL geheugenobjecten, zoals buffers, afbeeldingen en pijpen
  • Het gebruik van OpenCL geheugentoegangsmodi, zoals alleen-lezen, alleen-schrijven, lezen-schrijven enzovoort
  • Het gebruik van het OpenCL geheugenconsistentiemodel en synchronisatiemechanismen

OpenCL Uitvoeringsmodel

  • Het begrijpen van het verschil tussen gast- en apparaatuitvoeringsmodellen
  • Het gebruik van OpenCL werk-items, werk-groepen en ND-ranges om parallelisme te definiëren
  • Het gebruik van OpenCL werk-itemfuncties, zoals get_global_id, get_local_id, get_group_id enzovoort
  • Het gebruik van OpenCL werk-groepfuncties, zoals barrière, work_group_reduce, work_group_scan enzovoort
  • Het gebruik van OpenCL apparaatfuncties, zoals get_num_groups, get_global_size, get_local_size enzovoort

Debuggen

  • Het begrijpen van de veelvoorkomende fouten en bugs in OpenCL programma's
  • Het gebruik van de Visual Studio Code debugger om variabelen, onderbrekingen, aanroepstacks enzovoort te inspecteren
  • Het gebruik van CodeXL om OpenCL programma's op AMD-apparaten te debuggen en te analyseren
  • Het gebruik van Intel VTune om OpenCL programma's op Intel-apparaten te debuggen en te analyseren
  • Het gebruik van NVIDIA Nsight om OpenCL programma's op NVIDIA-apparaten te debuggen en te analyseren

Optimaliseren

  • Het begrijpen van de factoren die de prestaties van OpenCL programma's beïnvloeden
  • Het gebruik van OpenCL vector datatypen en vectorisatietechnieken om de rekenprestaties te verbeteren
  • Het gebruik van OpenCL lusontvouwing en lusbladeringstechnieken om de stuuroverhead te verminderen en de lokaliteit te vergroten
  • Het gebruik van OpenCL lokale geheugen en lokale geheugenfuncties om geheugen-toegangen en bandbreedte te optimaliseren
  • Het gebruik van OpenCL profileren en profileringsinstrumenten om de uitvoeringstijd en brongebruik te meten en te verbeteren

Samenvatting en volgende stappen

Vereisten

  • Kennis van de C/C++ taal en parallelle programmeringsconcepten
  • Basis kennis van computerarchitectuur en geheugenhiërarchie
  • Ervaring met command-line tools en code editors

Publiek

  • Ontwikkelaars die willen leren hoe ze OpenCL kunnen gebruiken om heterogene apparaten te programmeren en hun parallelisme te benutten
  • Ontwikkelaars die willen schrijven naar portabele en schaalbare code die kan worden uitgevoerd op verschillende platformen en apparaten
  • Programmeurs die de laag niveau aspecten van heterogene programmering willen verkennen en hun codeprestaties willen optimaliseren
 28 Uren

Leveringsopties

PRIVÉGROEPSTRAINING

Onze identiteit draait om het leveren van precies wat onze klanten nodig hebben.

  • Pre-cursusgesprek met uw trainer
  • Aanpassing van de leerervaring om uw doelen te bereiken -
    • Op maat gemaakte overzichten
    • Praktische, praktische oefeningen met gegevens / scenario's die herkenbaar zijn voor de cursisten
  • Training gepland op een datum naar keuze
  • Gegeven online, op locatie/klaslokaal of hybride door experts die ervaring uit de echte wereld delen

Private Group Prices RRP from €9120 online delivery, based on a group of 2 delegates, €2880 per additional delegate (excludes any certification / exam costs). We recommend a maximum group size of 12 for most learning events.

Neem contact met ons op voor een exacte offerte en om onze laatste promoties te horen


OPENBARE TRAINING

Kijk op onze public courses

Voorlopige Aankomende Cursussen

Gerelateerde categorieën