15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın
23.10.2024

Özel Bir Sunucuda NVLink Nasıl Yapılandırılır

NVLink, GPU’lar arasındaki birincil iletişim yolu olarak PCIe veri yolunun yerini alan ve seçili mimarilerde GPU’lar ile CPU’lar arasında da kullanılan NVIDIA’nın tescilli yüksek hızlı GPU ara bağlantısıdır. Hopper nesli donanımda bağlantı başına 600 GB/s’ye kadar çift yönlü bant genişliği sunarken, PCIe 5.0 x16’nın teorik maksimumu yaklaşık 64 GB/s’dir. Büyük dil modeli eğitimi, moleküler dinamik simülasyonu veya çok GPU’lu çıkarım gibi iş yükleri için bu fark marjinal değil — mimariseldir.

Bu kılavuz, fiziksel donanım kurulumu ve sürücü yığını yapılandırmasından topoloji doğrulamasına, uygulama katmanı entegrasyonuna ve süregelen performans izlemeye kadar özel bir sunucuda NVLink yapılandırması için eksiksiz, üretime hazır bir yol haritası sunmaktadır.

NVLink yalnızca daha hızlı bir kablo değildir. Doğrudan GPU çipi içine yerleştirilmiş, tutarlı, noktadan noktaya bir ara bağlantı dokusudur. Her NVLink hattı, serileştirilmiş diferansiyel sinyalleme protokolü kullanarak her iki yönde eş zamanlı olarak veri taşır. Birden fazla hat, tek bir mantıksal bağlantıda bir araya getirilir ve aynı GPU çiftini bağlamak için birden fazla bağlantı kullanılarak bant genişliği artırılabilir.

Kritik olarak, NVLink önbellek tutarlı bellek erişimini destekler. Bu, GPU A’nın, verileri ana RAM veya CPU’nun bellek denetleyicisi üzerinden hazırlamadan GPU B’nin çerçeve arabelleği belleğinden okuyabileceği anlamına gelir. Bu özellik, CUDA’daki “birleşik bellek” programlama modelini mümkün kılan şeydir — birden fazla fiziksel GPU belleğini kapsayan tek bir sanal adres alanı.

NVLink’in ne olmadığı: büyük ölçekli sistemlerde NVSwitch’in yerini almaz. İkiden fazla GPU içeren yapılandırmalarda NVIDIA, tüm GPU’lar arasında tam NVLink bağlantısı sağlamak için özel bir çapraz anahtarlama çipi olan NVSwitch’i kullanır. Örneğin DGX A100, sekiz A100 GPU’sunun her birine diğer tüm GPU’larla eş zamanlı olarak tam NVLink bant genişliği sağlamak için altı NVSwitch çipi kullanır. İki GPU’lu bir iş istasyonu veya desteklenen bir köprüye sahip dört GPU’lu bir sunucu kuruyorsanız, doğrudan NVLink bağlantılarıyla çalışıyorsunuz demektir. Sekiz veya daha fazla GPU ile çalışıyorsanız, neredeyse kesinlikle NVSwitch alanındasınızdır.

Kıyaslama veya kapasite planlaması yapmadan önce belirli donanımınızın bant genişliği tavanını anlamak çok önemlidir.

GPU NesliNVLink SürümüGPU Başına Bağlantı SayısıToplam Çift Yönlü Bant Genişliği
Volta (V100)NVLink 2.06300 GB/s
Turing (RTX 2080 Ti)NVLink 2.02100 GB/s
Ampere (A100 SXM)NVLink 3.012600 GB/s
Ampere (RTX 3090)NVLink 3.02112.5 GB/s
Ada Lovelace (RTX 4090)NVLink 4.02112.5 GB/s
Hopper (H100 SXM)NVLink 4.018900 GB/s
Blackwell (B200)NVLink 5.0181800 GB/s

PCIe 4.0 x16, yaklaşık 32 GB/s çift yönlü bant genişliği sunar. PCIe 5.0 x16 bunu yaklaşık 64 GB/s’ye çıkarır. RTX 3090 kartlarda iki bağlantılı tüketici NVLink köprüsü bile PCIe 5.0’ın neredeyse iki katı bant genişliği sağlar — veri merkezi GPU’ları ise tamamen farklı bir kategoridedir.

Ön Koşullar ve Donanım Uyumluluğu

Herhangi bir yapılandırma dosyasına dokunmadan önce aşağıdakileri doğrulayın:

GPU uyumluluğu. NVLink tüm NVIDIA GPU’larda mevcut değildir. RTX 2080 Ti’nin altındaki tüketici kartları bunu desteklemez. RTX 4080, üst düzey bir kart olmasına rağmen NVLink’i desteklemez — Ada nesilde yalnızca RTX 4090 destekler. Her zaman tam SKU’nuz için NVIDIA’nın resmi GPU teknik özellik sayfasına göre doğrulayın.

NVLink köprüsü. Tüketici ve prosumer GPU’lar için fiziksel bir NVLink köprü konektörü gereklidir. Bu köprüler nesle özgüdür — Turing köprüsü Ampere karta uymaz. SXM form faktöründeki veri merkezi GPU’ları (A100, H100) tescilli bir ara kart kullanır ve ayrı bir köprü gerektirmez.

Anakart ve PCIe yuva aralığı. NVLink köprüsü, iki GPU’nun belirli bir fiziksel boşlukla birbirine bitişik PCIe x16 yuvalarında bulunmasını gerektirir. Çoğu tüketici köprüsü iki yuvayı kapsar. Bazı üst düzey köprüler üç yuvayı kapsar. Satın almadan önce anakartınızın yuva aralığını köprü boyutlarıyla karşılaştırın.

BIOS ayarları. UEFI’de “Above 4G Decoding” ve “Resizable BAR”ı (AMD platformlarda Smart Access Memory olarak da bilinir) etkinleştirin. Bazı sistemler ayrıca birden fazla GPU için tam PCIe adres alanı tahsisine izin vermek amacıyla CSM’nin (Uyumluluk Destek Modülü) devre dışı bırakılmasını gerektirir.

Güç dağıtımı. Tam NVLink hızlandırmalı yük altındaki iki üst düzey GPU, toplam 600W veya daha fazla güç tüketebilir. PSU’nuzun yeterli kapasiteye sahip olduğundan ve GPU güç konektörlerinin mümkün olduğunca ayrı raylar üzerinde olduğundan emin olun.

İşletim sistemi. Bu kılavuz, Özel Sunucularda yapay zeka ve HPC iş yükleri için standart ortam olan Linux’u (Ubuntu 22.04 LTS / Debian 12) birincil hedef olarak kapsamaktadır. Windows’a özgü adımlar, önemli ölçüde farklılık gösterdikleri yerlerde belirtilmiştir.

Adım 1: Fiziksel GPU ve Köprü Kurulumu

Sunucuyu tamamen kapatın ve şebeke gücünden bağlantısını kesin. Herhangi bir PCIe kartını tutmadan önce ESD bilek kayışı kullanarak kendinizi topraklayın.

  1. Hedef yuvalar için PCIe yuva kapaklarını çıkarın.
  2. Birinci GPU’yu birincil x16 yuvasına (genellikle CPU’ya en yakın olan) takın.
  3. İkinci GPU’yu bitişik x16 yuvasına takın ve fiziksel boşluğun NVLink köprünüzle eşleştiğinden emin olun.
  4. PCIe tutma klipsleri tıklayana kadar her iki kartı da sıkıca yerleştirin.
  5. PSU’dan her GPU’ya gerekli tüm PCIe güç konektörlerini bağlayın. Yüksek TDP’li kartlar için zincirlenmiş konektörler kullanmayın — PSU’dan ayrı kablolar kullanın.
  6. NVLink köprüsünü her iki GPU’nun üst kenarındaki altın konektör pedlerinin üzerine hizalayın. Tam olarak oturana kadar sıkıca ve eşit şekilde aşağı bastırın. Yarım oturmuş bir köprü, bağlantının sessizce başarısız olmasına veya azaltılmış genişlikte çalışmasına neden olur.
  7. GPU’larınız çift NVLink köprüsünü destekliyorsa (örn. RTX 2080 Ti’nin iki NVLink konektörü vardır), maksimum bant genişliği için her iki köprüyü de takın.
  8. Kasayı kapatın ve gücü yeniden bağlayın.

