Google представила новый механизм логического вывода на мобильных ускорителях через OpenCL для своей платформы TensorFlow на Android. По словам представителей компании, он удвоит скорость вычислений по сравнению с существующим модулем на основе OpenGL при исполнении моделей ИИ «разумного размера».
Механизм доступен в последней версии библиотеки TensorFlow Lite.
Вычислительные шейдеры добавляли в версии OpenGL ES 3.1, API для рендеринга векторной графики, но тогда команда TensorFlow заявила, что этот API не позволяет реализовать в полной мере потенциал графических процессоров из-за проблем обратной совместимости.
OpenCL же с самого начала разрабатывался как стандарт для вычислений с использованием различных ускорителей. В TensorFlow решили перейти на движок на основе OpenCL после соответствующего исследования.
Поддержка FP16 и концепция постоянной памяти в новом механизме логического вывода TensorFlow поможет работать некоторым старым ускорителям типа Adreno 305 в полную силу. А вот испытание поисковой нейронной системы MNASNet 1.3 через новую библиотеку TensorFlow продемонстрировало уменьшение задержки со 100 мс до 25 мс.
При этом в Google отметила, что OpenCL не является частью стандартного дистрибутива Android, поэтому новая библиотека может быть недоступна для некоторых пользователей.
В связи с этим TensorFlow Lite теперь проверяет наличие OpenCL. Если API недоступен, то происходит переключение на движок на базе OpenGL.
См. также:
da0c
"Логический вывод" не вполне корректный термин, оставьте просто "инференс". А за новость спасибо!