Должен ли я установить для `inter_op_parallelism_threads` и `intra_op_parallelism_threads` значение 1, когда я использую луч для создания актера?

Когда я использую ray для создания актеров и учеников в A2C, должен ли я установить inter_op_parallelism_threads и intra_op_parallelism_threads на 1 или оставить его по умолчанию?


person Maybe    schedule 24.03.2019    source источник


Ответы (1)


Это зависит от того, сколько ресурсов вы хотите, чтобы актер использовал. Если для данного актера есть выделенная машина, и актор может использовать все ресурсы на этой машине, тогда используйте настройки TensorFlow по умолчанию. Если вы создаете больше одного актера на ядро, хорошей идеей будет установить для inter_op_parallelism_threads и intra_op_parallelism_threads небольшие значения, например 1 или 2.

В общем, вы можете попробовать оба подхода и посмотреть, какой из них быстрее.

person Robert Nishihara    schedule 24.03.2019
comment
Спасибо, значит, если я создам актора на ядро, то оба должны быть установлены на 1? - person Maybe; 25.03.2019
comment
Да, хотя стоит также попробовать установить inter_op_parallelism_threads на 2, чтобы посмотреть, как это работает. В зависимости от того, что на самом деле делают актеры (например, некоторые из них бездействуют какое-то время), это может работать лучше. Однако, если все они все время заняты, то 1 предотвратит слишком много разногласий между актерами. - person Robert Nishihara; 26.03.2019
comment
Спасибо тебе за твое терпение. Теперь я понимаю большую часть вашего ответа, за исключением того, что 1 предотвратит слишком много разногласий между актерами. If I've clearly set num_cpus=1`, будут ли все еще какие-либо разногласия между актерами? - person Maybe; 26.03.2019
comment
Да, конфликт все еще может быть, когда вы укажете num_cpus=1 в удаленном декораторе, планировщик Ray позаботится о том, чтобы не создавать более одного такого актера на ядро. Однако актор по-прежнему может быть сильно многопоточным и по-прежнему может использовать все доступные ядра ЦП. Рэй на самом деле не мешает актеру использовать все ресурсы машины. Имеет ли это смысл? - person Robert Nishihara; 26.03.2019
comment
Я понимаю. Пожалуйста, позвольте мне повторить и посмотреть, правильно ли я понимаю. Если я украшаю всех актеров num_cpus=1, максимальное количество актеров, которое можно создать, равно количеству процессоров, указанному в ray.init. Но ничего не говорится о том, сколько ресурсов процессора разрешено использовать актеру. - person Maybe; 26.03.2019