AMD GPU PROGRAMMING EĞİTİMİ

AMD GPU'ların gücünü HIP ile açığa çıkarın

ROCm platformu, HIP çekirdekleri, wavefront mimarisi, LDS bellek ve rocprof ile AMD GPU kodlarını optimize edin.

Bu eğitim, AMD GPU'lar için ROCm yazılım yığınında HIP ile paralel program geliştirmeyi anlatır. CDNA ve RDNA mimarileri, wavefront ve compute unit yapısı, global, LDS ve register bellek hiyerarşisi, çekirdek başlatma, stream ve event kullanımı, hipify ile CU…

3 gün İleri Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

ROCm ve HIP ile AMD GPU'larda paralel kod geliştirme ve optimizasyon

Bu eğitim, AMD GPU'lar için ROCm yazılım yığınında HIP ile paralel program geliştirmeyi anlatır. CDNA ve RDNA mimarileri, wavefront ve compute unit yapısı, global, LDS ve register bellek hiyerarşisi, çekirdek başlatma, stream ve event kullanımı, hipify ile CUDA kodunun taşınması, rocBLAS ve MIOpen kütüphaneleri ile rocprof ve omniperf profil çıkarma uygulamalı işlenir.

Süre ve Format

3 Gün. Her gün dört modül; 1. günde ROCm ve HIP Temelleri ve 2. günde Optimizasyon ve Eşzamansızlık ve 3. günde Profil Çıkarma ve İleri Teknikler ele alınır, her modül uygulamalı çalışmayla pekiştirilir.

Seviye

İleri Seviye — ROCm, HIP, GPU mimarisi, bellek hiyerarşisi ve performans optimizasyonu

Öğrenme Metodu

Katılımcılar ROCm kurulu AMD GPU üzerinde vektör toplama, matris çarpımı ve azaltma çekirdeklerini yazar, rocprof ile ölçüp adım adım hızlandırır.

Neden Bu Eğitim?

🎯CUDA Taşıma

hipify araçlarıyla mevcut CUDA kodunu AMD donanımına taşır, platformlar arası derlenebilir kod yazarsınız.

⚙️Mimari Bilgisi

Wavefront, LDS ve bellek birleştirme kurallarını bilerek donanıma uygun çekirdek tasarlarsınız.

🚀Ölçülebilir Hız

rocprof ve omniperf çıktılarıyla darboğazı bulur, değişikliğin etkisini sayılarla gösterirsiniz.

Anahtar Konular

AMD GPU programlamaROCmHIP programlamahipifyrocBLASrocprofwavefrontCDNA mimarisiGPU optimizasyonuCUDA'dan HIP'e geçiş
“Hızlı GPU kodu, donanımın belleğe nasıl baktığını anlayanların elinde doğar.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
C++ Bilgisi

Şablonlar, işaretçiler ve bellek yönetimi konusunda rahat olmak gerekir.

2
Paralel Programlama

İş parçacığı ve veri paralelliği kavramlarına aşinalık faydalıdır.

3
Linux Ortamı

Komut satırı, CMake ve paket yönetimi deneyimi beklenir.

4
Donanım

ROCm destekli bir AMD GPU veya sağlanan uzak laboratuvar erişimi gerekir.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı ROCm ortamını kurar, AMD GPU mimarisini açıklar ve ilk HIP çekirdeklerini yazar.
Modül 1
AMD GPU Mimarisi
  • CDNA ve RDNA ailelerinin hesaplama ve grafik odaklı farkları
  • Compute unit, SIMD birimleri ve wavefront (64/32 iş parçacığı) yapısı
  • Bellek hiyerarşisi: HBM/GDDR, L2, L1, LDS ve vektör registerları
  • Matrix core ve MFMA komutlarının rolü
  • Occupancy kavramı ve register baskısının etkisi
  • Infinity Fabric ve çok GPU bağlantısı
Modül 2
ROCm Kurulumu ve Araç Zinciri
  • ROCm yığını: sürücü (amdgpu), HSA çalışma zamanı, hipcc ve LLVM tabanlı derleyici
  • rocminfo ve rocm-smi ile cihaz ve sıcaklık bilgisi
  • hipcc ile derleme, --offload-arch ve gfx hedef seçimi
  • Docker ile ROCm imajı kullanımı ve cihaz geçirme
  • CMake'te find_package(hip) ile proje yapılandırması
  • Sürüm uyumluluğu ve desteklenen GPU matrisi
Modül 3
HIP Çekirdek Programlama
  • __global__ çekirdek tanımı, hipLaunchKernelGGL ve <<< >>> söz dizimi
  • threadIdx, blockIdx, blockDim ve ızgara boyutu hesabı
  • hipMalloc, hipMemcpy ve hipFree ile cihaz belleği yönetimi
  • Hata denetimi: hipGetLastError ve makro sarmalayıcıları
  • Vektör toplama ve SAXPY örnekleri
  • Birleşik (managed) bellek ve hipMallocManaged kullanımı