Adım 2: BIOS ve UEFI Yapılandırması

UEFI kurulumuna önyükleme yapın (genellikle POST sırasında Del veya F2).

  • Above 4G Decoding‘i etkinleştirin.
  • Destekleniyorsa Resizable BAR‘ı etkinleştirin.
  • PCIe bağlantı hızını donanımınıza uygun şekilde Auto veya Gen4/Gen5 olarak ayarlayın.
  • İşletim sisteminiz UEFI üzerinden önyükleniyorsa CSM‘yi devre dışı bırakın.
  • Kaydedin ve çıkın.

Adım 3: Linux’ta NVIDIA Sürücülerini Yükleyin

NVIDIA birden fazla kurulum yolu sunar. Paket yöneticisi yöntemi, sunucu ortamları için tercih edilir; çünkü çekirdek güncellemelerinden sonra çekirdek modülünü otomatik olarak yeniden oluşturan DKMS (Dinamik Çekirdek Modülü Desteği) ile entegre olur.

Önce NVIDIA paket deposunu ekleyin ve sürücüyü yükleyin:

sudo apt-get update
sudo apt-get install -y software-properties-common
sudo add-apt-repository -y ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install -y nvidia-driver-545 nvidia-dkms-545

545 yerine GPU’nuz için mevcut en son üretim dalı sürümünü yazın. Mevcut sürümleri şu komutla sorgulayabilirsiniz:

apt-cache search nvidia-driver | grep "^nvidia-driver"

Kurulumdan sonra yeniden başlatın:

sudo reboot

Yeniden başlatmanın ardından sürücünün doğru yüklendiğini doğrulayın:

nvidia-smi

Çıktı, her iki GPU’yu da sürücü sürümü, CUDA sürümü uyumluluğu ve mevcut güç durumu ile listelemelidir. Yalnızca bir GPU görünüyorsa, ikinci kart doğru oturmamış olabilir veya güç dağıtımı sorunu yaşıyor olabilir.

Kritik bir tuzak: Nouveau (açık kaynaklı NVIDIA sürücüsü) yüklüyse, tescilli sürücüyle çakışacaktır. Açıkça kara listeye alın:

echo -e "blacklist nouveaunoptions nouveau modeset=0" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -u
sudo reboot

Adım 4: CUDA Araç Setini Yükleyin

NVLink’in tam kapasitesi — özellikle eşler arası bellek erişimi ve toplu iletişimler — CUDA araç setini gerektirir. En güvenilir sürüm eşleştirmesi için NVIDIA CUDA deposu aracılığıyla yükleyin:

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get install -y cuda-toolkit-12-4

CUDA ikili dosyalarını ve kütüphanelerini kabuk ortamınıza ekleyin:

echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

Kurulumu doğrulayın:

nvcc --version

CUDA derleyici sürümünü tanımlayan çıktıyı görmelisiniz. Ayrıca örnekler yüklüyse CUDA örneği deviceQuery‘ı çalıştırın — her iki GPU’yu numaralandıracak ve NVLink yetenek bayraklarını raporlayacaktır.

Bu, tanısal açıdan en önemli adımdır. nvidia-smi, NVLink incelemesi için özel olarak birkaç alt komut sunar.

Sistem topoloji matrisini kontrol edin:

nvidia-smi topo -m

Çıktı, sistemdeki her cihaz çifti arasındaki ara bağlantı türünü gösteren bir matristir. GPU’larınız arasında NV# etiketlerini arayın; burada # bunları bağlayan NVLink köprülerinin sayısıdır. NV2 etiketi, iki NVLink köprüsünün aktif olduğu anlamına gelir. PIX veya PHB etiketi, GPU’ların PCIe üzerinden iletişim kurduğu anlamına gelir — NVLink aktif değildir.

Doğru yapılandırılmış çift GPU sistemi için örnek çıktı:

        GPU0    GPU1    CPU Affinity    NUMA Affinity
GPU0     X      NV2     0-23            0
GPU1    NV2      X      0-23            0

GPU başına NVLink bağlantı durumunu kontrol edin:

nvidia-smi nvlink --status -i 0

Bu, GPU 0’daki her NVLink portunun durumunu gösterir. Aktif bağlantılar Active durumunu ve müzakere edilen hızı gösterecektir.

