Клиент
Заказчик — ведущий поставщик передовых систем помощи водителю для автомобильной промышленности.
Задача
В качестве эталонной реализации он использовал ряд сложных алгоритмов обработки данных датчиков, работающих на ПК. Заказчику требовалось перенести на новую платформу, а затем и настроить свои эталонные алгоритмы. В качестве платформ были поддержаны различные серии SoC (System on Chip) ведущих производителей полупроводниковых приборов, таких как Texas Instruments, NXP и Renesas.
Решение
Разработчики нашей компании оказали поддержку заказчику в оптимизации C++ реализации различных алгоритмов камер для целевых SoC-платформ. Наши специалисты создали среду профилирования для выявления узких мест в производительности (т.е. вычислительной мощности и ограничений доступа к памяти). Большое количество оптимизаций исходного кода было выполнено за счет использования специфики целевого аппаратного обеспечения, а именно: оптимизации структуры кода (оптимизация цикла, матричных операций и внутренних особенностей аппаратного обеспечения); выполнения некоторых вычислений для параллельного выполнения на векторных сопроцессорах; реструктуризации кода для использования параллельных вычислений. После каждой оптимизации всегда проводились битовые тесты ошибок, чтобы убедиться, что оптимизированный код все равно дает те же результаты. Кроме того, были реализованы автоматизированные средства измерения и отчетности по использованию ресурсов аппаратного обеспечения для обеспечения непрерывного измерения и отслеживания использования аппаратных ресурсов. Используя комбинацию различных методов оптимизации, команда смогла перенести эталонную реализацию на аппаратную платформу с ограниченными ресурсами (процессорное время, оперативная память, ПЗУ) и достичь поставленных целей по производительности.