Будет ли Tensorflow Queue ускорить загрузку данных на одном процессоре? - PullRequest
0 голосов
/ 17 января 2019

В настоящее время у меня есть несколько существующих кодов, которые хорошо работают на графических процессорах. Я попытался запустить его на машине с Ubuntu с одним GPU и кластерным сервером с несколькими GPU. Оба эксперимента очень быстрые.

Однако, когда я попытался запустить его на своем ноутбуке с одним ЦП (без графического процессора), он стал очень низким ... более чем в 100 раз медленнее.

Я понимаю, что было бы намного медленнее, если бы у меня не было GPU для тренировок. Но я действительно надеюсь понять, зависит ли «Очередь» от такой разницы в аппаратной платформе.

Обычно мы используем процессоры для загрузки данных в графические процессоры через «очереди», но нет смысла играть с одним процессором и использовать очереди Tensorflow. Кто-нибудь может дать мне какое-нибудь руководство?

1 Ответ

0 голосов
/ 07 июня 2019

Это предложение может помочь вам в эффективном использовании вашего процессора, если он имеет несколько ядер.

Для повышения производительности необходимо установить несколько параметров, включая OMP_NUM_THREADS, аффинные домены и т. Д., В соответствии с количеством доступных физических ядер.

Вы можете попробовать следующие шаги оптимизации, которые помогут лучше использовать ваш процессор.

export OMP_NUM_THREADS=NUM_PARALLEL_EXEC_UNITS
export KMP_BLOCKTIME=30
export KMP_SETTINGS=1
export KMP_AFFINITY=granularity=fine,verbose,compact,1,0

NUM_PARALLEL_EXEC_UNITS - количество физических ядер.

Производительность оказывается лучше, когда NUM_PARALLEL_EXEC_UNITS равно количеству физических ядер. Но это может варьироваться. Вы можете попробовать разные значения, чтобы выбрать лучшее.

...