Bu makale, CUDA’nin ne olduğunu ve CUDA’nin nasıl kullanılacağını ayrıntılı olarak açıklayacaktır.
CUDA
CUDA, NVIDIA tarafından geliştirilen ve 23 Haziran 2007’de tanıtılan bir GPU mimarisidir. “CUDA” adı, başlangıçta “Compute Unified Device Architecture”ın kısaltmasıydı, ancak o zamandan beri kısaltmanın resmi kullanımı durduruldu.
CUDA, paralel işlemeden yararlanan bilgi işlem görevlerinin performansını artırır. 3D görüntüleri gerçek zamanlı olarak işlemek gibi bu iş yüklerine genellikle “utanç verici derecede paralel” denir çünkü doğal olarak bireysel çekirdekler tarafından hesaplanmaya uygundurlar. CUDA GPU’lar, tek bir video kartına entegre edilmiş, sayıları binleri bulabilen bu CUDA çekirdeklerinin birçoğuna sahiptir. Yazılım, NVIDIA tarafından sağlanan düşük seviyeli CUDA kitaplıkları ve API’ler kullanılarak mimari için özel olarak yazılmalıdır. Bu kitaplıkların yerel programlama dili C++’dır, ancak sarmalayıcılar diğer diller için yazılmıştır ve çok çeşitli uygulamalarda CUDA işlemeyi mümkün kılar.
İlk olarak grafiğe özgü görevleri gerçekleştirmek için tasarlanmış olsa da, CUDA mimarisi 2012’de kripto para birimi blok zincirlerinin madenciliği gibi daha genel hesaplama türlerini işlemeye geçti.
CUDA düşük seviyeli API’ler
CUDA mimarisinde belirli görevleri gerçekleştirmek için düşük seviyeli API’ler şunları içerir:
API | Açıklama |
---|---|
kübik | Görüntü analizi ve makine öğrenimi için hızlandırılmış temel lineer cebir alt rutinleri. |
cudaRT | CUDA uygulamaları için başlatma, iş parçacığı bağlamları ve modüllerin basitleştirilmiş yönetimini sağlayan çalışma zamanı API’si. |
cuFFT | Çok çeşitli bilimsel disiplinlere uygulanabilen Hızlı Fourier Dönüşümleri, bir CPU’dakinden 10 kat daha hızlı çalışacak şekilde hızlandırılmıştır. |
curRANDM |
Toplu miktarlarda sözde rasgele sayı üretimi. |
cuÇözücü | Hızlandırılmış “doğrudan çözücüler”, belirli lineer cebir uygulamalarını çözmek için verimli algoritmalar. |
cuSPARSE | Birçok sıfır değerli öğe içeren seyrek matrislerle çalışmak için alt programlar. CPU uygulamalarından 5 kata kadar daha hızlı çalışacak şekilde hızlandırılmıştır. |
nükleer santral | Görüntüleri, videoları ve diğer dijital sinyalleri bir CPU’dakinden 30 kata kadar daha hızlı işlemek için NVIDIA Performance Primitives kitaplığı. |
nvGRAPH | Google’ın ünlü PageRank algoritması da dahil olmak üzere grafik analiz algoritmalarının hızlandırılmış uygulamaları. |
NVML | NVIDIA Yönetim Kitaplığı, CUDA görevlerini gerçekleştiren birden fazla GPU’nun denetlenmesini ve yönetilmesini sağlar. |
NVRTC | C++ kodu dizelerini gerçek zamanlı olarak CUDA koduna dönüştüren çalışma zamanı derleme kitaplığı. |
PhysX | Akıllı telefonlardan üst düzey iş istasyonlarına kadar çeşitli cihazları destekleyen ölçeklenebilir bir fizik motoru. Unreal Engine, Unity3D ve Stingray gibi mevcut üçüncü taraf oyun motorlarıyla entegre. |
CUDA sarmalayıcıları olan diller
CUDA GPU’lar için yazılım oluşturabilen programlama dilleri (C++ dışında) şunları içerir:
- Haskell
- Java
- Julia
- Lua
- peltek
- matematik
- MATLAB
- Perl
- piton
- r
- yakut
CUDA GPU örnekleri
Aşağıda, CUDA çekirdek sayısı, MHz cinsinden maksimum frekans, GB cinsinden bellek ve piyasaya sürüldüğünde MSRP’ye göre karşılaştırılan bir dizi NVIDIA GPU örnekleri verilmiştir.
GPU adı | CUDA çekirdekleri | Maksimum Frekans (MHz) | Bellek (GB) | MSRP |
---|---|---|---|---|
GeForce GTX TITAN Z | 5760 | 876 | 12 | 1420 $ |
NVIDIA TITAN Xp | 3840 | 1582 | 12 | 1200$ |
GeForce GTX 1080 | 2560 | 1733 | 8 | $499 |
GeForce GTX980 | 2048 | 1216 | 4 | 550 dolar |
GeForce GTX960 | 1024 | 1178 | 2 | 230$ |
GeForce GTX 750 | 512 | 1085 | 1 | 120 dolar |
GeForce GT430 | 96 | 700 | 1 | 60 $ |