NvidiaОдин из технических барьеров--NVLink&NVSwitch
NvidiaОдин из технических барьеров--NVLink&NVSwitch

NVLink

Пакет данных NVLink

Один пакет NVLink имеет диапазон от 1 до 18 флитов. Каждый блок имеет размер 128 бит, что позволяет передавать 256 байт с использованием одного блока заголовка и 16 блоков полезной нагрузки для максимальной эффективности 94,12%, а также 64 байта с использованием одного блока заголовка и 4 блоков полезной нагрузки данных для односторонней эффективности 80. %. При двунаправленном трафике эффективность несколько снижается до 88,9% и 66,7% соответственно.

Пакеты содержат как минимум заголовок и, при необходимости, фрагменты расширения адреса (AE), фрагменты включения байта (BE) и до 16 фрагментов полезной нагрузки данных. Типичная транзакция содержит как минимум запрос и ответ, тогда как опубликованная операция не требует ответа.

Состав пакета данных
Состав пакета данных

Связь

NVLink канал называется Brick(илиNVLink Brick)。одинокий NVLink представляет собой двунаправленный интерфейс, каждое направление содержит 8 дифференциальные пары, всего 32 линии. Эти линии связаны по постоянному току с использованием встроенных часов. 85Ω Дифференциальное окончание. Для упрощения маршрутизации NVLink Поддерживаются реверс каналов и полярность каналов, что означает, что физический порядок каналов и их полярность могут быть изменены на противоположные между двумя устройствами.

Схема NVLink
Схема NVLink

Метод передачи данных

NVLINK поддерживает два режима передачи данных: DMA и P2P.

Режим DMA: в режиме DMA ЦП может передавать данные непосредственно в видеопамять целевого графического процессора через мост NVLink. Этот процесс не требует участия целевого графического процессора, что эффективно повышает эффективность передачи данных.

Режим P2P: в ​​режиме P2P данные могут передаваться напрямую между двумя графическими процессорами. Этот режим обычно используется для обмена данными между графическими процессорами или выполнения параллельных вычислительных задач.

Записи об использовании

ПроверятьNVLinkсостояние:Подробное объяснение команд серии NVIDIA-SMI (16)-NVLINK. Эта статья является шестнадцатым подробным объяснением команд серии NVIDIA-SMI-NVLINK, введение. - наггетсы (juejin.cn)

Установите NVLink: Просто подключите его к соответствующей карте. Как правило, устанавливать драйвер вручную не требуется.

Отключите NVLink: как правило, вы также можете отключить его напрямую.

Топтание по пит-записям

Если в машине несколько карт,Только две карты с установленным NVLink могут взаимодействовать друг с другом.,Если карта не установлена, вы можете использовать только одну карту (что немного сложно).,Другими словами, пока на машине есть NVLink,Связь будет изменена на NVLink.,В результате нормальная связь между картами не может быть осуществлена). Для этой проблемы,существоватьncclПоднятыйIssues:Not all gpus have nvlinks, the communication data is all incorrect · Issue #1423 · NVIDIA/nccl (github.com)

Решение 1. Отключите nvlink,Используйте только передачу данных PCIE. Если это процессор AMD,После отключения вам все равно потребуется войти в BIOS, чтобы принудительно выключить IOMMU.,Запретить программам прямой доступ к физической памяти,должен пройтиCPU。Подробную информацию см.Silent data corruption when moving data between GPUs · Issue #84803 · pytorch/pytorch (github.com)。После того, как я изменю вышеуказанные операции,,Doka Reasoning теперь может работать,Но обучение Doka будет подчиняться CUDA error: unspecified launch Позже выяснилось, что причиной сбоя стали более ранние версии трансформаторов, фонаря и других установочных пакетов. Используйте команду pip для обновления установочного пакета pip install --force-reinstall transformers==4.44.2 trl==0.10.1 torchvision==0.19.1。

Решение 2. Все карты подключены к nvlink (но некоторые карты имеют только один слот NVLink, например A6000, что означает, что можно объединить до двух карт)

Решение 3. Восемь карт имеют PCIE.,Опять есть NVLink,Кажется, на данный момент есть ошибка. Длительный фокус наIssues:Not all gpus have nvlinks, the communication data is all incorrect · Issue #1423 · NVIDIA/nccl (github.com)

недостаток

Хотя NVLink — двунаправленный интерфейс,Между двумя картами требуется только одно соединение,Но также легко найти,Только две подключенные карты могут наслаждаться высокоскоростной связью.,А на таких видеокартах, как A6000, есть только один слот NVLink.,Поэтому невозможно соединить несколько карт вместе. Новый продукт Nvidia NVSwitch призван решить эту проблему.,Подробную информацию см.Nvidiaиз官网介绍:NVIDIA NVLink and NVIDIA NVSwitch Supercharge Large Language Model Inference | NVIDIA Technical Blog

NVSwitch

NVSwitch — это переключатель межсоединения видеокарты. При его использовании необходимо подключить один конец NVLink к видеокарте, а другой конец — к NVSwitch. Он позволяет соединять каждые две карты на полной скорости без блокировки. Последнее поколение NVSwitch также может соединять видеокарты между разными машинами и подключать до 576 видеокарт (что просто ужасно, а скорость передачи данных выше, чем у других). Инфини Бэнд).

История развития NVSwitch
История развития NVSwitch

Решение для соединения восьми карт

Если используется NVLink, каждая карта должна быть подключена к другим картам через NVLink, а скорость передачи зависит от верхнего предела скорости одного NVLink.

Используя NVSwitch для соединения, как показано ниже, любые две карты могут работать на максимальной скорости 900 ГБ/с, а две карты 0 и 1 обмениваются данными, а другие карты также могут обмениваться данными на полной скорости, не влияя друг на друга.

Решение для соединения нескольких карт
Решение для соединения нескольких карт
NVLink vs NVSwitchпередача инфекциискорость
NVLink vs NVSwitchпередача инфекциискорость

Соединение кластеров

Последняя версия NVSwitch может соединять вместе 576 карт. Эти карты распределены по десяткам машин. Вообще говоря, передача между машинами осуществляется через сеть. Самый высокоскоростной сетевой протокол — InfiniBand. Но NVSwitch пропускает эти действия и напрямую соединяет карты между несколькими машинами. Ниже приведено сравнение производительности при использовании межсоединений InfiniBand и NVSwitch:

Скорость NVSwitch по сравнению с InfiniBand
Скорость NVSwitch по сравнению с InfiniBand

Видно, что NVSwitch в 4,5 раза быстрее, чем InfiniBand. InfiniBand может использоваться только суперкомпьютерными центрами. Нвидиа просто извращенец. . . .

ссылка Связь:

Базовые знания AI Infra: начало работы с NVLink (qq.com)

Углубленное понимание технологии соединения графических процессоров — NVLINK (qq.com)

Углубленный анализ и анализ производительности NV Switch (qq.com)

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода