Использует ли Tensorflow автоматически несколько процессоров?

Я запрограммировал некоторый код, делающий вывод с помощью C API Tensorflow (только CPU). Он работает на узле кластера, где у меня есть доступ к 24 процессорам и 1 графическому процессору. Я не использую графический процессор, так как позже мне нужно будет выполнить задачу только для процессора.

Каким-то образом каждый раз, когда я вызываю Tensorflow-Code из другой программы (OpenFOAM), Tensorflow запускается на всех параллельных процессорах. Однако я не сделал ничего, чтобы вызвать такое поведение. Теперь я хотел бы знать, выполняет ли Tensorflow эту распараллеливание по умолчанию?

Привет и спасибо заранее!

Всего 1 ответ


Я не уверен, как вы используете tenorflow. Но типичное обучение TensorFlow имеет входной конвейер, который можно рассматривать как процесс ETL. Ниже приведены основные виды деятельности:

Извлечение : чтение данных из постоянного хранилища

Преобразование . Используйте ядра ЦП для анализа и выполнения операций предварительной обработки данных, таких как декомпрессия изображений, преобразования увеличения данных (например, случайный обрез, перевороты и искажения цвета), тасование и пакетирование.

Загрузка : загрузка преобразованных данных в ускорительное устройство (устройства) (например, графические процессоры или TPU), которые выполняют модель машинного обучения.

Процессоры обычно используются во время преобразования данных. Во время преобразования элементы ввода данных предварительно обрабатываются. Чтобы повысить производительность предварительной обработки, по умолчанию она распараллеливается на несколько ядер ЦП.

Tensorflow предоставляет API tf.data, который предлагает преобразование tf.data.Dataset.map. Для управления параллелизмом карта предоставляет аргумент num_parallel_calls.

Подробнее об этом читайте здесь: https://www.tensorflow.org/guide/performance/datasets


Есть идеи?

10000