NVIDIA GPU Programming - Extended Eğitimi
Bu eğitmen liderliğindeki canlı eğitim kursu, GPU’leri paralel hesaplama için nasıl programlayacağınızı, çeşitli platformları nasıl kullanacağınızı, CUDA platformu ve özellikleriyle nasıl çalışacağınızı ve CUDA kullanarak çeşitli optimizasyon tekniklerini nasıl gerçekleştireceğinizi kapsamaktadır. Uygulamalardan bazıları derin öğrenme, analitik, görüntü işleme ve mühendislik uygulamalarını içerir.
Eğitim İçeriği
Giriş
Heterojen Hesaplama Metodolojisinin Temellerini Anlama
Neden Paralel Hesaplama? Paralel Hesaplama İhtiyacını Anlama
Çok Çekirdekli İşlemciler - Mimari ve Tasarım
Thread'lere Giriş, Thread Temelleri ve Paralel Programming Temel Kavramları
GPU Yazılım Optimizasyon Süreçlerinin Temellerini Anlama
OpenMP - Direktif Tabanlı Paralel Programming için bir Standart
Çok Çekirdekli Makinelerde Çeşitli Programların Uygulamalı Çalışması / Gösterimi
GPU Hesaplamaya Giriş
Paralel Hesaplama için GPU’ler
GPU’ler Programming Modeli
GPU üzerinde Çeşitli Programların Uygulamalı Çalışması / Gösterimi
GPU için SDK, Araç Takımı ve Ortam Kurulumu
Çeşitli Kütüphanelerle Çalışma
GPU ve Araçların Örnek Programlar ve OpenACC ile Gösterimi
CUDA Programming Modelini Anlama
CUDA Mimarisini Öğrenme
CUDA Geliştirme Ortamlarını Keşfetme ve Kurma
CUDA Çalışma Zamanı API'si ile Çalışma
CUDA Bellek Modelini Anlama
Ek CUDA API Özelliklerini Keşfetme
CUDA'da Global Belleği Verimli Kullanma: Global Bellek Optimizasyonu Access
CUDA Akışlarını Kullanarak CUDA'da Veri Aktarımlarını Optimize Etme
CUDA'da Paylaşılan Belleği Kullanma
CUDA'da Atomik İşlemleri ve Komutları Anlama ve Kullanma
Vaka Çalışması: CUDA ile Temel Dijital Görüntü İşleme
Çoklu-GPU Programming ile Çalışma
NVIDIA / CUDA üzerinde Gelişmiş Donanım Profilleme ve Örnekleme
Dinamik Çekirdek Başlatma için CUDA Dinamik Paralellik API'sini Kullanma
Özet ve Sonuç
Kurs İçin Gerekli Önbilgiler
- C Programming
- Linux GCC
Açık Eğitim Kursları 5 ve üzeri katılımcı gerektirir.
NVIDIA GPU Programming - Extended Eğitimi - Booking
NVIDIA GPU Programming - Extended Eğitimi - Enquiry
NVIDIA GPU Programming - Extended - Danışmanlık Talebi
Danışmanlık Talebi
Danışanlarımızın Yorumları (1)
Trainers energy and humor.
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Eğitim - NVIDIA GPU Programming - Extended
Yaklaşan Etkinlikler
İlgili Kurslar
AMD GPU Programming
28 SaatBu eğitmen liderliğindeki, canlı eğitim (Türkiye – çevrimiçi veya yerinde), ROCm ve HIP kullanarak AMD GPU’leri programlamak ve paralelliklerinden yararlanmak isteyen başlangıç seviyesi ile orta seviye geliştiricilere yöneliktir.
Bu eğitimin sonunda katılımcılar şunları yapabilecektir:
- ROCm Platformu, bir AMD GPU ve Visual Studio Code içeren bir geliştirme ortamı kurmak.
- AMD GPU üzerinde vektör toplama gerçekleştiren ve sonuçları GPU belleğinden alan temel bir ROCm programı oluşturmak.
- Cihaz bilgilerini sorgulamak, cihaz belleği ayırmak ve serbest bırakmak, ana bilgisayar ve cihaz arasında veri kopyalamak, çekirdekleri başlatmak ve iş parçacıklarını senkronize etmek için ROCm API’sini kullanmak.
- AMD GPU üzerinde yürütülen ve verileri işleyen çekirdekleri yazmak için HIP dilini kullanmak.
- Yaygın görevleri ve işlemleri gerçekleştirmek için HIP yerleşik işlevlerini, değişkenlerini ve kitaplıklarını kullanmak.
- Veri aktarımlarını ve bellek erişimlerini optimize etmek için ROCm ve HIP bellek alanlarını (global, paylaşılan, sabit ve yerel) kullanmak.
- Paralelliği tanımlayan iş parçacıklarını, blokları ve ızgaraları kontrol etmek için ROCm ve HIP yürütme modellerini kullanmak.
- ROCm Hata Ayıklayıcısı ve ROCm Profil Oluşturucu gibi araçları kullanarak ROCm ve HIP programlarını hata ayıklamak ve test etmek.
- Birleştirme, önbellekleme, ön getirme ve profil oluşturma gibi teknikleri kullanarak ROCm ve HIP programlarını optimize etmek.
Administration of CUDA
35 SaatBu eğitmen liderliğindeki, canlı eğitim (Türkiye çevrimiçi veya yerinde), CUDA ortamlarını kurmak, yapılandırmak, yönetmek ve sorun gidermek isteyen başlangıç seviyesindeki sistem yöneticilerine ve BT profesyonellerine yöneliktir.
Bu eğitimin sonunda katılımcılar şunları yapabilecektir:
- CUDA'nın mimarisini, bileşenlerini ve yeteneklerini anlayabilecektir.
- CUDA ortamlarını kurup yapılandırabilecektir.
- CUDA kaynaklarını yönetip optimize edebilecektir.
- Yaygın CUDA sorunlarını ayıklayıp çözebilecektir.
GPU Programming with CUDA and Python
14 SaatBu danışmaoduğucu, canlı eğitim (çevrimiçi veya yerel olarak) Türkiye'ta, CUDA'yı kullanarak NVIDIA GPU cihazlarında paralel olarak çalışan Python uygulamalar oluşturmak isteyen orta seviye geliştiricilere yönelik tasarlanmıştır.
Bu eğitimin sonunda katılımcılar şunları yapabilecektir:
- Numba derleyicisini kullanarak NVIDIA GPU cihazlarında çalışan Python uygulamaları hızlandırın.Özel CUDA çekirdekleri oluşturun, derleyin ve başlatın.GPU belleğini yönetin.CPU tabanlı bir uygulamayı GPU ile hızlandırılmış bir uygulamaya dönüştürün.
Introduction to GPU Programming
21 SaatBu eğitmen liderliğindeki, canlı eğitim (Türkiye çevrimiçi veya yerinde), GPU programlamanın temellerini ve GPU uygulamaları geliştirmek için ana çerçeveleri ve araçları öğrenmek isteyen yeni başlayan ve orta seviyedeki geliştiricilere yöneliktir.
- Bu eğitimin sonunda katılımcılar:
GPU işlem ve CPU arasındaki farkı ve GPU programlamanın avantajlarını ve zorluklarını anlayabilecektir. - GPU uygulamaları için doğru çerçeveyi ve aracı seçebilecektir.
- Çerçevelerden ve araçlardan bir veya daha fazlasını kullanarak vektör toplama gerçekleştiren temel bir GPU programı oluşturabilecektir.
- Cihaz bilgilerini sorgulamak, cihaz belleği ayırmak ve serbest bırakmak, ana bilgisayar ile cihaz arasında veri kopyalamak, çekirdekleri başlatmak ve iş parçacıklarını senkronize etmek için ilgili API'leri, dilleri ve kitaplıkları kullanabilecektir.
- Veri transferlerini ve bellek erişimlerini optimize etmek için ilgili bellek alanlarını (global, yerel, sabit ve özel) kullanabilecektir.
- Paralelliği kontrol etmek için iş öğeleri, çalışma grupları, iş parçacıkları, bloklar ve ızgaralar gibi ilgili yürütme modellerini kullanabilecektir.
- CodeXL, CUDA-GDB, CUDA-MEMCHECK ve NVIDIA Nsight gibi araçları kullanarak GPU programlarını hata ayıklayabilecek ve test edebilecektir.
- Birleştirme, önbelleğe alma, ön getirme ve profil oluşturma gibi teknikleri kullanarak GPU programlarını optimize edebilecektir.
GPU Programming with CUDA
28 SaatBu eğitmen liderliğindeki, canlı eğitim (Türkiye – çevrimiçi veya yerinde), CUDA'yı kullanarak NVIDIA GPU'leri programlamak ve onların paralelliğinden yararlanmak isteyen başlangıç seviyesi ile orta seviye geliştiricilere yöneliktir.
Bu eğitimin sonunda katılımcılar şunları yapabilecektir:
- CUDA Toolkit, bir NVIDIA GPU ve Visual Studio Code içeren bir geliştirme ortamı kurmak.
- NVIDIA GPU üzerinde vektör toplama gerçekleştiren ve sonuçları NVIDIA GPU belleğinden alan temel bir CUDA programı oluşturmak.
- Cihaz bilgilerini sorgulamak, cihaz belleğini ayırmak ve serbest bırakmak, ana bilgisayar ve cihaz arasında veri kopyalamak, çekirdekleri başlatmak ve iş parçacıklarını senkronize etmek için CUDA API'sini kullanmak.
- NVIDIA GPU üzerinde yürütülen ve verileri işleyen çekirdekleri yazmak için CUDA C/C++ dilini kullanmak.
- Yaygın görevleri ve işlemleri gerçekleştirmek için CUDA yerleşik işlevlerini, değişkenlerini ve kitaplıklarını kullanmak.
- Veri transferlerini ve bellek erişimlerini optimize etmek için global, paylaşımlı, sabit ve yerel gibi CUDA bellek alanlarını kullanmak.
- Paralelliği tanımlayan iş parçacıklarını, blokları ve ızgaraları kontrol etmek için CUDA yürütme modelini kullanmak.
- CUDA-GDB, CUDA-MEMCHECK ve NVIDIA Nsight gibi araçları kullanarak CUDA programlarını hata ayıklamak ve test etmek.
- Birleştirme, önbellekleme, ön getirme ve profil oluşturma gibi teknikleri kullanarak CUDA programlarını optimize etmek.
Müşterilerin %97'si memnun.
GPU Programming with OpenACC
28 SaatBu eğitmen liderliğindeki, canlı eğitim (Türkiye çevrimiçi veya yerinde), heterojen cihazları programlamak ve paralelliklerinden yararlanmak için OpenACC kullanmak isteyen başlangıç seviyesinden orta seviyeye kadar olan geliştiricilere yöneliktir.
Bu eğitimin sonunda katılımcılar şunları yapabilecektir:
- Bir OpenACC geliştirme ortamı kurmak.
- Temel bir OpenACC programı yazmak ve çalıştırmak.
- Kodu OpenACC direktifleri ve maddeleriyle etiketlemek.
- OpenACC API'leri ve kütüphanelerini kullanmak.
- OpenACC programlarını profillemek, hata ayıklamak ve optimize etmek.
GPU Programming with OpenCL
28 SaatBu eğitmen liderliğindeki, canlı eğitim (Türkiye – çevrimiçi veya yerinde), farklı türdeki cihazları programlamak ve paralelliklerinden yararlanmak isteyen başlangıç seviyesinden orta seviyeye kadar olan geliştiricilere yöneliktir.
Bu eğitimin sonunda katılımcılar şunları yapabilecektir:
- OpenCL SDK'sını, OpenCL'yi destekleyen bir cihazı ve Visual Studio Code'u içeren bir geliştirme ortamı kurmak.
- Cihaz üzerinde vektör toplama gerçekleştiren ve sonuçları cihaz belleğinden alan temel bir OpenCL programı oluşturmak.
- Cihaz bilgilerini sorgulamak, bağlamlar, komut kuyrukları, arabellekler, çekirdekler ve olaylar oluşturmak için OpenCL API'sini kullanmak.
- Cihaz üzerinde yürütülen ve verileri işleyen çekirdekleri yazmak için OpenCL C dilini kullanmak.
- Yaygın görevleri ve işlemleri gerçekleştirmek için OpenCL yerleşik işlevlerini, uzantılarını ve kitaplıklarını kullanmak.
- Veri transferlerini ve bellek erişimlerini optimize etmek için OpenCL ana bilgisayar ve cihaz bellek modellerini kullanmak.
- İş öğelerini, iş gruplarını ve ND aralıklarını kontrol etmek için OpenCL yürütme modelini kullanmak.
- CodeXL, Intel VTune ve NVIDIA Nsight gibi araçları kullanarak OpenCL programlarını hata ayıklamak ve test etmek.
- Vektörleştirme, döngü açma, yerel bellek ve profil oluşturma gibi teknikleri kullanarak OpenCL programlarını optimize etmek.
GPU Programming - OpenCL vs CUDA vs ROCm
28 SaatBu eğitmen liderliğindeki, canlı eğitim (Türkiye – çevrimiçi veya yerinde), GPU programlama için farklı çerçeveleri kullanmak ve özelliklerini, performansını ve uyumluluğunu karşılaştırmak isteyen başlangıç seviyesinden orta seviyeye kadar olan geliştiricilere yöneliktir.
Bu eğitimin sonunda katılımcılar şunları yapabilecektir:
- OpenCL SDK, CUDA Toolkit, ROCm Platformu, OpenCL'u destekleyen bir cihaz, CUDA veya ROCm ve Visual Studio Code içeren bir geliştirme ortamı kurmak.
- OpenCL, CUDA ve ROCm kullanarak vektör toplama gerçekleştiren temel bir GPU programı oluşturmak ve her bir çerçevenin sözdizimini, yapısını ve yürütülmesini karşılaştırmak.
- Cihaz bilgilerini sorgulamak, cihaz belleği ayırmak ve serbest bırakmak, ana bilgisayar ve cihaz arasında veri kopyalamak, çekirdekleri başlatmak ve iş parçacıklarını senkronize etmek için ilgili API'leri kullanmak.
- Cihazda yürütülen ve verileri işleyen çekirdekleri yazmak için ilgili dilleri kullanmak.
- Yaygın görevleri ve işlemleri gerçekleştirmek için ilgili yerleşik işlevleri, değişkenleri ve kitaplıkları kullanmak.
- Veri aktarımlarını ve bellek erişimlerini optimize etmek için global, yerel, sabit ve özel gibi ilgili bellek alanlarını kullanmak.
- Paralelliği tanımlayan iş parçacıklarını, blokları ve ızgaraları kontrol etmek için ilgili yürütme modellerini kullanmak.
- CodeXL, CUDA-GDB, CUDA-MEMCHECK ve NVIDIA Nsight gibi araçları kullanarak GPU programlarını hata ayıklamak ve test etmek.
- Birleştirme, önbellekleme, ön getirme ve profil oluşturma gibi teknikleri kullanarak GPU programlarını optimize etmek.
ROCm for Windows
21 SaatBu eğitmen liderliğindeki, canlı eğitim (Türkiye – çevrimiçi veya yerinde), AMD GPU'ları programlamak ve paralelliklerinden yararlanmak isteyen başlangıç seviyesi ve orta seviye geliştiricilere yöneliktir.
Bu eğitimin sonunda katılımcılar şunları yapabilecektir:
- ROCm Platformu, bir AMD GPU ve Visual Studio Code içeren bir geliştirme ortamı Windows üzerinde kurmak.
- AMD GPU üzerinde vektör toplama gerçekleştiren ve sonuçları GPU belleğinden alan temel bir ROCm programı oluşturmak.
- Cihaz bilgilerini sorgulamak, cihaz belleği ayırmak ve serbest bırakmak, ana bilgisayar ve cihaz arasında veri kopyalamak, çekirdekleri başlatmak ve iş parçacıklarını senkronize etmek için ROCm API'sini kullanmak.
- GPU üzerinde yürütülen ve verileri işleyen çekirdekleri yazmak için HIP dilini kullanmak.
- Yaygın görevleri ve işlemleri gerçekleştirmek için HIP yerleşik işlevlerini, değişkenlerini ve kitaplıklarını kullanmak.
- Veri aktarımlarını ve bellek erişimlerini optimize etmek için ROCm ve HIP bellek alanlarını (global, paylaşılan, sabit ve yerel) kullanmak.
- Paralelliği tanımlayan iş parçacıklarını, blokları ve ızgaraları kontrol etmek için ROCm ve HIP yürütme modellerini kullanmak.
- ROCm Hata Ayıklayıcısı ve ROCm Profil Oluşturucu gibi araçları kullanarak ROCm ve HIP programlarını hata ayıklamak ve test etmek.
- Birleştirme, önbellekleme, ön getirme ve profil oluşturma gibi teknikleri kullanarak ROCm ve HIP programlarını optimize etmek.