Как использовать DSP для ускорения код OMAP?

Фиксация в git может быть многоэтапным процессом или одним шагом в зависимости от ситуации.

  1. В этой ситуации у вас есть несколько файлов, которые обновляются и вы хотите зафиксировать:

    Вы должны добавить все измененные файлы, прежде чем что-то зафиксировать.

    git add -A
    

    или

    git add --all
    
  2. После этого вы можете использовать коммит всех добавленных файлов

    git commit
    

    , с этим вы должны добавить сообщение для этот коммит.

6
задан Can Bal 26 June 2009 в 09:20
поделиться

3 ответа

From the measurements I did, one messaging cycle between CPU and DSP takes about 160us. I don't know whether this is because of the kernel I use, or the bridge driver; but this is a very long time for a simple back & forth messaging.

It seems that it is only reasonable to port an algorithm to DSP if the total computational load is comparable to the time required for messaging; and if the algorithm is suitable for simultaneous computing on CPU and DSP.

-1
ответ дан 17 December 2019 в 18:19
поделиться

OMAP3430 не имеет встроенного DSP, у него есть механизм декодирования видео / аудио IVA2 +, подключенный к системной шине, а ядро ​​Cortex имеет DSP-подобные инструкции SIMD. Графический процессор на OMAP3430 - это блок на базе PowerVR SGX. Хотя у него есть программируемые шейдеры, и я не верю, что есть какая-либо поддержка для программирования общего назначения, например, CUDA или OpenCL. Я могу ошибаться, но я никогда не слышал о такой поддержке

. Если вы используете встроенный механизм кодирования / декодирования IVA2 +, вам необходимо использовать соответствующие библиотеки для этого устройства, и он поддерживает только определенные кодеки из тех, что я знаю. Вы пытаетесь написать свою собственную библиотеку для этого модуля?

Если вы используете встроенный в Cortex DSPish (инструкции SIMD), опубликуйте код.

Если на вашей плате разработчика есть дополнительный DSP, что такое DSP и как он связан с OMAP?

Что касается вопроса о графическом процессоре настольного компьютера, в случае декодирования видео вы используете библиотеки функций, поставляемые поставщиком, для выполнения вызовов к оборудованию, их несколько, VDAPU для Nvidia в Linux, аналогичные библиотеки в Windows (кажется, это называется PureViewHD). ATI также имеет библиотеки как для Linux, так и для Windows для своих встроенных механизмов декодирования, я не знаю названий.

2
ответ дан 17 December 2019 в 18:19
поделиться

Я не знаю, в какой временной базе вы передаете данные, но я знаю, что TMS32064x, который указан в спецификации для SDK, имеет очень мощный механизм DMA. (Я предполагаю, что это оригинальный ZOOM OMAP34X MDK. В нем написано, что у него 64xx.) Я надеюсь, что у OMAP есть что-то похожее, используйте их в полной мере. Я бы порекомендовал установить буферы для пинг-понга во внутренней оперативной памяти 64xx и использовать SDRAM в качестве разделяемой памяти с дескриптором передачи по DMA. Внешняя оперативная память будет узким местом для любой из частей серии 6xxx, поэтому сохраняйте все, что можно, во внутренней памяти для повышения производительности. Как правило, эти части будут иметь возможность передавать 8 32-битных слов в ядро ​​процессора, когда оно находится во внутренней памяти, но это варьируется от части к части в зависимости от того, какой уровень кеша он позволяет отображать как оперативную память прямого доступа. Чувствительные к стоимости компоненты от TI перемещают «отображаемую память» дальше, чем некоторые другие микросхемы. Также все руководства к деталям доступны для бесплатного скачивания у TI в формате PDF. Они даже бесплатно предоставили мне печатные копии руководства по процессору и набору инструкций TMS320C6000 и многих других книг.

Что касается программирования, вам может потребоваться использовать некоторые из "встроенных функций процессора" или встроенную сборку для оптимизации любых математических расчетов. делаю. Для 64xx по возможности отдайте предпочтение целочисленным операциям, потому что у него нет встроенного ядра с плавающей запятой. (Они входят в серию 67xx. ) Если взглянуть на блоки возбуждения и вы можете сопоставить свои расчеты так, чтобы разные части нацелены на разные операции таким образом, который может происходить в одном цикле, тогда вы сможете добиться наилучшей производительности из этих частей. В руководстве по набору команд перечислены типы операций, выполняемых каждым исполнительным устройством. Если вы можете разбить свои вычисления на наборы с двумя потоками данных и немного размотать циклы, компилятор будет «лучше» для вас, когда включена полная оптимизация. Это связано с тем, что процессор разделен на левую и правую части с почти идентичными исполнительными блоками с обеих сторон.

Надеюсь, это поможет.

Если вы можете разбить свои вычисления на наборы с двумя потоками данных и немного размотать циклы, компилятор будет «лучше» для вас, когда включена полная оптимизация. Это связано с тем, что процессор разделен на левую и правую части с почти идентичными исполнительными блоками с обеих сторон.

Надеюсь, это поможет.

Если вы можете разбить свои вычисления на наборы с двумя потоками данных и немного размотать циклы, компилятор будет «лучше» для вас, когда включена полная оптимизация. Это связано с тем, что процессор разделен на левую и правую части с почти идентичными исполнительными блоками с обеих сторон.

Надеюсь, это поможет.

2
ответ дан 17 December 2019 в 18:19
поделиться