Баг или фича? Ошибка процессора NVIDIA Vera мешает работе GPU других производителей

Опубликовал Андрій Русанов

NVIDIA выпустила процессор Vera отдельной SoC, доступную сторонним производителям как Arm-конкурент Intel Xeon и AMD EPYC. Но при работе с GPU AMD или другими могут возникнуть проблемы.

Аппаратный баг вызывает ошибки при сочетании с видеокартами или ускорителями ИИ других производителей. Проблема возникает из-за того, как контроллеры PCIe процессоров Vera генерируют адреса памяти. При определенных условиях они создают недействительные адреса, которые нарушают надежное соединение со сторонними устройствами. Это происходит во время операций записи PCIe Memory-Mapped I/O (MMIO), когда процессор пытается записать данные с частичным байтовым разрешением в область MMIO.

Проблема усугубляется, когда эти области отображаются с помощью атрибута Arm Normal Non-Cacheable памяти «MT_NORMAL_NC», что создает значительные проблемы совместимости. Поскольку Arm использует более свободный порядок памяти для обычных некэшируемых атрибутов, это может вызвать ошибку, которая приведет к неправильной генерации адресов, повреждению данных и даже сбою устройств PCIe при выполнении рабочих нагрузок с интенсивным DMA, таких как обучение искусственного интеллекта или масштабное моделирование HPC. GPU NVIDIA разработаны с учетом особенностей Vera и их специфического доступа к памяти, поэтому никаких проблем не возникает.

Как пишет TechPoverUp, NVIDIA может решить эту проблему с помощью своих аппаратно-специфических ядер Linux, которые содержат обходные пути для таких сценариев. В NV-Kernels, которые NVIDIA хранит в отдельном репозитории для развертывания своего оборудования, есть патч для ядра Linux, который превращает MT_NORMAL_NC в Device-nGnRE (non-Gathering, non-Reordering, Early acknowledgement), что обеспечивает более строгое упорядочение. Производительность в основном сохраняется, но могут возникать повышенные задержки, которые могут привести к влиянию на производительность в некоторых рабочих нагрузках, чувствительных к вводу/выводу.

Эта проблема возникает не только с процессорами NVIDIA. Контроллеры PCIe систем Ampere Computing Altra на базе Arm тоже генерируют недействительные адреса при записи MMIO при определенных нагрузках. Ampere решает это похожим способом, что свидетельствует о том, что основной причиной может быть обработка памяти Arm при подключении внешних устройств. Однако пока не сообщалось об ухудшении производительности.

Контент сайту призначений для осіб віком від 21 року. Переглядаючи матеріали, ви підтверджуєте свою відповідність віковим обмеженням.

Cуб'єкт у сфері онлайн-медіа; ідентифікатор медіа - R40-06029.