Оптимизация Tensorflow для 32-ядерного компьютера - PullRequest
0 голосов
/ 24 мая 2018

Я использую код тензорного потока на машине Intel Xeon с 2 физическими процессорами каждый с 8 ядрами и гиперпоточностью, что в сумме составляет 32 доступных виртуальных ядра.Тем не менее, я запускаю код, сохраняя системный монитор открытым, и замечаю, что используется лишь небольшая часть этих 32 виртуальных ядер и что средняя загрузка ЦП ниже 10%.

Я довольно новичок в tenorflow и не настроил сессию никоим образом.У меня вопрос: должен ли я как-то сказать tenorflow, сколько ядер он может использовать?Или я должен предположить, что он уже пытается использовать их все, но где-то еще есть узкое место?(например, медленный доступ к жесткому диску)

1 Ответ

0 голосов
/ 24 мая 2018

TensorFlow попытается использовать все доступные ресурсы ЦП по умолчанию.Вам не нужно ничего настраивать для этого.Может быть много причин, по которым вы можете видеть низкую загрузку процессораВот некоторые возможности:

  • Наиболее распространенным случаем, как вы указали, является медленный конвейер ввода.
  • Ваш график может быть в основном линейным, то есть длинной узкой цепочкой операцийна относительно небольших объемах данных, каждый из которых зависит от результатов предыдущего.Когда одна операция выполняется на маленьких входах, ее параллелизация не дает большого преимущества.
  • Вы также можете быть ограничены пропускной способностью памяти.
  • Один вызов session.run() занимает мало времени.Итак, вы в конечном итоге переходите от Python к движку исполнения.

Здесь вы можете найти полезные советы

Использовать временную шкалу чтобы увидеть, что выполняется, когда

...