Modül 4
Bellek Erişim Desenleri
  • Global bellek birleştirme (coalescing) kuralları
  • Dizi yapıları (AoS) ile yapı dizileri (SoA) karşılaştırması
  • Bellek hizalama ve vektörel yükleme (float4)
  • Sabit ve doku bellek kullanımı
  • Bank çakışması kavramına giriş
  • Veri aktarım süresi ile hesaplama süresinin dengesi
Günün hedefiKatılımcı paylaşımlı bellek, stream ve atomik işlemlerle çekirdekleri hızlandırır.
Modül 1
LDS ve İş Parçacığı İşbirliği
  • __shared__ bellek ile matris çarpımında karo (tiling) tekniği
  • __syncthreads ve bariyer maliyeti
  • LDS bank çakışmalarının dolgu (padding) ile giderilmesi
  • Wavefront içi shuffle ve __shfl işlemleri
  • Wavefront boyutu 64 varsayımının taşınabilirlik riskleri
  • Dinamik paylaşımlı bellek ayırma
Modül 2
Azaltma ve Tarama Algoritmaları
  • Ağaç tabanlı paralel azaltma (reduction) çekirdeği
  • Wavefront seviyesinde azaltma ve blok seviyesinde birleştirme
  • Prefix sum (scan) algoritması ve work-efficient varyant
  • atomicAdd kullanımı ve çakışma maliyeti
  • rocPRIM ve hipCUB ile hazır ilkeller
  • Histogram hesaplamada atomik ve LDS yaklaşımı
Modül 3
Stream, Event ve Çok Cihaz
  • hipStream_t ile eşzamansız kopya ve çekirdek örtüşmesi
  • Pinned (sabitlenmiş) bellek ve hipHostMalloc
  • hipEvent ile zamanlama ve stream senkronizasyonu
  • hipGraph ile çekirdek grafı oluşturma
  • Çok GPU'da peer-to-peer erişim ve hipSetDevice
  • RCCL ile toplu iletişim işlemlerine giriş
Modül 4
Kütüphaneler ve CUDA Taşıma
  • hipify-perl ve hipify-clang ile CUDA kaynak dönüşümü
  • rocBLAS, hipBLAS ve rocFFT ile hazır matematik kütüphaneleri
  • MIOpen ve derin öğrenme çerçevelerinde ROCm desteği (PyTorch)
  • Taşıma sırasında karşılaşılan API farkları ve çözüm kalıpları
  • CUDA ve HIP için tek kaynaktan derleme (HIP_PLATFORM)
  • Birim test ve sayısal doğruluk karşılaştırması
Günün hedefiKatılımcı profil verisini yorumlar, darboğazları belirler ve çekirdek başlatma parametrelerini ayarlar.
Modül 1
rocprof ile Performans Ölçümü
  • rocprof --stats ve --hip-trace ile çekirdek süreleri
  • Donanım sayaçları: VALU kullanımı, bellek bant genişliği, L2 vuruş oranı
  • rocprofv3 ve Perfetto ile zaman çizelgesi görselleştirme
  • Roofline analizi ile hesaplama veya bellek sınırlı karar
  • omniperf ile otomatik analiz panoları
  • Mikro kıyaslama yazma ve ısınma turlarının önemi
Modül 2
Occupancy ve Kaynak Ayarı
  • __launch_bounds__ ile blok boyutu ve register sınırı
  • VGPR/SGPR kullanımının derleyici çıktısıyla incelenmesi (--save-temps)
  • Register taşması (spilling) ve scratch bellek etkisi
  • Blok boyutu seçimi ve ızgara yapılandırması denemeleri
  • Dallanma ayrışması (divergence) ve koşulların yeniden yazımı
  • Döngü açma ve #pragma unroll etkileri
Modül 3
Matris Çarpımı Optimizasyonu
  • Naif GEMM'den karolu GEMM'e adım adım geçiş
  • Register karolama ve vektörel LDS erişimi
  • MFMA kullanan rocWMMA ile matrix core programlama
  • Yarı duyarlılık (FP16/BF16) ve karışık duyarlılık hesaplama
  • rocBLAS sonuçlarıyla elle yazılmış çekirdeğin karşılaştırması
  • Doğruluk ve hız dengesi: hata toleransı belirleme
Modül 4
Üretim Uygulama ve Hata Ayıklama
  • rocgdb ve printf ile çekirdek hata ayıklama
  • Bellek hatalarının compute-sanitizer benzeri araçlarla yakalanması
  • Kernel zaman aşımı ve GPU sıfırlama (reset) sorunları
  • Kapsayıcılaştırılmış ROCm uygulamalarında kaynak sınırları
  • Taşınabilirlik: AMD ve NVIDIA için ortak kod tabanı stratejisi
  • Kapanış projesi: çok aşamalı hesaplama hattını ölçüp optimize etme

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
ROCm Kurulumu

