CUDA C Giriş

Öğrenim Hedefleri

  • GPU hesaplama için ana yolları ve kaynakları öğrenmek.

GPU Hesaplamada Kullanılan Yöntemler

Kütüphaneler

  • GPU Hesaplamada kütüphane kullanımı, genelde kullanımı oldukça kolay olan ve iyi performans veren bir seçenek olarak yer almaktadır. Buna bir örnek olarak thrust verilebilir.

Not

Thrust kütüphanesi kullanılarak vektör toplama işlemi örneği için tıklayınız.

Derleyici Direktifleri (Compiler Directives)

  • Derleyici direktifleri kolay kullanım sunmaları ve taşınabilir kod oluşturmaları açısından tercih edilen başka bir yöntemdir. Bu tür direktiflere örnek olarak OpenACC gösterilebilir.

Not

OpenACC kullanılarak vektör toplama işlemi örneği için tıklayınız.

Programlama Dilleri

  • Programlama dilleri sunduğu performans ve esneklik açısından GPU programlamada tercih edilen bir başka yöntemdir. Bu dokümanda anlatılan CUDA C/C++ bir GPU programlama dili çok iyi bir örnektir.

Not

CUDA kullanılarak vektör toplama işlemi örneği için tıklayınız.

CUDA

CUDA C/C++, FORTRAN ve Python gibi çeşitli programlama dilleri ile kullanılabilen NVIDIA firmasi tarafından 2007 yılında dağıtımına başlanan GPU programlama için kullanılan bir uygulama programlama arayüzüdür.

Bu dokümantasyon serisinde göreceğiniz CUDA kodlarında C/C++ kullanılmış olup, örnekler TRUBA üzerinde çalıştırılmıştır.

İlerleyen bölümlerde genel bir CUDA programında sıklıkla kullandığımız fonksiyonlardan ve program akışından bahsediyor olacağız ancak kullanacağımız terimler ve genel anlamda CUDA hakkında biraz daha bilgi sahibi olmak için CUDA programlarının derlenmesini gösteren aşağıdaki görseli inceleyelim.

../../../_images/01.jpg

Görüldüğü üzere CUDA C programı, NVIDIA nvcc derleyicisi ile derlenmesi esnasında iki farklı işlemden geçer.

  • İlki host kodu olarak geçen ve işlemci üzerinde çalıştırılan kısımdır ve bu kısım klasik bir C++ derleyicisi (örneğin g++) ile derlenir. Bu derleyicinin değiştirilmesi mümkündür.

  • İkincisi ise cihaz (device) kodu olarak geçen ve grafik işlem ünitesi üzerinde çalıştırılan kısımdır.

Not

Basit bir CUDA kodunun nvcc ile derlenmesi için

nvcc -o program main.cu

kullanılabilir. Daha detaylı olarak derleme işlemlerini ilerleyen bölümlerde inceleyeceğiz.