Nvidia(NVDA), Python kullanarak dosya verilerini GPU belleğine okurken gerçek aktarım yolunun nasıl doğrulanacağını 22’sinde yayımladığı teknik blog yazısında gösterdi. Örnekte 1 GiB’lik okuma 256 isteğe bölündü; istatistik aracı gds_stats, hızlandırılmış yol nvfs için 256, uyumluluk yolu posix için sıfır istek kaydetti.
Yazıyı kaleme alan Andrew Hoyle, Nvidia GPUDirect Storage ekibinde veri taşıma özellikleri ve yazılım kütüphanesi entegrasyonları geliştirdiğini belirtti. Nvidia Geliştirici Forumu’nda blog yazısını tanıtan bir paylaşım da 22’sinde yayımlandı.
GPUDirect Storage (GDS), desteklenen depolama aygıtları ile GPU belleği arasındaki aktarımda CPU belleği üzerinden yapılan ara kopyaları azaltan bir teknoloji. Nvidia’nın GDS genel bakış belgesine göre donanım, dosya sistemi ve yapılandırmaya bağlı olarak doğrudan aktarım yolu kullanılamayabilir. Bu durumda uyumluluk modu POSIX çağrılarını kullanır.
Eğitimin temel noktası, aktarım yolunun iki aşamada belirlendiği. Python ve C++ arayüzü KvikIO önce cuFile’ı çağırıp çağırmayacağını ya da kendi POSIX uyumlu yolunu kullanacağını seçiyor. cuFile çağrılsa bile desteklenen dosya sistemi, sistem yapılandırması ve ayarlara göre nvidia-fs tabanlı GDS yolu veya CPU belleğinden geçen uyumluluk yolu devreye giriyor. Bu nedenle hedef olarak GPU belleğini seçmek ve cuFile’ı çağırmak tek başına GDS hızlandırmasının kullanıldığını göstermiyor.
KvikIO’nun varsayılan compat_mode ayarı AUTO. cuFile deneniyor, kullanılamazsa KvikIO’nun POSIX arka ucuna geçiliyor. Eğitimde kullanılan sistemde gds_threshold değeri 16 KiB idi; bu değerden küçük okumalar doğrudan KvikIO’nun POSIX yolunu kullanıyor.
Aktarım yolunu doğrulamak için CUFILE_STATS_LEVEL=3 ayarlanıp gds_stats çalıştırılıyor. Nvidia, ayarlara göre istatistiklerin nasıl değiştiğini gösterdi. KVIKIO_COMPAT_MODE=off durumunda KvikIO cuFile’ı kullanıyor ve istekler nvfs altında sayılıyor. CUFILE_FORCE_COMPAT_MODE=true ayarında cuFile çağrısı sürüyor ancak işler posix olarak kaydediliyor. KVIKIO_COMPAT_MODE=on olduğunda KvikIO cuFile’ı atlayıp ayrı POSIX yolunu kullanıyor; bu işler cuFile istatistiklerine yansımıyor.
gdscheck.py, kurulum yapılandırmasını ve destek durumunu denetleyen bir araç olarak tanıtıldı. gds_stats ise bir süreçte nvfs ve posix yollarının ayrı ayrı kaç iş gerçekleştirdiğini gösteriyor.
256 isteğin nedeni KvikIO’nun varsayılan 4 MiB iş boyutu. 1 GiB, 4 MiB’lik parçalara bölündüğünde 256 cuFile isteği oluşuyor. KVIKIO_TASK_SIZE değeri 1 GiB olarak değiştirilirse KvikIO, cuFile’a tek bir büyük istek gönderiyor; cuFile da bunu 256 MiB’lik dört iş birimine ayırıp planlıyor. Nvidia, bu birimlerin planlama boyutunu gösterdiğini ve depolama aygıtına yapılan tekil aktarımların boyutuyla aynı olmadığını açıkladı.
Hedef GPU arabelleğinin cuFile’a kaydedilmediği örnekte, önce kayıtlı bir GPU ara arabelleğine, ardından hedef arabelleğe kopyalama adımları da anlatıldı.
Test ortamı; x86_64 sunucu, Nvidia H100, CUDA 13.3, cuFile 1.18 ve ext4 ile biçimlendirilmiş yerel NVMe depolamadan oluşuyordu. GPU ile NVMe, en fazla bir PCIe köprüsünden geçen PIX bağlantı yöntemiyle bağlandı. IOMMU ve ACS kapatıldı, nvidia-fs çekirdek modülü yüklendi. Nvidia, bunun yalnızca eğitimde kullanılan test ortamı olduğunu ve tüm sistemler için garanti koşulu oluşturmadığını belirtti. Sorun giderme belgesi, farklı sistemlerde desteklenen dosya sisteminin, sürücü ve kütüphane sürümlerinin, cuFile ayarlarının ve donanım bağlantısının birlikte kontrol edilmesini öneriyor.
KvikIO, Nvidia CUDA-X Veri Bilimi kütüphanelerinin bir parçası. Resmî deposunda cuFile için Python ve C++ bağlayıcıları olarak tanımlanıyor; GDS’nin kullanılamadığı ortamlarda da ana bilgisayar ile aygıt arasında veri okuyup yazabildiği belirtiliyor. TokenPost, Nvidia’nın CUDA-X kütüphanesine temmuzda ajanlara yönelik araçlar eklediğini daha önce bildirmişti.
TokenPost daha önce Micron’un PCIe Gen 6 tabanlı veri merkezi NVMe SSD’lerinin depolama ile işlem kaynakları arasındaki veri aktarımı sınırlarını azaltmayı hedeflediğini aktarmıştı. Bu eğitim ise donanım özelliklerinden ziyade yazılım ayarları ve istatistiklerle gerçek aktarım yolunun nasıl doğrulanacağını ele alıyor.
Nvidia’nın yazısında ve KvikIO ile GDS’nin resmî belgelerinde kripto para veya blokzincir kullanım alanlarından söz edilmiyor. Nvidia ayrıca performans artış oranı ya da aktarım hızı karşılaştırması sunmadı. nvfs=256 değeri yalnızca ilgili çalıştırmadaki istek sayısını ifade ediyor; hız artışının ölçüsü değil.
Yorum 0