NVLink hata sayaçlarını kontrol edin:

nvidia-smi nvlink --errorcounters -i 0

Sıfır olmayan yeniden oynatma veya kurtarma hata sayıları, fiziksel katman sorununa işaret eder — yarım oturmuş bir köprü, hasarlı bir konektör veya yetersiz güç dağıtımından kaynaklanan sinyal bütünlüğü sorunları.

NVLink verimini gerçek zamanlı olarak izleyin:

nvidia-smi nvlink -s

Bu, kümülatif verim sayaçlarını yazdırır. Gerçek zamanlı delta izleme için watch ile birleştirin:

watch -n 1 nvidia-smi nvlink -s

Adım 6: Eşler Arası Bellek Erişimini Etkinleştirin ve Doğrulayın

NVLink’in tutarlı bellek erişimi, CUDA düzeyinde eşler arası (P2P) erişimin etkinleştirilmesini gerektirir. Bunu programatik olarak doğrulayabilirsiniz:

cat << 'EOF' > check_p2p.py
import subprocess
result = subprocess.run(['nvidia-smi', 'topo', '-p2p', 'r'], capture_output=True, text=True)
print(result.stdout)
EOF
python3 check_p2p.py

Veya cudaDeviceCanAccessPeer() ile bir CUDA C programı kullanın. Hızlı doğrulama için CUDA örnekleri simpleP2P ve p2pBandwidthLatencyTest kesin araçlardır:

cd /usr/local/cuda/samples/1_Utilities/p2pBandwidthLatencyTest
make
./p2pBandwidthLatencyTest

Çıktı, GPU çiftleri arasındaki çift yönlü bant genişliğini gösterecektir. NVLink üzerinde, yukarıdaki bant genişliği tablosuyla tutarlı değerler görmelisiniz. PCIe düzeyinde bant genişliği (~10–30 GB/s) görüyorsanız, NVLink üzerinden P2P aktif değildir — köprünün tam oturduğunu ve hiçbir IOMMU ayarının eşler arası erişimi engellemediğini kontrol edin.

IOMMU değerlendirmesi: AMD EPYC ve bazı Intel Xeon platformlarında IOMMU varsayılan olarak etkin olabilir ve GPU P2P erişimini engelleyebilir. P2P çalışmıyorsa, /etc/default/grub içindeki çekirdek komut satırına iommu=pt (geçiş modu) veya amd_iommu=on iommu=pt ekleyin:

sudo nano /etc/default/grub
# Add iommu=pt to GRUB_CMDLINE_LINUX_DEFAULT
sudo update-grub
sudo reboot

Modern çerçeveler NVLink’i NCCL (NVIDIA Toplu İletişim Kütüphanesi) aracılığıyla otomatik olarak algılar, ancak bu davranışı nasıl doğrulayacağınızı ve ayarlayacağınızı anlamak üretim dağıtımları için çok önemlidir.

NVLink optimizasyonu için NCCL ortam değişkenleri:

export NCCL_DEBUG=INFO
export NCCL_P2P_LEVEL=NVL        # Force NVLink for P2P transfers
export NCCL_SHM_DISABLE=0        # Keep shared memory enabled
export NCCL_SOCKET_IFNAME=eth0   # Specify network interface for multi-node

NCCL_DEBUG=INFO ayarı, NCCL’nin çalışma zamanında topoloji algılamasını yazdırmasına neden olur. GPU’lar arası transferler için NVLink’in kullanıldığını doğrulayan [0] NCCL INFO Channel 00 : 0[...] -> 1[...] via NVL gibi satırlar göreceksiniz.

PyTorch çok GPU’lu doğrulama:

import torch

print(f"CUDA available: {torch.cuda.is_available()}")
print(f"GPU count: {torch.cuda.device_count()}")

for i in range(torch.cuda.device_count()):
    for j in range(torch.cuda.device_count()):
        if i != j:
            can_access = torch.cuda.can_device_access_peer(i, j)
            print(f"GPU {i} -> GPU {j} P2P access: {can_access}")

can_device_access_peer her iki yön için True döndürürse, PyTorch’un DataParallel ve DistributedDataParallel‘ı gradyan senkronizasyonu için NVLink’i otomatik olarak kullanacaktır.

TensorFlow çok GPU’lu kontrol:

import tensorflow as tf

gpus = tf.config.list_physical_devices('GPU')
print(f"Detected GPUs: {len(gpus)}")
for gpu in gpus:
    print(gpu)

# Enable memory growth to prevent TF from allocating all VRAM at startup
for gpu in gpus:
    tf.config.experimental.set_memory_growth(gpu, True)

TensorFlow, MirroredStrategy ile çalışırken toplu işlemler için NCCL kullanır, dolayısıyla yukarıdaki NCCL ortam değişkenleri eşit şekilde geçerlidir.

Üretim iş yüklerini taahhüt etmeden önce bir performans temeli oluşturun. Bu aynı zamanda sürücü güncellemeleri veya donanım değişikliklerinden sonra bir regresyon testi olarak da hizmet eder.

NCCL all-reduce bant genişliği testi (dağıtık eğitim için en temsili kıyaslama):

git clone https://github.com/NVIDIA/nccl-tests.git
cd nccl-tests
make CUDA_HOME=/usr/local/cuda
./build/all_reduce_perf -b 8 -e 512M -f 2 -g 2

-g 2 bayrağı iki GPU belirtir. busbw sütununa bakın — bu etkin veri yolu bant genişliğidir. RTX 3090 kartlarda NVLink üzerinde 100 GB/s’ye yaklaşan değerler görmelisiniz. PCIe üzerinde 20–30 GB/s bekleyin.

Hesaplama sınırlı iş yükleri için cuBLAS GEMM kıyaslaması:

/usr/local/cuda/extras/demo_suite/bandwidthTest --mode=shmoo

Adım 9: Süregelen İzleme ve Uyarı

Üretim ortamları için daemon modunda nvidia-smi veya dcgm-exporter aracılığıyla Prometheus ile entegrasyon önerilen yaklaşımdır.

DCGM’yi (Veri Merkezi GPU Yöneticisi) yükleyin:

sudo apt-get install -y datacenter-gpu-manager
sudo systemctl enable nvidia-dcgm
sudo systemctl start nvidia-dcgm

DCGM aracılığıyla NVLink’e özgü metrikleri sorgulayın:

dcgmi dmon -e 1011,1012,1013,1014

1011–1014 alan kimlikleri NVLink bant genişliği sayaçlarına karşılık gelir (bağlantı başına TX/RX). Bunlar Prometheus’a aktarılabilir ve uzun vadeli trend analizi için Grafana’da görselleştirilebilir.

Daha hafif izleme için, basit bir nvidia-smi döngüsü temel bilgileri yakalar:

nvidia-smi dmon -s pucvmet -d 5

-s pucvmet bayrakları, 5 saniyelik aralıklarla güç, kullanım, saat, VRAM, bellek bant genişliği, ECC ve sıcaklık raporlamasını etkinleştirir.

SenaryoÖnerilen Ara BağlantıGerekçe
2 GPU’lu tüketici iş istasyonuNVLink köprüsüUygun maliyetli, PCIe bant genişliğinin 2 katı
2-4 GPU’lu prosumer sunucuNVLink köprüsü (destekleniyorsa)Eğitim için anlamlı bant genişliği kazanımı
8 GPU’lu veri merkezi düğümüNVSwitch dokusuTam bağlantı, darboğaz yok
Çok düğümlü dağıtık eğitimInfiniBand + NVLinkDüğüm içinde NVLink, düğümler arası IB
Çıkarım sunumu (gecikme kritik)NVLinkGPU’lar arası senkronizasyon gecikmesini azaltır
Video kod dönüştürme (utanç verici derecede paralel)PCIe yeterliGPU’lar arası iletişim gerekmez

Yaygın Hata Modları ve Sorun Giderme

Fiziksel kurulumdan sonra NVLink algılanmıyor. nvidia-smi topo -m çalıştırın ve NV# yerine PIX olup olmadığını kontrol edin. Köprüyü yeniden takın. Her iki GPU’nun aynı PCIe kök kompleksinde olduğunu kontrol edin — QPI/UPI üzerinden farklı CPU soketlerine bağlı GPU’lar, köprü takılı olsa bile NVLink çifti oluşturmaz.

NVLink köprüsüne rağmen P2P bant genişliği PCIe hızlarıyla eşleşiyor. IOMMU neredeyse kesinlikle eşler arası erişimi engelliyor. Yukarıda açıklandığı gibi iommu=pt çekirdek parametresini uygulayın.

nvidia-smi nvlink --errorcounters‘de NVLink hataları birikiyorsa. Fiziksel katman sorunu. Köprü konektör pedlerini kir veya hasar açısından inceleyin. Köprüyü yeniden takmayı deneyin. Hatalar devam ederse, köprünün kendisi arızalı olabilir.

Topoloji NV2 göstermesine rağmen NCCL NVLink kullanmıyor. NCCL_P2P_LEVEL=NVL‘ı açıkça ayarlayın. Ayrıca NCCL sürümünün CUDA sürümünüzle uyumluluğunu doğrulayın — uyumsuzluklar NCCL’nin paylaşılan bellek veya soket taşımasına geri dönmesine neden olur.

Sürücü kurulumu DKMS hatalarıyla başarısız oluyor. Çalışan çekirdeğiniz için çekirdek başlıkları yüklü olmayabilir. Şu komutla düzeltin:

sudo apt-get install -y linux-headers-$(uname -r)
sudo dkms autoinstall

NVLink yapılandırması yalnızca temel sunucu platformu kadar etkilidir. Birkaç altyapı faktörü pratikte NVLink performansını doğrudan etkiler:

PCIe topolojisi. Çift soketli EPYC veya Xeon platformlarında PCIe hatları her iki CPU’ya dağıtılır. Farklı CPU’lara bağlı GPU’lar, soket sınırını geçmesi gereken GPU’dan GPU’ya transferler için gecikme ekleyen ve etkin bant genişliğini azaltan soketler arası doku (Infinity Fabric veya UPI) üzerinden iletişim kurar. Mümkün olduğunda, NVLink çiftli GPU’ları aynı CPU soketine bağlı PCIe yuvalarına takın.

Bellek bant genişliği. NVLink GPU’dan GPU’ya transferleri yönetse bile, CPU’nun bellek alt sistemi veri alımı için darboğaz olmaya devam eder. Yüksek bant genişlikli DDR5 veya HBM donanımlı platformlar, GPU’ya ulaşmadan önce veri hazırlama süresini azaltır.

Depolama verimi. Büyük model kontrol noktaları ve eğitim veri setleri hızlı depolama gerektirir. 7 GB/s’nin üzerinde sıralı okuma hızlarına sahip NVMe SSD’ler, veri yükleme sırasında depolama katmanının darboğaz olmasını önler.

Soğutma. Sürekli NVLink hızlandırmalı yük altındaki iki yüksek TDP’li GPU önemli miktarda ısı üretir. Yeterli hava akışı veya sıvı soğutma kapasitesi sağlayın. Termal kısıtlama, GPU saat hızlarını düşürecek ve NVLink’in sağladığı bant genişliği avantajını ortadan kaldıracaktır.

Çok GPU’lu yapay zeka eğitimi veya HPC simülasyonları çalıştıran ekipler için NVMe depolama ve root erişimine sahip Özel Sunucular, bu kılavuzda açıklanan tam yapılandırmayı uygulamak için gerekli donanım kontrolünü sağlar. GPU hızlandırmalı iş yükleri için özellikle GPU Hosting, NVIDIA sürücüleri önceden yüklenmiş önceden yapılandırılmış ortamlar sunar. Özel CUDA ortamları için esnek bir tabana ihtiyaç duyan ekipler, özel donanıma ölçeklendirmeden önce geliştirme ve test için VPS Hosting‘i de yararlı bulabilir.

Temel Çıkarımlar ve Karar Kontrol Listesi

