Как да конфигурирате NVLink на выделен сървър
NVLink е собствена високоскоростна GPU взаимовръзка на NVIDIA, която замества шината PCIe като основен комуникационен път между GPU-та — и в определени архитектури, между GPU-та и CPU-та. Тя осигурява двупосочна честотна лента до 600 GB/s на връзка при хардуер от поколението Hopper, в сравнение с теоретичен максимум от приблизително 64 GB/s при PCIe 5.0 x16. За натоварвания като обучение на модели с голям езиков обхват, симулация на молекулярна динамика или многo-GPU инференс, тази разлика не е незначителна — тя е архитектурна.
Това ръководство предоставя пълно, производствено ниво описание за конфигуриране на NVLink на dedicated сървър: от физическа инсталация на хардуера и настройка на драйверния стек до проверка на топологията, интеграция на приложния слой и текущ мониторинг на производителността.
Какво всъщност е NVLink — и какво не е
NVLink не е просто по-бърз кабел. Това е кохерентна, точка-до-точка взаимосвързваща тъкан, изградена директно в GPU матрицата. Всяка NVLink лента пренася данни в двете посоки едновременно, използвайки сериализиран диференциален сигнален протокол. Множество ленти се обединяват в единична логическа връзка, а множество връзки могат да свързват една и съща двойка GPU-та за адитивна честотна лента.
Критично е, че NVLink поддържа кохерентен достъп до кеш паметта. Това означава, че GPU A може да чете от паметта на кадровия буфер на GPU B, без да поставя данни в буфер чрез хост RAM или контролера на паметта на CPU. Това свойство е това, което позволява програмния модел „унифицирана памет” в CUDA — едно виртуално адресно пространство, което обхваща множество физически GPU памети.
Какво не е NVLink: той не е заместител на NVSwitch в мащабни системи. В конфигурации с повече от два GPU-та, NVIDIA използва NVSwitch — специализиран чип за кросбар комутация — за осигуряване на NVLink свързаност от всеки към всеки. DGX A100, например, използва шест NVSwitch чипа, за да даде на всеки от осемте си A100 GPU-та пълна NVLink честотна лента към всеки друг GPU едновременно. Ако изграждате работна станция с два GPU-та или сървър с четири GPU-та с поддържан мост, работите с директни NVLink връзки. Ако работите с осем или повече GPU-та, почти сигурно сте в територията на NVSwitch.
NVLink честотна лента по GPU поколения
Разбирането на тавана на честотната лента на вашия конкретен хардуер е от съществено значение преди бенчмаркинг или планиране на капацитета.
| GPU поколение | NVLink версия | Връзки на GPU | Обща двупосочна честотна лента |
|---|---|---|---|
| Volta (V100) | NVLink 2.0 | 6 | 300 GB/s |
| Turing (RTX 2080 Ti) | NVLink 2.0 | 2 | 100 GB/s |
| Ampere (A100 SXM) | NVLink 3.0 | 12 | 600 GB/s |
| Ampere (RTX 3090) | NVLink 3.0 | 2 | 112.5 GB/s |
| Ada Lovelace (RTX 4090) | NVLink 4.0 | 2 | 112.5 GB/s |
| Hopper (H100 SXM) | NVLink 4.0 | 18 | 900 GB/s |
| Blackwell (B200) | NVLink 5.0 | 18 | 1800 GB/s |
PCIe 4.0 x16 осигурява приблизително 32 GB/s двупосочно. PCIe 5.0 x16 удвоява това до около 64 GB/s. Дори двулентов потребителски NVLink мост на RTX 3090 карти осигурява почти двойно повече честотна лента от PCIe 5.0 — а GPU-тата за центрове за данни са в напълно различна категория.
Предварителни изисквания и хардуерна съвместимост
Преди да докоснете един конфигурационен файл, потвърдете следното:
Съвместимост на GPU. NVLink не е наличен на всички NVIDIA GPU-та. Потребителски карти под RTX 2080 Ti не го поддържат. RTX 4080 не поддържа NVLink въпреки че е карта от висок клас — само RTX 4090 го поддържа в поколението Ada. Винаги проверявайте спрямо официалния лист с GPU спецификации на NVIDIA за вашия конкретен SKU.
NVLink мост. За потребителски и просумерски GPU-та се изисква физически конектор за NVLink мост. Тези мостове са специфични за поколението — Turing мост няма да пасне на Ampere карта. GPU-тата за центрове за данни (A100, H100) в SXM форм фактор използват собствена мецанин платка и не използват дискретен мост.
Дънна платка и разстояние между PCIe слотовете. NVLink мостът изисква двата GPU-та да бъдат в съседни PCIe x16 слотове с определена физическа разлика. Повечето потребителски мостове обхващат два слота. Някои мостове от висок клас обхващат три слота. Проверете стъпката на слота на дънната платка спрямо размерите на моста преди закупуване.
BIOS настройки. Активирайте „Above 4G Decoding” и „Resizable BAR” (известен също като Smart Access Memory на AMD платформи) в UEFI. Някои системи изискват също деактивиране на CSM (Compatibility Support Module), за да позволят пълно разпределение на PCIe адресното пространство за множество GPU-та.
Захранване. Два GPU-та от висок клас при пълно натоварване, ускорено от NVLink, могат да консумират комбинирано 600W или повече. Уверете се, че вашето захранване има достатъчен резерв и че конекторите за захранване на GPU-тата са на отделни шини, където е възможно.
Операционна система. Това ръководство обхваща Linux (Ubuntu 22.04 LTS / Debian 12) като основна цел, което е стандартната среда за AI и HPC натоварвания на Dedicated сървъри. Специфичните за Windows стъпки са отбелязани там, където се различават значително.
Стъпка 1: Физическа инсталация на GPU и мост
Изключете напълно сървъра и го изключете от захранването. Заземете се с антистатична гривна преди да боравите с PCIe карти.
- Премахнете капаците на PCIe слотовете за целевите слотове.
- Поставете първия GPU в основния x16 слот (обикновено най-близо до CPU).
- Поставете втория GPU в съседния x16 слот, като се уверите, че физическата разлика съответства на вашия NVLink мост.
- Наместете здраво и двете карти, докато PCIe ретенционните скоби щракнат.
- Свържете всички необходими PCIe захранващи конектори от захранването към всеки GPU. Не използвайте верижно свързани конектори за карти с висок TDP — използвайте отделни кабели от захранването.
- Наредете NVLink моста над златните конекторни подложки на горния ръб на двата GPU-та. Натиснете надолу здраво и равномерно, докато се наместят напълно. Частично наместен мост ще доведе до тихо неуспешна връзка или работа при намалена ширина.
- Ако вашите GPU-та поддържат двойни NVLink мостове (напр. RTX 2080 Ti има два NVLink конектора), инсталирайте и двата моста за максимална честотна лента.
- Затворете корпуса и свържете отново захранването.
Стъпка 2: Конфигурация на BIOS и UEFI
Стартирайте в UEFI настройките (обикновено Del или F2 при POST).
- Активирайте Above 4G Decoding.
- Активирайте Resizable BAR, ако се поддържа.
- Задайте скоростта на PCIe връзката на Auto или Gen4/Gen5, в зависимост от вашия хардуер.
- Деактивирайте CSM, ако вашата ОС стартира чрез UEFI.
- Запазете и излезте.
Стъпка 3: Инсталиране на NVIDIA драйвери на Linux
NVIDIA предоставя множество пътища за инсталация. Методът с мениджъра на пакети е предпочитан за сървърни среди, защото се интегрира с DKMS (Dynamic Kernel Module Support), който автоматично преизгражда модула на ядрото след актуализации на ядрото.
Първо, добавете хранилището на пакети на NVIDIA и инсталирайте драйвера:
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 с последната версия на производствения клон, налична за вашия GPU. Можете да заявите наличните версии с:
apt-cache search nvidia-driver | grep "^nvidia-driver"След инсталацията, рестартирайте:
sudo rebootСлед рестартиране, проверете дали драйверът е зареден правилно:
nvidia-smiИзходът трябва да изброи и двата GPU-та с тяхната версия на драйвера, съвместимостта с версията на CUDA и текущото състояние на захранването. Ако се появи само един GPU, втората карта може да не е наместена правилно или може да има проблем с захранването.
Критичен проблем: Ако имате зареден Nouveau (драйверът с отворен код за NVIDIA), той ще влезе в конфликт с патентования драйвер. Блокирайте го изрично:
echo -e "blacklist nouveaunoptions nouveau modeset=0" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -u
sudo rebootСтъпка 4: Инсталиране на CUDA Toolkit
Пълните възможности на NVLink — особено достъпът до памет от равноправен към равноправен и колективните комуникации — изискват CUDA toolkit. Инсталирайте го чрез хранилището на NVIDIA CUDA за най-надеждно съответствие на версиите:
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 двоичните файлове и библиотеките към вашата обвивна среда:
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrcПроверете инсталацията:
nvcc --versionТрябва да видите изход, идентифициращ версията на CUDA компилатора. Също така стартирайте CUDA примера deviceQuery, ако имате инсталирани примерите — той ще изброи и двата GPU-та и ще докладва флаговете за NVLink възможности.
Стъпка 5: Проверка на NVLink топологията и статуса
Това е най-важната диагностична стъпка. nvidia-smi предоставя няколко подкоманди специално за NVLink инспекция.
Проверете матрицата на системната топология:
nvidia-smi topo -mИзходът е матрица, показваща типа на взаимовръзката между всяка двойка устройства в системата. Търсете етикети NV# между вашите GPU-та, където # е броят на NVLink мостовете, свързващи ги. Етикет NV2 означава, че са активни два NVLink моста. Етикет PIX или PHB означава, че GPU-тата комуникират по PCIe — NVLink не е активен.
Примерен изход за правилно конфигурирана система с два GPU-та:
GPU0 GPU1 CPU Affinity NUMA Affinity
GPU0 X NV2 0-23 0
GPU1 NV2 X 0-23 0Проверете статуса на NVLink връзката за всеки GPU:
nvidia-smi nvlink --status -i 0Това показва състоянието на всеки NVLink порт на GPU 0. Активните връзки ще показват състояние Active и договорената скорост.
Проверете броячите на NVLink грешки:
nvidia-smi nvlink --errorcounters -i 0Ненулеви броячи на повторения или грешки при възстановяване показват проблем на физическия слой — частично наместен мост, повреден конектор или проблеми с целостта на сигнала от недостатъчно захранване.
Наблюдавайте пропускателната способност на NVLink в реално време:
nvidia-smi nvlink -sТова отпечатва кумулативни броячи на пропускателната способност. За наблюдение на делта в реално време, комбинирайте го с watch:
watch -n 1 nvidia-smi nvlink -sСтъпка 6: Активиране и проверка на достъпа до памет от равноправен към равноправен
Кохерентният достъп до памет на NVLink изисква достъп от равноправен към равноправен (P2P) да бъде активиран на ниво CUDA. Можете да проверите това програмно:
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Или използвайте CUDA C програма с cudaDeviceCanAccessPeer(). За бърза валидация, CUDA примерите simpleP2P и p2pBandwidthLatencyTest са окончателните инструменти:
cd /usr/local/cuda/samples/1_Utilities/p2pBandwidthLatencyTest
make
./p2pBandwidthLatencyTestИзходът ще покаже двупосочната честотна лента между двойки GPU-та. По NVLink трябва да виждате стойности, съответстващи на таблицата с честотната лента по-горе. Ако виждате честотна лента на ниво PCIe (~10–30 GB/s), P2P по NVLink не е активен — проверете дали мостът е напълно наместен и дали никакви IOMMU настройки не блокират достъпа от равноправен към равноправен.
Съображение за IOMMU: На AMD EPYC и някои Intel Xeon платформи, IOMMU може да бъде активиран по подразбиране и може да блокира GPU P2P достъпа. Ако P2P не работи, добавете iommu=pt (режим на преминаване) или amd_iommu=on iommu=pt към командния ред на ядрото в /etc/default/grub:
sudo nano /etc/default/grub
# Add iommu=pt to GRUB_CMDLINE_LINUX_DEFAULT
sudo update-grub
sudo rebootСтъпка 7: Конфигуриране на рамки за дълбоко обучение за използване на NVLink
Съвременните рамки автоматично откриват NVLink чрез NCCL (NVIDIA Collective Communications Library), но разбирането как да се провери и настрои това поведение е от съществено значение за производствени внедрявания.
NCCL променливи на средата за оптимизация на NVLink:
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 кара NCCL да отпечатва своето топологично откриване по време на изпълнение. Ще видите редове като [0] NCCL INFO Channel 00 : 0[...] -> 1[...] via NVL, потвърждаващи, че NVLink се използва за трансфери между GPU-та.
Проверка на PyTorch с множество GPU-та:
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 връща True и в двете посоки, DataParallel и DistributedDataParallel на PyTorch ще използват NVLink за синхронизация на градиентите автоматично.
Проверка на TensorFlow с множество GPU-та:
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 използва NCCL за колективни операции при работа с MirroredStrategy, така че горните NCCL променливи на средата се прилагат еднакво.
Стъпка 8: Бенчмаркинг на производителността на NVLink
Преди да поемете производствени натоварвания, установете базова линия на производителността. Това служи и като регресионен тест след актуализации на драйвери или промени в хардуера.
Тест за честотна лента на NCCL all-reduce (най-представителният бенчмарк за разпределено обучение):
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 указва два GPU-та. Погледнете колоната busbw — това е ефективната честотна лента на шината. По NVLink на RTX 3090 карти трябва да виждате стойности, доближаващи се до 100 GB/s. По PCIe очаквайте 20–30 GB/s.
cuBLAS GEMM бенчмарк за натоварвания, ограничени от изчисленията:
/usr/local/cuda/extras/demo_suite/bandwidthTest --mode=shmooСтъпка 9: Текущ мониторинг и сигнализиране
За производствени среди, nvidia-smi в режим на демон или интеграция с Prometheus чрез dcgm-exporter е препоръчителният подход.
Инсталирайте DCGM (Data Center GPU Manager):
sudo apt-get install -y datacenter-gpu-manager
sudo systemctl enable nvidia-dcgm
sudo systemctl start nvidia-dcgmЗаявете специфични за NVLink метрики чрез DCGM:
dcgmi dmon -e 1011,1012,1013,1014Идентификаторите на полета 1011–1014 съответстват на броячите на честотната лента на NVLink (TX/RX на връзка). Те могат да бъдат експортирани в Prometheus и визуализирани в Grafana за дългосрочен анализ на тенденциите.
За по-лек мониторинг, прост цикъл nvidia-smi улавя основното:
nvidia-smi dmon -s pucvmet -d 5Флаговете -s pucvmet активират отчитане на захранването, използването, часовника, VRAM, честотната лента на паметта, ECC и температурата на интервали от 5 секунди.
NVLink срещу PCIe срещу NVSwitch: Кога се прилага всяка архитектура
| Сценарий | Препоръчана взаимовръзка | Обосновка |
|---|---|---|
| Потребителска работна станция с 2 GPU-та | NVLink мост | Икономически ефективен, 2x PCIe честотна лента |
| Просумерски сървър с 2-4 GPU-та | NVLink мост (ако се поддържа) | Значително увеличение на честотната лента за обучение |
| Възел за центрове за данни с 8 GPU-та | NVSwitch тъкан | Свързаност от всеки към всеки, без тесни места |
| Разпределено обучение с множество възли | InfiniBand + NVLink | NVLink в рамките на възела, IB между възлите |
| Обслужване на инференс (критично за латентността) | NVLink | Намалява латентността на синхронизация между GPU-та |
| Видео транскодиране (смущаващо паралелно) | PCIe е достатъчен | Не е необходима комуникация между GPU-та |
Чести режими на повреда и отстраняване на неизправности
NVLink не е открит след физическа инсталация. Стартирайте nvidia-smi topo -m и проверете за PIX вместо NV#. Преинсталирайте моста. Проверете дали и двата GPU-та са на един и същи PCIe корен комплекс — GPU-тата на различни CPU сокети, свързани чрез QPI/UPI, няма да образуват NVLink двойка дори с инсталиран мост.
P2P честотната лента съответства на скоростите на PCIe въпреки NVLink моста. IOMMU почти сигурно блокира достъпа от равноправен към равноправен. Приложете параметъра на ядрото iommu=pt както е описано по-горе.
NVLink грешки се натрупват в nvidia-smi nvlink --errorcounters. Проблем на физическия слой. Проверете конекторните подложки на моста за замърсявания или повреди. Опитайте да преинсталирате моста. Ако грешките продължават, самият мост може да е дефектен.
NCCL не използва NVLink въпреки топологията, показваща NV2. Задайте NCCL_P2P_LEVEL=NVL изрично. Също така проверете съвместимостта на версията на NCCL с вашата версия на CUDA — несъответствията карат NCCL да се върне към споделена памет или транспорт чрез сокет.
Инсталацията на драйвера се проваля с DKMS грешки. Хедърите на ядрото за вашето работещо ядро може да не са инсталирани. Поправете с:
sudo apt-get install -y linux-headers-$(uname -r)
sudo dkms autoinstallИзбор на правилната сървърна инфраструктура за NVLink натоварвания
Конфигурацията на NVLink е толкова ефективна, колкото и основната сървърна платформа. Няколко инфраструктурни фактора пряко влияят на производителността на NVLink на практика:
PCIe топология. На двусокетни EPYC или Xeon платформи, PCIe лентите са разпределени между двата CPU-та. GPU-тата, свързани към различни CPU-та, комуникират чрез тъканта между сокетите (Infinity Fabric или UPI), което добавя латентност и намалява ефективната честотна лента за трансфери между GPU-та, които трябва да преминат границата на сокета. Когато е възможно, инсталирайте GPU-тата, сдвоени с NVLink, в PCIe слотове, прикрепени към един и същи CPU сокет.
Честотна лента на паметта. Дори с NVLink, обработващ трансферите между GPU-та, подсистемата на паметта на CPU остава тесното място за поглъщане на данни. Платформи с висока честотна лента DDR5 или HBM намаляват времето, прекарано в подготовка на данни преди да достигнат GPU-то.
Пропускателна способност на съхранението. Големите контролни точки на модели и наборите от данни за обучение изискват бързо съхранение. NVMe SSD-та с последователни скорости на четене над 7 GB/s предотвратяват слоят за съхранение да стане тесното място по време на зареждане на данни.
Охлаждане. Два GPU-та с висок TDP при продължително натоварване, ускорено от NVLink, генерират значителна топлина. Осигурете адекватен въздушен поток или капацитет за течно охлаждане. Термичното ограничаване ще намали тактовите честоти на GPU-тата и ще отмени предимството в честотната лента, което NVLink осигурява.
За екипи, изпълняващи AI обучение с множество GPU-та или HPC симулации, Dedicated сървъри с NVMe съхранение и root достъп осигуряват необходимия хардуерен контрол за прилагане на пълната конфигурация, описана в това ръководство. За натоварвания, ускорени от GPU, специално, GPU хостинг предлага предварително конфигурирани среди с вече инсталирани NVIDIA драйвери. Екипи, нуждаещи се от гъвкава база за персонализирани CUDA среди, могат също да намерят VPS хостинг полезен за разработка и тестване преди мащабиране към dedicated хардуер.
Основни изводи и контролен списък за решения
Преди внедряване на NVLink в производство, проверете всеки елемент:
- Хардуерът е потвърден: И двата GPU-та са в списъка за съвместимост с NVLink на NVIDIA за вашия конкретен SKU, а не само продуктовото семейство.
- Поколението на моста е съвпадащо: Поколението на NVLink моста съответства на поколението на GPU (Turing мост за Turing GPU-та, Ampere мост за Ampere GPU-та).
- Физическата инсталация е проверена:
nvidia-smi topo -mпоказваNV1илиNV2между двойките GPU-та, а неPIXилиPHB. - P2P достъпът е потвърден:
p2pBandwidthLatencyTestотчита честотна лента на ниво NVLink (а не на ниво PCIe). - IOMMU е адресиран: Ако работите на EPYC или Xeon,
iommu=ptе зададен в параметрите на ядрото. - NCCL транспортът е потвърден: Изходът от
NCCL_DEBUG=INFOпоказваvia NVLза канали между GPU-та. - Броячите на грешки са чисти:
nvidia-smi nvlink --errorcountersпоказва нулеви грешки при повторения и възстановяване след тест за изгаряне. - Мониторингът е активен: DCGM или
nvidia-smi dmonрегистрира честотната лента на NVLink и метриките за грешки в постоянно хранилище. - Термичният резерв е потвърден: И двата GPU-та поддържат целевите тактови честоти при пълно натоварване без термично ограничаване.
- Версиите на драйвера и CUDA са фиксирани: Производствените среди използват фиксирани версии на драйвера, управлявани чрез DKMS, за да предотвратят непредвидени актуализации от нарушаване на конфигурацията.
Често задавани въпроси
Работи ли NVLink на всички NVIDIA RTX карти?
Не. Поддръжката на NVLink варира значително дори в рамките на RTX линията. RTX 4080, например, не поддържа NVLink въпреки че е карта от висок клас Ada Lovelace. Само RTX 4090 поддържа NVLink в това поколение. Винаги проверявайте спрямо техническия лист на конкретния GPU, а не продуктовото семейство.
Може ли NVLink да се използва между различни модели GPU-та?
Като цяло, не. NVLink изисква и двата GPU-та да бъдат от един и същи модел и поколение. NVIDIA официално не поддържа конфигурации на NVLink с смесени модели, и драйверният стек няма да формира NVLink връзка от равноправен към равноправен между различни GPU-та дори ако физическите конектори са съвместими.
Какво се случва, ако NVLink мостът бъде премахнат, докато системата работи?
Системата няма да се срине незабавно, но всички активни P2P трансфери по NVLink ще се провалят, което обикновено ще накара работещото CUDA приложение да хвърли CUDA грешка и да прекрати работата си. GPU-тата ще се върнат към PCIe за последващи операции. Горещото премахване на моста не се поддържа и рискува физическо увреждане на конекторните подложки.
Използват ли PyTorch и TensorFlow автоматично NVLink, или изисква изрична конфигурация?
И двете рамки използват NCCL за колективни операции с множество GPU-та, и NCCL автоматично открива NVLink топологията. Въпреки това, винаги трябва да проверявате с NCCL_DEBUG=INFO, че NCCL действително избира транспортния път на NVLink. В някои конфигурации — особено с активиран IOMMU или несъответстващи версии на NCCL/CUDA — NCCL тихо ще се върне към по-бавни транспорти.
Как да разбера дали NVLink действително подобрява пропускателната способност на моето обучение?
Стартирайте вашата задача за обучение с NCCL_P2P_DISABLE=1 (принуждава PCIe) и след това без него (позволява NVLink). Сравнете времето за итерация или примерите в секунда. За натоварвания с интензивна комуникация като обучение на голям трансформер с чести all-reduce операции, NVLink обикновено намалява времето за синхронизация между GPU-та с 40–70% в сравнение с PCIe, което се превежда директно в по-бързи времена на епохи.