ROCm ortamını kurup hedef gfx mimarisine göre derleme yapabilirsiniz.

🧩
HIP Çekirdekleri

Bellek yönetimi ve hata denetimiyle HIP çekirdekleri yazabilirsiniz.

🛠️
Bellek Optimizasyonu

Birleşik erişim ve LDS ile bellek darboğazlarını azaltabilirsiniz.

📊
Paralel Algoritmalar

Azaltma, tarama ve histogram algoritmalarını GPU'da uygulayabilirsiniz.

🔍
Eşzamansız Çalışma

Stream ve event ile kopya ve hesaplamayı örtüştürebilirsiniz.

🧪
CUDA Taşıma

hipify ile CUDA kodunu AMD GPU'ya taşıyabilirsiniz.

📐
Profil Analizi

rocprof ve omniperf çıktılarını yorumlayabilirsiniz.

🚀
Kütüphane Kullanımı

rocBLAS ve rocPRIM ile hazır bileşenleri kendi projelerinize entegre edebilirsiniz.

Kimler İçin Uygundur?

  • C++ bilen yazılım geliştiriciler
  • yüksek başarımlı hesaplama
  • yapay zekâ altyapı mühendisleri ile CUDA kodunu AMD donanıma taşımak isteyen ekipler için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
C++ bilen yazılım geliştiriciler, yüksek başarımlı hesaplama ve yapay zekâ altyapı mühendisleri ile CUDA kodunu AMD donanıma taşımak isteyen ekipler için uygundur.
Eğitim için AMD GPU şart mı?
ROCm destekli bir AMD GPU gerekir; bulunmayan katılımcılar için uzak laboratuvar erişimi sağlanır.
CUDA bilgisi gerekli mi?
Zorunlu değildir, ancak CUDA bilenler hipify bölümünden daha fazla fayda sağlar.
Windows'ta çalışılır mı?
Ana ortam Linux'tur; Windows için HIP SDK farkları kısaca belirtilir.
Sertifika veriliyor mu?
Programı tamamlayanlara Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. AMD GPU Programming Eğitimi Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre3 gün
Seviyeİleri Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

Yazılım Geliştirme GenelNo-code ML with RapidMiner: Getting Started with RapidMiner Eğitimi
Yazılım Geliştirme Eğitimleri

No-code ML with RapidMiner: Getting Started with RapidMiner Eğitimi

2 günBaşlangıçOnline / Yüz Yüze / Hibrit

RapidMiner ile no-code makine öğrenmesi eğitimi: veri hazırlama, Decision Tree, Cross Validation, Auto Model ve model değerlendirme uygulamaları.

Detayları Gör →
Yazılım Geliştirme GenelObject Oriented Programming Eğitimi
Yazılım Geliştirme Eğitimleri

Object Oriented Programming Eğitimi

2 günTemelOnline / Yüz Yüze / Hibrit

Nesne yönelimli programlama (OOP) eğitimi: sınıf, kapsülleme, kalıtım, polimorfizm, SOLID ve Strategy, Factory, Observer tasarım desenleri.

Detayları Gör →
Yazılım Geliştirme GenelONOS için Uygulama Geliştirme Eğitimi
Yazılım Geliştirme Eğitimleri

ONOS için Uygulama Geliştirme Eğitimi

2 günİleriOnline / Yüz Yüze / Hibrit

ONOS SDN uygulama geliştirme eğitimi: Java, OSGi, Intent Framework, FlowRule, PacketProcessor, REST API ve Mininet ile test.

Detayları Gör →
Yazılım Geliştirme GenelOpenBMC Yocto Geliştirme: BitBake, Katmanlar ve Derleme Sistemleri Eğitimi
Yazılım Geliştirme Eğitimleri

OpenBMC Yocto Geliştirme: BitBake, Katmanlar ve Derleme Sistemleri Eğitimi

2 günİleriOnline / Yüz Yüze / Hibrit

OpenBMC Yocto geliştirme eğitimi: BitBake, meta-katmanlar, recipe ve bbappend yazımı, devtool, SDK ve firmware imajı derleme.

Detayları Gör →
Yazılım Geliştirme GenelOpenCL ile GPU Programlama Eğitimi
Yazılım Geliştirme Eğitimleri

OpenCL ile GPU Programlama Eğitimi

2 günİleriOnline / Yüz Yüze / Hibrit

OpenCL ile GPU programlama eğitimi: platform modeli, kernel yazımı, local bellek, matris çarpımı, redüksiyon ve profiling uygulamaları.

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn