Как профилировать код в симуляторе шестиугольника dsp - PullRequest
0 голосов
/ 28 апреля 2018

Я пытался скомпилировать свой код, используя -pg, чтобы включить профилирование в симуляторе, и как только я это сделаю, он выдаст мне ошибки компоновщика.

Команда компиляции

hexagon-clang ++ main.cpp -o привет -mv62 -pg

Error

hexagon-clang++  main.cpp -o hello -mv62 -pg
Error: /tmp/main-924ac3.o(.text+0x30): undefined reference to `mcount'
Error: /tmp/main-924ac3.o(.text+0x130): undefined reference to `mcount'
Fatal: Linking had errors.

Я впервые пишу код для микросхемы DSP, в частности для шестиугольника 682. Существуют ли какие-либо учебные пособия или ссылки, кроме справочного руководства для программиста, поскольку они не очень помогли мне понять, как все работает. Особенно я не понимаю, как работает SIMD-программирование. Я не уверен, каков размер регистров SIMD. Также кажется, что использование плавающей запятой в чипах DSP не очень хорошая идея. Поэтому было бы лучше, если бы я преобразовал свой код в фиксированную точку.

1 Ответ

0 голосов
/ 02 мая 2018

Вы можете использовать hexagon-sim для генерации данных профилирования без перестройки инструментированных двоичных файлов.

hexagon-sim --profile ./hello сгенерирует gmon входные файлы, необходимые для hexagon-gprof использования.

например. (взято из SDK 3.3.3 Examples/)

hexagon-clang -O2 -g -mv5   -c -o mandelbrot.o mandelbrot.c
hexagon-clang -O2 -g -mv5 mandelbrot.o -o mandelbrot -lhexagon
hexagon-sim -mv5 --timing --profile mandelbrot
hexagon-gprof mandelbrot gmon.t*

Также обратите внимание, что SDK поставляется с hexagon-profiler, более богатым инструментом, который позволяет детально увидеть счетчики производительности - информацию, выходящую за пределы того, какой код был выполнен и как часто.

Подробнее см. В «Руководстве пользователя Hexagon Profiler» (документ № 80-N2040-10 A).

Существуют ли какие-либо учебники или ссылки, кроме программиста справочное руководство, потому что они не очень помогли мне понять, как все работает.

Особенно я не понимаю, как работает SIMD-программирование. я не уверен какой размер регистров SIMD.

Расширение векторного программирования Hexagon называется "HVX". Существует специальный PRM для HVX, доступный по https://developer.qualcomm.com/software/hexagon-dsp-sdk/tools - он описывает различные 512-битные и 1024-битные векторные режимы.

...