Использование GPU
Распознавание лиц требует использования значительных вычислительных ресурсов, поэтому мы добавили возможность ускорения модулей Face SDK с использованием GPU для выполнения алгоритмов глубокого обучения.
На данный момент GPU может быть использован для ускорения на следующих платформах:
- Windows x86 64-bit
- Linux x86 64-bit
- Android
- NVIDIA Jetson (JetPack 4.3/4.4)
В данном разделе вы узнаете:
- для каких модулей Face SDK доступно ускорение;
- как включить ускорение;
- результаты тестирования работы модулей с использованием CPU и GPU;
- возможные ошибки при использовании GPU и пути решения.
Desktop
На данный момент ускорение с использованием GPU доступно для следующих модулей Face SDK (доступно использование только одного GPU):
- Методы (11v1000, 10v30, 10v100, 10v1000, 9v30, 9v300, 9v1000, 9v30mask, 9v300mask, 9v1000mask) (см. Распознавание лиц)
- Детекторы (BLF, REFA, ULD) (см. Детекция лиц)
Для запуска моделей на GPU отредактируйте файл конфигурации объекта Recognizer, изменив значение поля use_cuda
с 0
на 1
.
Windows/Linux
- Системные требования:
- Для Windows
- Nvidia GPU Driver >= 441.22
- Microsoft Visual C++ Redistributable for Visual Studio 2019
- CUDA Toolkit 10.2
- cuDNN 7.6.5
- Для Linux
- Nvidia GPU Driver >= 440.33
- CUDA Toolkit 10.2
- cuDNN 7.6.5
- Для Windows
- Требования к оборудованию:
- Графический процессор (GPU) с поддержкой CUDA (NVIDIA GTX 1050 Ti и выше)
Также, реализована возможность применять предсобранные docker-контейнеры с поддержкой CUDA, например, nvidia/cuda:10.0-cudnn7-devel-ubuntu16.04 (некоторые виды лицензий при этом могут быть недоступны).
Ускорение происходит за счет одного из доступных GPU (по умолчанию – на GPU с индексом 0
). Индекс GPU можно изменить следующим образом:
- через параметр
gpu_index
в файле конфигурации объекта Recognizer - через переменную окружения
CUDA_VISIBLE_DEVICES
(Более подробно о переменных окружения CUDA смотрите по ссылке)
NVIDIA Jetson
- Системные требования:
- JetPack 4.3 или 4.4*
* Тестирование производилось на модулях Jetson TX2 и Jetson NX.
Компонент jetson_jetpack_4.3_4.4
можно выбрать в инсталлере Face SDK. По умолчанию в нем используется сборка для jetpack 4.4. Если вам требуется сборка для jetpack 4.3, переместите все файлы из директории lib/jetpack-4.3 в директорию lib.
Результаты тестирования
В таблице ниже представлены замеры скорости построения шаблона с использованием CPU и GPU:
Method | GPU | CPU |
12v1000 | 47 мс | 442 мс |
9v300 | 10 мс | 292 мс |
12v100 | 8 мс | 49 мс |
12v50 | 6 мс | 21 мс |
12v30 | 5 мс | 12 мс |
Примечание: при проведении замеров скорости использовалась видеокарта NVIDIA GTX 1070 и процессор Intel Core i5-9400 4.0GHz
Устранение ошибок
Ошибка | Решение |
Assertion failed (Cannot open shared object file libtensorflow.so.2) | Убедитесь, что файл библиотеки libtensorflow.so.2 находится в одной директории с используемой библиотекой libfacerec.so |
Assertion failed (Cannot open shared object file tensorflow.dll) | Убедитесь, что файл библиотеки tensorflow.dll находится в одной директории с используемой библиотекой facerec.dll |
Медленная инициализация | Увеличьте размер JIT кэша: export CUDA_CACHE_MAXSIZE=2147483647 (подробнее - JIT Caching ) |
Android
На данный момент ускорение с использованием GPU на Android доступно для следующих модулей Face SDK:
- Методы (9v30, 9v300, 9v1000, 9v30mask, 9v300mask, 9v1000mask) (см. Распознавание лиц)
- Детектор blf (см. Детекция лиц)
Использование GPU можно включить/отключить через флаг use_mobile_gpu
в файлах конфигурации объектов Capturer
, Recognizer
,VideoWorker
(в файле конфигурации объекта VideoWorker
использование GPU активируется для детекторов). По умолчанию поддержка мобильных GPU включена (значение 1
). Чтобы отключить использование GPU, измените значение флага use_mobile_gpu
на 0
.
Результаты тестирования
В таблице ниже представлены замеры скорости построения шаблона с использованием CPU и GPU:
Метод | CPU | GPU |
9v1000 | 3660 мс | 610 мс |
9v300 | 1960 мс | 280 мс |
9v30 | 170 мс | 70 мс |
Примечание: при проведении замеров скорости использовалось устройство Google Pixel 3.