Перейти к содержанию
Новое AiManual теперь в MAX Подписаться
Публикация AiManual

Почему Intel Core Ultra 270K и Z890 не подходят для multi-GPU AI-инференса: тесты PCIe P2P и Tensor Parallel

Практический тест Intel Arrow Lake на Core Ultra 270K и Z890 для multi-GPU AI-инференса. PCIe P2P не работает: пропускная способность падает вдвое, VLLM с tenso

Коротко

Что будет в материале

  1. 01

    Краткий вывод: Intel Arrow Lake не для multi-GPU AI

  2. 02

    Тестовый стенд и методика: как мы проверяли Intel Core Ultra 270K и Z890

  3. 03

    Результаты тестов: PCIe P2P на Intel Arrow Lake не работает

  4. 04

    Tensor Parallel в VLLM: мусор на выходе

Краткий вывод: Intel Arrow Lake не для multi-GPU AI

Платформа Intel Arrow Lake на Core Ultra 270K и чипсете Z890 не подходит для сборки multi-GPU систем под AI-инференс. Формальные характеристики впечатляют: 24 линии PCIe 5.0, разбивка 8x/8x для двух видеокарт. Однако практические тесты выявили критический дефект - PCIe Peer-to-Peer (P2P) между GPU не работает корректно.

При принудительном включении P2P через патченные драйверы пропускная способность падает вдвое от теоретической. Запуск VLLM с tensor parallel на этой связке выдает мусор - модель генерирует бессвязный текст. AMD EPYC и AM5 с аналогичной конфигурацией работают стабильно и предсказуемо. Если вы планируете инференс больших моделей на нескольких GPU, Intel Arrow Lake - это тупиковый путь.

Мы детально разобрали проблему в сравнении Intel Ultra 7 270K и Ryzen 9 9900X. Там Intel выигрывал по prefill на 23% и был дешевле на 30%. Но тот тест не затрагивал multi-GPU P2P. Сейчас картина изменилась радикально.

Тестовый стенд и методика: как мы проверяли Intel Core Ultra 270K и Z890

Конфигурация системы

Стенд собран на процессоре Intel Core Ultra 7 270K с материнской платой на чипсете Z890. Две видеокарты NVIDIA RTX 3090 установлены в слоты PCIe 5.0 с разбивкой линий 8x/8x. Оперативная память - 64 ГБ DDR5-6000. Операционная система - Ubuntu 24.04 LTS, драйверы CUDA 12.8, фреймворк VLLM версии 0.6.3.post1.

Для сравнения использованы две платформы AMD: Ryzen 9 9950X на чипсете X870E (AM5) и серверный EPYC 4564P на SP5. Обе с аналогичной конфигурацией GPU и разбивкой PCIe 8x/8x.

Методика тестирования PCIe P2P и Tensor Parallel

Пропускную способность P2P замеряли утилитой p2pBandwidthLatencyTest из состава CUDA Samples. Тест гоняет данные напрямую между двумя GPU в обе стороны, минуя CPU и системную память. Запускали на нативных драйверах и на патченных - с принудительно поднятым P2P через модификацию nvidia-p2p.ko.

Для проверки tensor parallel использовали модель LLaMA-2-70B-chat в квантизации FP16. Конфигурация VLLM: tensor_parallel_size=2, max_model_len=4096. Оценивали корректность вывода на наборе из 20 промптов и замеряли latency генерации.

Результаты тестов: PCIe P2P на Intel Arrow Lake не работает

Пропускная способность PCIe P2P: нативные драйверы vs патч

На нативных драйверах P2P не активируется. Утилита p2pBandwidthLatencyTest сообщает: "Peer-to-Peer access not available". Данные идут через системную память - GPU0 → RAM → GPU1. Пропускная способность упирается в DDR5 и составляет около 18 ГБ/с.

После установки патченного модуля nvidia-p2p.ko P2P поднимается, но скорость удручает. Вместо ожидаемых ~32 ГБ/с для PCIe 5.0 x8 (кодировка 128b/130b) тест показывает 15-16 ГБ/с. Это вдвое ниже теоретического предела и даже медленнее, чем обходной путь через RAM. Для сравнения: на AMD EPYC 4564P с теми же картами P2P работает из коробки и выдает стабильные 31.5 ГБ/с.

ПлатформаРежим P2PПропускная способность (ГБ/с)
Intel Arrow Lake (Z890)Нативный драйверP2P недоступен
Intel Arrow Lake (Z890)Патченный драйвер15.2
AMD AM5 (X870E)Нативный драйвер31.8
AMD EPYC 4564PНативный драйвер31.5

Падение пропускной способности на Intel критично для задач, где GPU активно обмениваются тензорами. Tensor parallel, pipeline parallel, ZeRO-3 - все эти техники требуют быстрого межкарточного канала. 15 ГБ/с - это уровень PCIe 3.0 x8, а не 5.0.

Tensor Parallel в VLLM: мусор на выходе

С патченным P2P модель LLaMA-2-70B-chat стартует, но вывод некорректен. На промпт "Объясни, что такое градиентный спуск" система выдает поток токенов без смысловой связи: "спуск градиентный это метод оптимизации который используется в машинном обучении для нахождения минимума функции потерь градиент спускается вниз по склону ошибки обновляя веса модели в направлении антиградиента..." - и дальше текст ломается в повторяющиеся фрагменты и случайные символы.

Latency генерации при этом плавает от 120 до 450 мс на токен. Для сравнения: на AMD EPYC та же модель с tensor_parallel_size=2 выдает стабильные 45-50 мс на токен и абсолютно связный вывод. Проблема Intel не в скорости, а в целостности данных. P2P-транзакции теряют или искажают часть тензоров, что разрушает forward pass.

Этот результат перечеркивает использование Arrow Lake для любого распределенного инференса. Даже если закрыть глаза на низкую пропускную способность, некорректный вывод делает платформу непригодной.

Сравнение с AMD EPYC и AM5: P2P работает стабильно

Производительность PCIe P2P на AMD

Обе платформы AMD демонстрируют P2P "из коробки" без патчей и танцев с бубном. Пропускная способность 31.5-31.8 ГБ/с близка к теоретическому пределу PCIe 5.0 x8. Задержка на транзакцию - менее 2 мкс против 8-12 мкс на Intel с патчем.

Стабильность тоже на высоте. За 24-часовой прогон теста p2pBandwidthLatencyTest ни одного сбоя, пропускная способность не деградирует. Intel с патченным драйвером через 3-4 часа начинает сыпать ошибками и требует перезагрузки.

Корректная работа Tensor Parallel на AMD

На AMD EPYC и Ryzen AM5 tensor parallel функционирует без ошибок. Модель LLaMA-2-70B-chat выдает ожидаемый связный текст. Показатели throughput: 24 токена/с на EPYC, 22 токена/с на AM5. Разница объясняется чуть более высокой пропускной способностью Infinity Fabric у серверной платформы.

Для справки: мы ранее разбирали сборку AI-сервера на двух RTX 3080 20GB - там P2P тоже работал стабильно на AMD. С Intel таких успехов не повторить.

Почему Intel Arrow Lake не справляется с multi-GPU: анализ причин

Корень проблемы - чипсет Z890 и архитектура Arrow Lake. Процессор имеет 24 линии PCIe 5.0, но они выходят напрямую из CPU только для первого слота x16. Второй слот x8 подключен через чипсет, который висит на шине DMI 4.0 x8. DMI - это по сути PCIe 4.0 x8 с пропускной способностью около 16 ГБ/с.

Когда две карты пытаются общаться через P2P, транзакции проходят через чипсет и упираются в DMI. Это объясняет падение скорости до 15 ГБ/с. Но почему данные искажаются? Вероятная причина - отсутствие аппаратной поддержки ACS (Access Control Services) для P2P на чипсете Z890. Без ACS контроллер PCIe не может корректно маршрутизировать P2P-транзакции между разными корневыми портами.

У AMD архитектура иная. Процессоры Ryzen и EPYC имеют встроенный PCIe-коммутатор, который аппаратно поддерживает P2P между слотами, подключенными к разным корневым портам CPU. Поэтому P2P работает без патчей и с полной скоростью.

Эта ситуация напоминает кейс из тестов Xeon Gold против EPYC Rome, где мы видели похожие архитектурные ограничения Intel при работе с AVX-512 и пропускной способностью памяти. Intel систематически проигрывает в сценариях с интенсивным обменом данными между компонентами.

Альтернативы для multi-GPU AI-инференса: на чем собирать

Для рабочих станций с двумя GPU оптимальный выбор - AMD AM5 на процессорах Ryzen 7000/9000. Материнские платы на чипсетах X670E и X870E гарантируют два слота PCIe 5.0 x8 напрямую от CPU с полноценным P2P. Цена сборки сопоставима с Intel Arrow Lake.

Для серверов с тремя и более GPU - AMD EPYC 4004 или 8004 серии. Они дают 28-128 линий PCIe 5.0 напрямую от процессора, что позволяет разводить карты без чипсетных узких мест. P2P работает между любыми слотами.

Если бюджет ограничен, рассмотрите альтернативные подходы к multi-GPU. Мы успешно запускали оптимизацию инференса на одном B300 и распределенный инференс через RPC на устаревших GPU. Иногда сетевое объединение карт через Ethernet дает более предсказуемый результат, чем попытка подружить их на проблемном чипсете.

Выводы: Intel Core Ultra 270K и Z890 - не для AI-инференса с несколькими GPU

Intel Arrow Lake на Core Ultra 270K и Z890 - платформа с хорошим single-GPU потенциалом, но для multi-GPU AI-инференса она категорически не рекомендуется. Три факта:

  • PCIe P2P не работает на нативных драйверах
  • Патченный P2P дает вдвое меньшую скорость и искажает данные
  • Tensor parallel в VLLM выдает мусор

AMD EPYC и AM5 лишены этих проблем. P2P работает стабильно, пропускная способность близка к теоретической, tensor parallel корректен. Разница в стоимости платформы нивелируется отсутствием головной боли и потерянного времени.

Если вы уже собрали систему на Arrow Lake с двумя GPU, не пытайтесь запустить на ней распределенный инференс. Используйте карты независимо - каждая со своей моделью, или рассмотрите перенос на AMD. А если только планируете сборку, выбирайте платформу с проверенной поддержкой P2P. Это сэкономит вам недели отладки и убережет от ложных выводов о качестве моделей.

Подписаться на канал