Рейтинг:1

Как постоянно устанавливать узел NUMA для графического процессора (NVIDIA)?

флаг sa

У меня рабочая станция с процессором AMD (EPYC 7H12) и графическим процессором Nvidia (RTX 3090). Система работает на Ubuntu 20.04. При работе с тензорным потоком я неоднократно получаю предупреждения, как описано в этом связанном ТАК вопрос.

Я tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:939] успешный узел NUMA, прочитанный из SysFS, имел отрицательное значение (-1), но должен быть хотя бы один узел NUMA, поэтому возвращаем нулевой узел NUMA

Ан отвечать предлагает определить идентификатор шины PCI графического процессора, а затем установить для параметра numa_node для этого устройства значение 0. В моем случае сработало следующее. После идентификации PCI-ID с помощью лспци | grep NVIDIA:

# 1) Определите PCI-ID графического процессора (с идентификатором домена)
# В моем случае: PCI_ID="0000.81:00.0"
lspci-D | grep NVIDIA
# 2) Запишите привязку NUMA в файл numa_node устройства.
эхо 0 | sudo tee -a "/sys/bus/pci/devices/<PCI_ID>/numa_node"

Однако это лишь поверхностное исправление. Во-первых, параметр numa_node сбрасывается (до значения -1) при каждом перезапуске системы. Во-вторых, похоже, что драйверы Nvidia игнорируют этот флаг, т.к. nvidia-smi (Nvidia инструмент управления драйверами) по-прежнему отображает:

nvidia-smi топо-м
#
# Сопоставление ЦП GPU0 Сопоставление ЦП NUMA
# GPU0 X 0-127 Н/Д

Как я могу постоянно указывать привязку NUMA к графическому процессору? Это конфигурация драйвера Nvidia, Ubuntu или BIOS? Я знаю, что ядро ​​Linux NUMA в курсе, но мне было трудно найти ресурсы о том, как это настроить.


Обновлять: я добавил crontab от имени пользователя root, что устраняет проблему более постоянно. Однако исправление остается «поверхностным», поскольку драйвер Nvidia не знает об этом.

судо кронтаб -е
#Â Добавьте следующую строку
@reboot (echo 0 | tee -a "/sys/bus/pci/devices/<PCI_ID>/numa_node")

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.