Rulez o stație de lucru cu un procesor AMD (EPYC 7H12) și un GPU Nvidia (RTX 3090). Sistemul funcționează pe Ubuntu 20.04. Când lucrez cu tensorflow, primesc în mod repetat avertismente așa cum este descris în acest articol Deci intrebare.
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:939] nodul NUMA citit cu succes de la SysFS a avut valoare negativă (-1), dar trebuie să existe cel puțin un nod NUMA, deci returnând nodul NUMA zero
Un Răspuns sugerează să identificați ID-ul magistralei PCI al GPU-ului și apoi să setați setarea numa_node pentru acel dispozitiv la 0. În cazul meu, următoarele au funcționat. După identificarea PCI-ID folosind lspci | grep NVIDIA:
# 1) Identificați ID-ul PCI al GPU-ului (cu ID-ul domeniului)
# În cazul meu: PCI_ID="0000.81:00.0"
lspci -D | grep NVIDIA
# 2) Scrieți afinitatea NUMA în fișierul numa_node al dispozitivului.
ecou 0 | sudo tee -a „/sys/bus/pci/devices/<PCI_ID>/numa_node”
Aceasta este, totuși, doar o soluție superficială. În primul rând, setarea numa_node este resetată (la valoarea -1) de fiecare dată când sistemul este repornit. În al doilea rând, driverele Nvidia par să ignore acest steag, așa cum nvidia-smi (de la Nvidia instrument de management al șoferului) încă afișează:
nvidia-smi topo -m
#
# Afinitate CPU GPU0 Afinitate NUMA
# GPU0 X 0-127 N/A
Cum pot specifica afinitatea NUMA pentru GPU în mod persistent? Este aceasta o configurație a driverului Nvidia, Ubuntu sau BIOS-ul? Știu că Kernel-ul Linux este NUMA conștient, dar mi-a fost greu să găsesc resurse despre cum să configurez acest lucru.
Actualizați: Am adăugat un crontab ca root, care rezolvă problema mai persistent. Remedierea rămâne totuși „superficială”, deoarece driverul Nvidia nu este conștient de acest lucru.
sudo crontab -e
#Â Adăugați următorul rând
@reboot (echo 0 | tee -a "/sys/bus/pci/devices/<PCI_ID>/numa_node")