CUDA Çekirdekleri ile Tensör Çekirdekleri Arasındaki Fark Nedir? (Açıklandı) - All The Differences
İçindekiler
CUDA ve Tensor çekirdekleri Nvidia adlı bir şirket tarafından geliştirilen ürünlerdir. Peki CUDA çekirdekleri ve Tensor çekirdekleri nedir? CUDA'nın açılımı Compute Unified Device Architecture'dır. CUDA çekirdekleri GPU'larınızda, akıllı telefonlarınızda ve hatta Nvidia geliştiricilerinin söylediği gibi arabalarınızda bile mevcuttur.
CUDA çekirdekleri, yazılımın genel amaçlı işleme için belirli grafik işleme birimi (GPU) türlerinden yararlanmasını sağlayan paralel bir bilgi işlem platformu ve uygulama programlama arayüzüdür (API).
Yine Nvidia tarafından geliştirilen tensör çekirdekleri ise GPU'larda kullanılmaktadır. Tensör Çekirdekleri, karışık hassasiyetli hesaplamaya olanak tanıyarak, doğruluğu korurken verimi artırmak için hesaplamaları dinamik olarak uyarlar.
Basit bir ifadeyle, bu çekirdekler belirli hesaplamaları yapmak için bilgisayarınızdaki GPU'ların önemli bir parçasıdır. CUDA çekirdekleri iki sayıyı çarpmak ve başka bir sayıya eklemek için kullanılır.
Tensor çekirdeği ise aynıdır, ancak 4×4 matrislerle. Bu hesaplamalar temelde grafikleri sizin için daha hızlı oluşturuyor.
CUDA Nedir?
Nvidia tarafından geliştirilen ve 23 Haziran 2007'de piyasaya sürülen Compute Unified Device Architecture, kısaca CUDA, bir paralel hesaplama platformu ve uygulama programlama arayüzüdür (API).
Bu, yazılımın genel amaçlı işlem için belirli grafik işlem birimi (GPU) türlerini kullanmasını sağlar; bu yöntem GPU'larda genel amaçlı hesaplama (GPU) olarak bilinir.
CUDA, GPU'nun sanal komut setine ve hesaplama çekirdeklerinin yürütülmesi için paralel hesaplama öğelerine doğrudan erişim sağlayan bir yazılım katmanıdır. CUDA, C, C++ ve Fortran gibi farklı programlama dilleriyle çalışmak üzere geliştirilmiştir.
Farklı programlama dilleriyle çalışabilme özelliği, grafik programlamada daha gelişmiş bir beceri tabanına sahip olmanızı gerektiren Direct3D veya OpenGL gibi önceki API'lerden ayırırsak, paralel programlama uzmanlarının GPU kaynaklarından yararlanmasını kolaylaştırır.
CUDA'lı GPU, OpenMP, OpenACC, OpenCL ve ayrıca bu tür kodu CUDA'ya derleyebilen HIP gibi programlama çerçevelerini de destekler. CUDA için kullanılan ilk isim, Compute Unified Device Architecture'ın kısaltmasıydı. Ancak Nvidia daha sonra yaygın olarak kullanılan kısaltmayı bıraktı.
Güçlü bir Nvidia Grafik kartı GTX 1080 Ti
CUDA Hakkında Daha Fazla Bilgi
Özel bir bilgisayar işlemcisi olan grafik işlem birimi (GPU), gerçek zamanlı, yoğun hesaplama gerektiren 3D grafik iş yüklerinin ihtiyaçlarını karşılar.
2012 yılı civarında GPU'lar gelişti ve büyük bloklar için etkili veri işleme sağlayan son derece paralel çok çekirdekli sistemler haline geldi.
Büyük veri bloklarını paralel olarak işlerken bu tasarım, aşağıdaki gibi algoritmalar için genel amaçlı merkezi işlem birimlerinden (CPU'lar) daha üstündür:
- kriptografik hash fonksiyonları
- makine öğrenimi
- moleküler di̇nami̇k si̇mülasyonlar
- fi̇zi̇k motorlari
- sıralama algoritmaları
CUDA Mimarisinin Şimdi ve Gelecekte Kullanım Alanları
- 3D grafiklerin hızlandırılmış işlenmesi
- Video dosyası formatlarının hızlandırılmış birbirine dönüştürülmesi
- Hızlandırılmış şifreleme, şifre çözme ve sıkıştırma
- Biyoinformatik, örn. NGS DNA dizileme BarraCUDA
- Proteinlerin doğal konformasyonunu tahmin etmek gibi dağıtılmış hesaplamalar
- Tıbbi analiz simülasyonları, örneğin CT ve MRI tarama görüntülerine dayalı sanal gerçeklik
- Fiziksel simülasyonlar, özellikle akışkanlar dinamiği
- Makine öğrenimi problemlerinde sinir ağı eğitimi
- Yüz tanıma
- email protected] gibi dağıtık hesaplama projeleri ve BOINC kullanan diğer projeler
- Moleküler dinamikler
- Kripto para madenciliği
- Hareketten yapı (SfM) yazılımı
Tensör Çekirdeği Nedir?
Tensor Çekirdekleri adı verilen özel çekirdekler karışık hassasiyetli eğitime olanak tanır. Bu özel çekirdeklerin ilk nesli bunu birleştirilmiş çarpma-ekleme algoritması ile yapar. Bu, iki 4 x 4 FP16 matrisini 4 x 4 FP16 veya FP32 matrisine çarpmayı ve eklemeyi mümkün kılar.
Ayrıca bakınız: "Şimdi nasıl hissediyorsun?" vs. "Şimdi nasıl hissediyorsun?" - All The DifferencesNihai sonuç, yalnızca hafif bir hassasiyet kaybıyla FP32 olacaktır, karma hassasiyetli hesaplama, giriş matrisleri düşük hassasiyetli FP16 olsa bile bu şekilde belirtilir.
Pratikte bu, modelin nihai etkinliği üzerinde çok az etkisi olan hesaplamaları önemli ölçüde hızlandırır. Bu kapasite, daha sonraki mikro mimariler tarafından daha az hassas bilgisayar sayı temsillerine kadar genişletilmiştir.
İlk nesil V100'den başlayarak Volta mikro mimarisi ile tanıtıldı, her geçen nesilde yeni GPU mikro mimarileri ile daha fazla bilgisayar sayı hassasiyeti formatı hesaplama için kullanılabilir hale getirildi.
Takip eden bölümde Tensör Çekirdeklerinin kapasitesinin ve işlevselliğinin her mikro mimari neslinde nasıl değiştiğinden ve geliştiğinden bahsedeceğiz.
Titan V tarafından grafik olarak işlenmiş bir görüntü
Tensör Çekirdekleri Nasıl Çalışır?
Birinci Nesil:
Volta GPU mikro mimarisi, ilk nesil Tensor Çekirdekleri ile birlikte sunulmuştur. Bu çekirdekler, karışık hassasiyet ve FP16 sayı formatı ile eğitim yapmayı mümkün kılmıştır.
Bu, belirli GPU'lar için teraFLOP veriminde 12 kata kadar artış sağlayabilir. En üst seviye V100'ün 640 çekirdeği, önceki neslin Pascal GPU'larına göre performans hızında 5 kata kadar artış sağlar.
İkinci Nesil:
Turing GPU'ların piyasaya sürülmesiyle birlikte ikinci nesil Tensör Çekirdekleri tanıtıldı. Int8, Int4 ve Int1, daha önce FP16 ile sınırlı olan desteklenen Tensör Çekirdeği kesinlikleri listesine eklendi.
Karışık hassasiyetli eğitim prosedürleri sayesinde GPU'nun performans verimi Pascal GPU'lara kıyasla 32 kata kadar artmıştır.
Üçüncü Nesil:
Ampere GPU'daki mimari, FP64, TF32 ve bfloat16 hassasiyetleri için destek ekleyerek Volta ve Turing mikro mimarilerinin önceki ilerlemelerini genişletiyor.
Derin öğrenme eğitimi ve çıkarım faaliyetleri bu ekstra hassasiyetli formatlarla çok daha fazla hızlandırılır. Örneğin, TF32 formatı FP32'ye benzer şekilde işlev görürken aynı zamanda herhangi bir kodu değiştirmeden 20 kata kadar hızlanmayı garanti eder.
Ardından, sadece birkaç satır kodla, otomatik karışık hassasiyet uygulaması eğitimi 2 kat daha hızlandıracaktır.
Son derece hızlı çoklu GPU etkileşimlerini mümkün kılan üçüncü nesil NVLink, üçüncü nesil Ray Tracing çekirdekleri ve seyrek matris matematiği ile uzmanlaşma Ampere mikro mimarisinin diğer yönleridir .
Dördüncü Nesil:
Hopper mikro mimari tabanlı dördüncü nesil Tensör Çekirdeklerinin gelecekte piyasaya sürülmesi planlanmaktadır. Bir sonraki H100'de dördüncü nesil Tensör Çekirdekleri.
Mart 2022'de piyasaya sürülmesi beklenen FP8 hassas formatlarını işleyebilecek ve NVIDIA'ya göre devasa dil modellerini "önceki nesle göre şaşırtıcı bir şekilde 30 kat hızlandıracak."
Bir RTX ekran kartı, tensör çekirdekleri içerdiğinden grafikleri çok hızlı işlemek için kullanılır.
CUDA Çekirdekleri ve Tensör Çekirdekleri Arasındaki Fark
Tensör çekirdekleri şu anda Titan V ve Tesla V100 ile sınırlıdır. Her iki GPU'daki 5120 CUDA çekirdeği, GPU saati başına maksimum bir tek hassasiyetli çarpma-toplama işlemi (örneğin, fp32'de: x += y * z) kapasitesine sahiptir (örneğin, Tesla V100 PCIe frekansı 1.38Gz'dir).
Her tensör çekirdeği küçük matrisler için 4×4 küçük matrisler üzerinde çalışır. Bir GPU saati başına, her tensör çekirdeği bir matris çarpma-biriktirme işlemini tamamlayabilir.
Ayrıca bakınız: X264 ve H264 Arasındaki Fark Nedir? (Fark Açıklandı) - All The Differencesİki 4×4 FP16 matrisini çarpar ve akümülatörde (bu da bir fp32 4×4 matrisidir) ortaya çıkan 4×4 FP32 matrisini ekler.
Giriş matrisleri fp16 iken çarpma sonuçları ve akümülatör fp32 olduğundan, algoritma karışık hassasiyetli olarak bilinir.
Doğru terim muhtemelen sadece "4×4 matris çekirdekleri" olacaktır, ancak NVIDIA pazarlama ekibi "tensör çekirdekleri" kullanmayı tercih etti.
Tensör çekirdeklerinin kısaca tam açıklaması
GPU kartı | CUDA çekirdekleri | VRAM |
---|---|---|
GeForce GTX 1660 Ti | 1536 | 6GB |
GeForce GTX 1660 Süper | 1408 | 6GB |
GeForce GTX 1660 | 1408 | 6GB |
GeForce GTX 1650 Süper | 1408 | 4GB |
GeForce GTX 1650 | 1024 ve 896 | 4GB |
GeForce GTX 1060 3GB | 1280 | 4GB |
GeForce GTX 1650 | 1280 | 3GB |
GeForce GTX 1060 6GB | 768 | 6GB |
GeForce GTX 1050 Ti (3GB) | 768 | 4GB |
GeForce GTX 1050 (2GB) | 640 | 3GB |
GeForce GTX 960 | 1024 | 2GB |
GeForce GTX 950 | 786 | 2GB |
GeForce GTX 780 Ti | 2880 | 2GB |
GeForce GTX 780 | 2304 | 3GB |
GeForce GTX 750 Ti | 640 | 2 GB |
GeForce GTX 750 | 512 | 1GB veya 2 GB |
CUDA çekirdekleri içeren GPU'lar
Sonuç
- CUDA ve Tensor çekirdekleri, her ikisi de Nvidia adlı bir şirket tarafından geliştirilen ürünlerdir. CUDA, Compute Unified Device Architecture'ın kısaltmasıdır. Bu CUDA çekirdekleri GPU'larınızda, akıllı telefonlarınızda ve hatta arabalarınızda bulunur.
- GPU'larda ise yine Nvidia tarafından geliştirilen tensör çekirdekleri kullanılmaktadır. "Tensör çekirdeği" adı verilen özel çekirdekler karışık hassasiyetli eğitime olanak sağlamaktadır. İlk nesil Tensör Çekirdekleri karışık hassasiyet ve FP16 sayı formatı ile eğitim yapmayı mümkün kılmıştır.
- Bu, belirli GPU'lar için teraFLOP veriminde 12 kata kadar artış sağlayabilir. Int8, Int4 ve Int1, desteklenen Tensor Core hassasiyetleri listesine eklendi.
- Karışık hassasiyetli eğitim prosedürleri sayesinde GPU'nun performansı 32 kata kadar artırılmıştır. Hopper mikro mimari tabanlı dördüncü nesil Tensor Çekirdeklerinin gelecekte piyasaya sürülmesi planlanmaktadır.