У меня есть модель, которая принимает 2 трехмерных тензора и выводит четырехмерный тензор. Protobuf-версия этой модели весит около 750 МБ. Исполняемый файл вывода C++ создается/запускается на компьютере с Windows 10 и использует ЦП.
У меня есть рабочий код C++, который использует tensorflow.dll для загрузки модели каждый раз и выполнения прямого прохода. (например, то, что упоминается в этом сообщении). Время выполнения для этого составляет от 55 до 70 секунд, и основным компонентом этого является время загрузки модели и построения графика (около ~ 25 секунд).
Чтобы ускорить выполнение, перешли к обслуживанию модели с помощью докера TF Serve (например, это). Теперь общее время выполнения сокращается до 20-40 секунд. Время, необходимое для прохода вперед, составляет около 8 секунд.
Есть ли способ ускорить это (подход сервер-клиент) еще больше? Скажем, используя больше ядер процессора?
Я понимаю, что квантование параметров модели до f16 или int ускорит время выполнения. Есть ли другие идеи?
Это наблюдаемое время работы для моделей аналогичного размера на ЦП? Скажем, BERT (маленький и/или большой)?
Спасибо!