Python — Использование графического процессора в Caffe не достаточно полно, когда вы делаете прямой вывод, есть идеи?

Я кодировал обе версии сценариев прямой классификации Caffe для Python и C ++, чтобы проверить производительность вывода Caffe. Модель уже обучена. И результаты довольно схожи, утилиты GPU недостаточно полны.

Мои настройки:
1. Карта: Titan XP, 12 ГБ
2. Модель: InceptionV3
3. Размер изображения: 3 * 299 * 299

Когда batch_size установлен в 40, использование GRAM может достигать 10 ГБ, но использование утилит графического процессора может достигать 77% ~ 79%, как для Python, так и для C ++. Таким образом, производительность составляет около 258 кадров / с.

В моих сценариях я загрузил изображение, предварительно обработал его, загрузил в слой ввода и затем повторил операцию net_.forward (). Насколько я понимаю, это не вызовет операций копирования копии Mem, поэтому в идеале следует максимально использовать утилиты GPU. Но я могу достичь только не более 80%.

в Учебник по классификации C ++, Я нашел ниже фразу:

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

Поэтому я попытался использовать многопоточный скомпилированный OpenBLAS, и в бэкэнде ЦП фактически больше ЦП задействовано для пересылки, но не использовалось для бэкэнда графического процессора. Под бэкэндом графического процессора загрузка ЦП будет фиксированной примерно до 100%.

Затем я даже попытался уменьшить batch_size до 20 и запустить два процесса классификации в двух терминалах. В результате использование GRAM увеличивается до 11 ГБ, но использование графического процессора уменьшается до 64% ​​~ 66%. Наконец, производительность снижается примерно до 200 кадров / с.

Кто-нибудь сталкивался с этой проблемой? Я действительно смущен.

Любое мнение приветствуется.

Спасибо,

1

Решение

Как я уже заметил, использование GPU уменьшается с

1) низкий экспресс-режим PCI resnet-152 (x16) -90%> resnet-152 (x8) -80%> resnet-152 (x4) -70%
2) большая модель — VGG-100% (х16); ResNet-50 (x16) -95 ~ 100%; ResNet-152 (x16) — 90%

Кроме того, если я отключаю cuDNN, Util GPU всегда на 100%.

Поэтому я думаю, что есть некоторая проблема, связанная с cuDNN, но я не знаю больше о проблеме.

NVCaffe несколько лучше, и MXNet может использовать GPU 100% (resnet-152; x4).

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]