закрепить и распределить тензорный поток на конкретном узле NUMA - PullRequest
1 голос
/ 30 сентября 2019

Моя система имеет два узла NUMA и два GTX 1080 Ti, подключенных к узлу NUMA 1 (XEON E5).

Модели NN обучаются с помощью параллелизма данных на одном компьютере с несколькими графическими процессорами с использованием Keras 'multi_gpu_model.

Как TF может быть дано указание распределять память и выполнять работников TF (слияние весов) только на узле NUMA 1? Из соображений производительности я бы хотел запретить доступ к памяти через QPI.

tf.device ():

1) Имеет ли tf.device ('/ cpu: 0') ссылку нафизический процессор или физическое ядро, или это просто «логическое устройство» (поток | пул?), которое перемещается между всеми физическими ядрами, которые находятся в сети?

2) Как можно повлиять на планировщик TF, чтобы отобразитьлогическое устройство для набора физических ядер?

3) В случае выделения памяти в системах NUMA - поддерживает ли TF выделение памяти на определенных узлах? Или я должен вернуться к set_mempolicy () / numactl (LINUX)?

1 Ответ

0 голосов
/ 13 октября 2019

нет, ответ ...

Я использую numactl --cpunodebind=1 --membind=1 - привязывает выполнение и выделение памяти к узлу NUMA 1.

...