TensorFlow: конфигурация параллельного и межоперационного параллелизма

Может кто-нибудь объяснить следующие термины TensorFlow:

  1. inter_op_parallelism_threads
  2. intra_op_parallelism_threads

или, пожалуйста, укажите ссылки на правильный источник объяснений.

Я провел несколько тестов, изменив параметры, но результаты не были последовательными, чтобы прийти к выводу.

One Solution collect form web for “TensorFlow: конфигурация параллельного и межоперационного параллелизма”

Параметры inter_op_parallelism_threads и intra_op_parallelism_threads задокументированы в источнике tf.ConfigProto протокола tf.ConfigProto . Эти параметры настраивают два пула потоков, используемые TensorFlow для параллелизации выполнения, как описывают комментарии:

 // The execution of an individual op (for some op types) can be // parallelized on a pool of intra_op_parallelism_threads. // 0 means the system picks an appropriate number. int32 intra_op_parallelism_threads = 2; // Nodes that perform blocking operations are enqueued on a pool of // inter_op_parallelism_threads available in each process. // // 0 means the system picks an appropriate number. // // Note that the first Session created in the process sets the // number of threads for all future sessions unless use_per_session_threads is // true or session_inter_op_thread_pool is configured. int32 inter_op_parallelism_threads = 5; 

Существует несколько возможных форм параллелизма при запуске графика TensorFlow, и эти параметры обеспечивают некоторый контроль многоядерного параллелизма процессора:

  • Если у вас есть операция, которая может быть распараллелирована внутренне, например, умножение матрицы ( tf.matmul() ) или сокращение (например, tf.reduce_sum() ), TensorFlow выполнит его путем планирования задач в пуле потоков с потоками intra_op_parallelism_threads . Таким образом, этот параметр конфигурации управляет максимальным параллельным ускорением для одной операции. Обратите внимание, что если вы выполняете несколько операций параллельно, эти операции будут совместно использовать этот пул потоков.

  • Если у вас много операций, которые независимы в вашем графике TensorFlow, потому что в графе потока данных нет направленного пути между ними, TensorFlow будет пытаться запускать их одновременно, используя пул потоков с потоками inter_op_parallelism_threads . Если эти операции имеют многопоточную реализацию, они будут (в большинстве случаев) совместно использовать один и тот же пул потоков для параллельного параллелизма.

Наконец, обе опции конфигурации принимают значение по умолчанию 0 , что означает «система выбирает подходящее число». В настоящее время это означает, что каждый пул потоков будет иметь один поток на ядро ​​процессора на вашем компьютере.

 
Interesting Posts for Van-Lav

Невозможно выполнить замену

Недопустимый тег блока: 'bootstrap_icon', ожидаемый 'endblock'

Библиотека коррекции базовой линии Python

Как сделать безопасное двоичное сравнение в Python?

Sphinx генерирует пустую документацию

Почему утверждения в unittest используют TestCase.assertEqual, а не ключевое слово assert?

Запретить доступ к переменной экземпляра из подкласса, не затрагивая базовый класс

Получение элемента из кортежей кортежей в python

может ли скрипт python знать, что работает другой экземпляр того же скрипта … а затем поговорить с ним?

Минимальный, автономный, распространяемый, межплатформенный веб-сервер

Как установить Yandex CatBoost на Anaconda x64?

Должен ли метод модифицирующего класса сохранять себя или быть вызванным вызовом после вызова метода?

Веб-скребок для динамических форм в python

Сжатый бит должен быть 0 при отправке сообщения клиенту websocket

Строка в функциях Cython

Python - лучший язык программирования в мире.