Pull to refresh
9
0
Sergey Vityazev @vsv630

Пользователь

Send message
В этой статье речь идет о сравнении FPGA и SoC (не DSP). Действительно, DSP в этом контексте становится не самостоятельным устройством, а только частью более сложной системы. Но это с позиции производителя. С позиции же разработчика возникает вопрос, как вообще работать с такими SoC? То ли несколько программистов должно работать с одним кристаллом (один для ARM, другой для DSP и т.п.) То ли работать надо только с GPP, а за задействование сопроцессоров отвечают инструменты типа OpenCL и OpenMP. Я склоняюсь к первому варианту. Фактически, то что раньше представляло собой модуль или даже набор модулей, которые обслуживали 10 человек теперь умещается в одной микросхеме.
Эксперты говорят, сравнивать DSP и FPGA не совсем корректно. У них свои ниши. http://www.ti.com/lit/wp/spry296/spry296.pdf. Все упоминаемые решения имеют право на жизнь и в своих задачах будут иметь преимущество. Говорить категорично, что DSP, как технология is dead, не стоит. Разработчику объективно довольно сложно сейчас разобраться, когда что применять. Есть эксперты типа BDTI. А часто и экспертам сложно разобраться с учетом динамики технологий. Но будем стараться…
ADI, Freescale, ЭЛВИС. Соглашусь, что без ARM процессор выглядит гораздо скромнее, но я бы не проводил грани между KEyStone1 и KeyStone2. Для тех, кто собирается работать с KeyStone2 материалы по Keystone1 будут интересны и полезны. Keystone2 расширяет, но не отменяет Keystone1.
https://asp-eurasipjournals.springeropen.com/articles/10.1186/1687-6180-2014-161
Если бы не от Тексиса, была бы прекрасная статья: https://pdfs.semanticscholar.org/54ff/2092fcedd4d9b34c03a82208f9cf1d8c4830.pdf
Не совсем понятно, что вы считаете устаревшим. Если говорить о процессоре С6678, то он появился 6 лет назад. Это не очень большой срок для освоения, внедрения и использования новой технологии. На предприятиях успешно используют элементную базу 15 и более летней давности. Несколькими годами позже на базе С6678 появились процессоры KeyStone II, дополнившие C6678 ARM-ядрами. И на сегодняшний день такой тип архитектуры представляется state-of-the-art технологией в области цифровой обработки сигналов. Осенью ждем от TI новой линейки платформы KeyStone. Не думаю, что TI поддерживает и разрабатывает морально устаревшие технологии.

Если вы имели в виду DSP, как устаревшую технологию, то соглашусь, что сейчас более популярны процессоры общего назначения ARM, Intel и т.п., ПЛИС и графические процессоры. Но мне кажется здесь дело больше в именно популярности, маркетинге, возможно большем удобстве инструментов, простоте программирования, но не в конченых характеристиках производительности и энергоэффективности (конечно, все зависит от задачи). Умножение с накоплением никто не отменял. Просто сменились акценты. Впрочем, DSP всегда был процессором для узкого круга специалистов.

Курсы по С6678 читаются не "… еще где-то...", а возможно только у нас. Читаются для магистров, а также раз в год в рамках курсов повышения квалификации для представителей предприятий. Число участников — 10-20. Востребованность есть.

На мой взгляд, сейчас более актуальна задача перехода на отечественные процессоры. Мы работаем в этом направлении, но отталкиваемся от флагманов мировой процессорной индустрии.

Спасибо за комментарии!
Версия стандарта OpenMP — это версия набора имеющихся API и их общая идеология. Как эти API и идеологию реализовать на конкретной аппаратной платформе — проблема разработчиков платформы, в данном случае TI. Поэтому есть версия спецификации OpenMP и версия реализации спецификации. На данный момент TI выпустила версию 2.2 спецификации OMP 3.0.

По поводу графиков времени — спасибо.

Директивы OpenMP желательно использовать, скажем так, на уровень выше по отношению к оптимизируемым структурам. Тогда компилятор формирует эффективный код внутри параллельного региона, а OpenMP добавляет снаружи свои издержки на распараллеливание. Но возможны и сложности. Например, столкнулись с тем, что директива atomic не дает выигрыша по сравнению c critical как раз по этой причине: директива OpenMP внутри цикла делает невозможной оптимизацию этого цикла.

Примеры, ориентированы на ЦОС. Здесь подразумевается сравнение с теми примерами, которые содержатся в документации на OpenMP. Там примеры часто замысловатые и неудобные.

Еще хочу отметить, что курсы повышения квалификации предназначены для программистов DSP, которые хотят познакомиться с новыми инструментальными средствами. То есть основной упор на DSP, а не на OpenMP.

За комментарии — спасибо!
Подробнее о курсах повышения квалификации: www.dspa.ru/workshops/ws.php
По поводу затрат на OpenMP — да они существенны. Это отдельная тема отдельной статьи. Важно отметить, что OpenMP 2-ой версии от TI СУЩЕСТВЕННО лучше, чем OpenMP 1-ой версии за счет применения Multicore Navigatora и других приемов. Мы пытались распараллеливать КИХ-фильтр и другие типовые задачи ЦОС, но C66x — это машина, которая рассчитана не на такие примитивные вычисления, а на более серьезные задачи. А в более серьезных задачах уровень распараллеливания гораздо выше и затраты на OpenMP становятся оправданными. В целом, считаю данный путь перспективным.
Подробнее о курсах повышения квалификации: . Мы проводим их периодически, в разных форматах, по разной цене, с разными акцентами. В этом году приглашаем преподавателя из UK. Естественно, материалы просто так не распространяем, приглашаем на курсы. Содержание курсов есть на сайте.
Спасибо за комментарий. Это была ошибка, причем достаточно принципиальная. Недосмотрели. В этом примере a и b быть не должно. Исправил. Более сложно подкорректировать предыдущий пример, где a и b задаются, но не объявлены. Дело в том, что их нужно передавать в параллельный регион как частные переменные, а в данном разделе (директива parallel) про частные переменные речи еще не было, и не хотелось бы забегать вперед. Как выйти из этой ситуации, подумаю…

Information

Rating
Does not participate
Registered
Activity