SON DAKİKA

Nvdia

Kod, Depolar, Kullanıcılar, Sorunlar ve Pull Request’lerde Arama Yapma

CUTLASS 3.8.0

CUTLASS 3.8.0 – Ocak 2025

CUTLASS, CUDA için yüksek performanslı matris-matris çarpımı (GEMM) ve ilgili hesaplamaları uygulamak için kullanılan bir dizi C++ şablonlarından oluşur. Bu koleksiyon, cuBLAS ve cuDNN‘de kullanılan veri hareketi stratejileri gibi, hiyerarşik ayrıştırma yöntemleri ile geliştirilmiştir. CUTLASS, bu “hareket eden elemanları” yeniden kullanılabilir, modüler yazılım bileşenlerine ayrıştırır ve bunları C++ şablon sınıfları ile soyutlayarak kullanır. Farklı düzeylerdeki paralelleştirme hiyerarşileri için özel eğilim boyutları, veri türleri ve diğer algoritmik politikalar ile özelleştirilebilir ve ayarlanabilir. Bu sağladığı esneklik, kullanıcıların onları özel çekirdekler ve uygulamalar içerisinde bileşen olarak daha kolay kullanmalarını sağlar.

Çeşitli uygulamaları desteklemek için CUTLASS, karışık hassasiyetli hesaplama desteği sunar. Bu, FP64, FP32, TF32, FP16, BF16, tensor çekirdek talimatları aracılığıyla FP32 emülasyonu, 8b kayan nokta türleri (e5m2 ve e4m3), blok ölçekli veri türleri (NVIDIA NVFP4 ve OCP standartları MXFP4, MXFP6, MXFP8), dar tam sayılar (4 ve 8b işaretli ve işaretsiz tam sayılar) ve ikili 1b veri türleri gibi çeşitli spesifik veri hareketleri ve çarpma-toplama soyutlamalarını içerir. CUTLASS, NVIDIA’nın Volta, Turing, Ampere, Ada, Hopper ve Blackwell mimarileri tarafından uygulanan programlanabilir, yüksek verimli Tensor Core hedef alarak optimal matris çarpma işlemleri geliştirmektedir.

Neler Yeni?

CUTLASS 3.8, NVIDIA Blackwell SM100 mimarisini destekleyen ilk sürümdür. Blackwell’in yeni özellikleri hakkında daha fazla bilgi için, lütfen CUDA 12.8 için PTX belgelerine başvurun.

Performans

CUTLASS primitifleri son derece etkilidir. Cihaz çapında GEMM çekirdekleri oluşturulduğunda, teorik maksimum verimliliğin neredeyse tamamını sergilerler. Aşağıdaki şekilde, CUTLASS 3.8’in çeşitli girdi ve çıktı veri türlerinde, NVIDIA Blackwell SM100 mimarisi üzerinde teorik tepe kullanımının % olarak performansı gösterilmektedir.

CUTLASS Kütüphanesi

CUTLASS 3.0, CuTe adında yeni bir ana kütüphane tanıtmaktadır. Bu kütüphane, cihaz katmanları ve veri düzenleri üzerinde tanımlama ve manipülasyon için C++ CUDA şablonları içerir. CuTe, veri türünü, şekli ve bellekteki düzeni kompakt bir şekilde tanımlayan Layout ve Tensor nesnelerini içerir.

CuTe, matrislerin ve tensörlerin bellekte nasıl düzenlendiğini tanımlar. Bu düzenler, aynı zamanda, yaygın işlemleri çok daha kolay tasarlayıp uygulamak için bir araya getirilebilir ve işlevsel bileşim ile manipüle edilebilir.

Uyumluluk ve Gereksinimler

CUTLASS için minimum gereksinimler şunlardır:

  • Mimari: Volta (hesap yeteneği 7.0)
  • Derleyici: En az C++17 desteklemelidir.
  • Gerekli CUDA Araç Kiti sürümü: 11.4

CUTLASS, C++17 host derleyicisi gerektirir ve CUDA 12.8 Toolkit ile kurulduğunda en iyi performansı gösterir. Ayrıca, CUDA 11.4, 11.5, 11.6, 11.7, 11.8 ve 12.x sürümleri ile de uyumludur.

İşletim Sistemleri ve Donanım Desteği

Aşağıda belirtilen işletim sistemlerinde test edilmiştir:

  • Ubuntu 18.04
  • Ubuntu 20.04
  • Ubuntu 22.04

CUTLASS, NVIDIA’nın Volta, Turing, Ampere, Ada, Hopper ve Blackwell mimarilerine dayanarak etkilidir.

Öğrenme ve Geliştirme Platformları

CUTLASS, başkaları tarafından kullanılmak üzere header-only bir kütüphane olarak sunulmaktadır. Uygulamalar, CUTLASS’ın include/ dizinini projelerinde hedef almalıdır. CUTLASS’un birim testleri, örnekleri ve yardımcı araçları CMake ile oluşturulabilir.

Tüm bu unsurlar, etkili bir GEMM uygulamak amacıyla internette daha çok belgelenmiştir ve Hızlı Başlangıç Rehberi‘nin üzerinden detaylara ulaşabilirsiniz.

Kaynak

Nvdia Blog

Düşüncenizi Paylaşın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgili Teknoloji Haberleri