NVLink’i üretime dağıtmadan önce her öğeyi doğrulayın:

  • Donanım onaylandı: Her iki GPU da ürün ailesi değil, belirli SKU’nuz için NVIDIA’nın NVLink uyumluluk listesinde yer alıyor.
  • Köprü nesli eşleşti: NVLink köprü nesli GPU nesiyle eşleşiyor (Turing GPU’lar için Turing köprüsü, Ampere GPU’lar için Ampere köprüsü).
  • Fiziksel kurulum doğrulandı: nvidia-smi topo -m, GPU çiftleri arasında PIX veya PHB değil, NV1 veya NV2 gösteriyor.
  • P2P erişimi onaylandı: p2pBandwidthLatencyTest NVLink düzeyinde bant genişliği (PCIe düzeyinde değil) raporluyor.
  • IOMMU ele alındı: EPYC veya Xeon üzerinde çalışıyorsanız, çekirdek parametrelerinde iommu=pt ayarlanmış.
  • NCCL taşıması onaylandı: NCCL_DEBUG=INFO çıktısı, GPU’lar arası kanallar için via NVL gösteriyor.
  • Hata sayaçları temiz: Bir burn-in testinden sonra nvidia-smi nvlink --errorcounters sıfır yeniden oynatma ve kurtarma hatası gösteriyor.
  • İzleme aktif: DCGM veya nvidia-smi dmon, NVLink bant genişliği ve hata metriklerini kalıcı bir depoya kaydediyor.
  • Termal başlık onaylandı: Her iki GPU da termal kısıtlama olmadan tam yük altında hedef saat hızlarını sürdürüyor.
  • Sürücü ve CUDA sürümleri sabitlendi: Üretim ortamları, yapılandırmayı bozan istenmeyen güncellemeleri önlemek için DKMS aracılığıyla yönetilen sabitlenmiş sürücü sürümleri kullanıyor.

Sıkça Sorulan Sorular

NVLink tüm NVIDIA RTX kartlarda çalışır mı?

Hayır. NVLink desteği RTX serisinde bile önemli ölçüde farklılık gösterir. Örneğin RTX 4080, üst düzey bir Ada Lovelace kartı olmasına rağmen NVLink’i desteklemez. O nesilde yalnızca RTX 4090 NVLink’i destekler. Her zaman ürün ailesi değil, belirli GPU’nun veri sayfasına göre doğrulayın.

NVLink farklı GPU modelleri arasında kullanılabilir mi?

Genel olarak hayır. NVLink, her iki GPU’nun da aynı model ve nesil olmasını gerektirir. NVIDIA, karışık model NVLink yapılandırmalarını resmi olarak desteklemez ve fiziksel konektörler uyumlu olsa bile sürücü yığını, farklı GPU’lar arasında eşler arası NVLink ilişkisi oluşturmaz.

Sistem çalışırken NVLink köprüsü çıkarılırsa ne olur?

Sistem hemen çökmez, ancak NVLink üzerindeki aktif P2P transferleri başarısız olur; bu genellikle çalışan CUDA uygulamasının bir CUDA hatası fırlatmasına ve sonlanmasına neden olur. GPU’lar sonraki işlemler için PCIe’ye geri döner. Köprünün sıcak çıkarımı desteklenmez ve konektör pedlerine fiziksel hasar verme riski taşır.

NVLink PyTorch ve TensorFlow tarafından otomatik olarak kullanılır mı, yoksa açık yapılandırma gerektirir mi?

Her iki çerçeve de çok GPU’lu toplu işlemler için NCCL kullanır ve NCCL NVLink topolojisini otomatik olarak algılar. Ancak NCCL’nin gerçekten NVLink taşıma yolunu seçtiğini NCCL_DEBUG=INFO ile her zaman doğrulamalısınız. Bazı yapılandırmalarda — özellikle IOMMU etkin veya uyumsuz NCCL/CUDA sürümleriyle — NCCL sessizce daha yavaş taşımalara geri döner.

NVLink’in eğitim verimimi gerçekten iyileştirip iyileştirmediğini nasıl anlarım?

Eğitim işinizi NCCL_P2P_DISABLE=1 ile (PCIe’yi zorlar) ve onsuz (NVLink’e izin verir) çalıştırın. Yineleme süresini veya saniye başına örnek sayısını karşılaştırın. Sık all-reduce işlemleri içeren büyük transformer eğitimi gibi iletişim yoğun iş yükleri için NVLink, GPU’lar arası senkronizasyon süresini PCIe’ye kıyasla genellikle %40–70 oranında azaltır ve bu doğrudan daha hızlı dönem sürelerine dönüşür.

15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın