8 puan yazan ssssut 2020-12-31 | 1 yorum | WhatsApp'ta paylaş

Nvidia

Pazarın öncüsü, gelişmiş bir araç takımı. Hâlâ hızlı biçimde gelişiyor ve özellikle yüksek seviyeli API'ler bu konuda daha da önde. Nvidia'nın sattığı tüm GPU'lar CUDA'yı destekliyor.

Eskiden PGI olarak bilinen ve yalnızca Linux'ta kullanılabilen HPC SDK, OpenACC, C++ standart paralelleştirme (stdpar) ve OpenMP (beta) desteği ekledi.

Nvidia'nın HPC SDK lisanslamasındaki sorunlardan biri şu madde:

You shall strictly prohibit the further distribution of the Run-Time Files by users of an End-User Application

Kullanıcılar, paketlenmiş uygulamanın ihtiyaç duyduğu çalışma zamanı dosyalarıyla birlikte uygulamayı yeniden dağıtamadığı için, uygulamayı dağıtmak fiilen mümkün olmayabilir. Bu sorun, çoğunluğun kullandığı CUDA SDK için geçerli değil.

AMD

AMD donanımında odaklanılan başlıca GPGPU programlama platformu ROCm. AMD'nin sahip olduğu HIP dışında resmî olarak desteklenenler OpenMP ve OpenACC.

Bunun birkaç belirgin dezavantajı var:

  • Yalnızca Linux, bu yüzden pazarın önemli bir kısmı için seçenek bile olamıyor.

  • ROCm araç zinciriyle üretilen ikili dosyalar IR'yi hedeflemiyor; donanıma bağımlı oluyor. Yeni bir nesil çıktığında ikili dosyaların yeniden derlenmesi gerekiyor.

  • Yeni donanım için destek, sürüm yayımlandıktan sonra bile uzun süre fiilen yok.

Bu dezavantajlar, masaüstünde kullanılabilirliğini fiilen ortadan kaldırıyor ve AMD GPU donanımı için üretici tarafından sunulan API olarak geriye yalnızca OpenCL kalıyor.

Intel

oneAPI, yakın dönemde çıkan tüm Intel GPU'larda destekleniyor, ancak yüksek performans henüz yok. Intel'in Level Zero'su dışında resmî olarak desteklenen API'ler OpenMP ve SYCL.

oneAPI'nin Level Zero'su IR olarak SPIR-V kullanıyor; bu da gelecekte çıkacak donanımlar için sorunsuz destek sağlıyor. Windows da destekleniyor.

Khronos

Birden fazla üretici tarafından kullanılabilen endüstri standartları sunuyor.

OpenCL 3.0 olarak bilinen sıfırlama hamlesinin henüz büyük bir etkisi olmadı. SYCL ile Vulkan hesaplamanın birleşimi, iyi bir geliştirici deneyimiyle birlikte tek bir ikili dosyanın birden çok üreticide çalışmasını sağlayan daha iyi bir yol olabilir.

Gerçek OpenCL desteği:

Bugün Nvidia, uzantıları destekleyen OpenCL 1.2 sunuyor.

AMD, kullanılabilir bir OpenCL 1.2 uygulamasıyla birlikte son derece hatalı bir OpenCL 2.x uygulaması sunuyor (üstelik düzgün hata ayıklama yöntemi de yok).

Intel, Intel GPU'ları için bir OpenCL 3.0 uygulaması sunuyor.

OpenCL 1.2, Apple Silicon dâhil macOS'ta da destekleniyor, ancak belgeleri kullanımdan kaldırılmış durumda.

Microsoft

C++ AMP ölmüş gibi görünüyor. Üreticiden bağımsızdı ve Visual C++ tarafından destekleniyordu, ancak D3D11'den sonra hiç güncellenmedi. Eski ROCm sürümleri de destekleniyordu.

Apple

Metal hesaplama yalnızca macOS/iOS/… için. GPGPU alanında çekiciliği oldukça düşük; özellikle GPU hesaplama performansı açısından daha da öyle.

1 yorum

 
kbumsik 2020-12-31

GPGPU, üreticiye ve işletim sistemine göre durum çok farklı olduğu için umarım bir gün birleşik hale gelir.

Bu arada Windows’un DirectML’ine dair bir değinme yok. Donanımı oldukça geniş kapsamda destekliyor ve son zamanlarda WSL’de de çalışacak hale getirdiler; bu yüzden ilgimi çekiyordu doğrusu.