Использует ли Tensorflow автоматически несколько процессоров? - PullRequest
1 голос
/ 17 мая 2019

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

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

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

1 Ответ

1 голос
/ 17 мая 2019

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

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

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

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

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

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

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

...