Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F7(F4) vs C2000 Delfino
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Сигнальные процессоры и их программирование - DSP
ozone
Добрый день!

Задача - считать FFT ~ 2048-4096 точек. DSP типа Schark или С6000 избыточен. Cortex-M4(7) получается как бы впритык.

Наткнулся на семество С2000 Delfino F2833x/F2837x Из плюсов, которые я вижу:
- 2 ядра по 200МГц
- Viterbi Complex Unit (VCU II) accelerators - для fft должно пригодиться
- периферия посерьезней.

Однако смущает то, что STM32 у всех на слуху, больше информации по ним, а это какая то темная лошадка и ориентирована больше всего на управление двигателями. По бенчмаркам также нет ясности будет ли выигрыш в скорости fft.
Также встречал на этом форуме, что С2000 типа мертвое семейство.

Кто то пробовал этот аппарат и есть ли смысл заменять им STM32?
Turnaev Sergey
Использую оба.

Техассик С2000 очень крут для задач обработки сигналов! Нисколько это не мёртвое семейство, есть у них своя ниша.

Помимо VCU у последних Дельфинов есть ещё и TMU, там синусы считаются за 4 такта, у кортекса стыдно сказать сколько они считаются.

Сравните бенчмарки рассчёта FFT, С2000 будет быстрее в разы.

Не в последнюю очередь это обусловлено очень правильным подходом к созданию библиотек у TI.
Практически всё написано на ассемблере под эти процы. Скачайте ControlSuite и поройтесь в папочках библиотек, есть бенчмарки рассчётов FFT и многого другого.

У STM32 все (или почти все) библиотеки написаны на Си, в частности это CMSIS DSP_Lib.

Не так давно сравнивал время рассчёта CRC16, на С2000 получилось быстрее в несколько раз, там использовался VCU-I.

Из недостатков С2000 перед STM32 можно назвать разве что бОльшее энергопотребление.

А время рассчёта FFT надо бы сравнить, самому интересно. sm.gif
ozone
Цитата(Turnaev Sergey @ Aug 27 2015, 12:51) *
Использую оба
...


О) Спасибо за информацию! Присмотрюсь к зверю повнимательнее.
prig
Да, занятный вопрос.
Из того, что быстро удалось найти:

C2000: 1к - 53219 циклов для FPU(из spry288.pdf). Т.е. на 200МГц примерно 0.25мс

M4 cores, using the FPU. A 2048 point FFT (using float) took about 2.5ms with maximal optimization (откуда-то из инета, проц не указан, но скорее всего F4, см. далее).
Или такое для STM32F4: 128-sample real floating point FFT/IFFT takes about 120us with the CPU running at max rated clock speed (т.е. 180МГц). Немного не то, но для оценки годится.

Т.е., разница в производительности на БПФ раз в 5 при близких частотах (около 200МГц).
От F7 я бы тоже чудес ждать не стал, но за счёт кэш-памяти какой-то прирост производительности возможен.

А вот дельфины действительно выглядят бодренько.
Turnaev Sergey
Осторожно! В этом посте полно любви и обожания. excl.gif

Цитата(prig @ Aug 27 2015, 19:43) *
C2000: 1к - 53219 циклов для FPU(из spry288.pdf). Т.е. на 200МГц примерно 0.25мс

Это устаревшие данные. sm.gif

Вот последняя версия библиотеки под TMU0, бенчмарки к FFT прилагаются: Нажмите для просмотра прикрепленного файла

Если частично, то вот:


Как там говорят: "Кортекс, давай до свидания! smile3009.gif "

Да, вот документация на библиотеку VCU там CRC и комплексное FFT: Нажмите для просмотра прикрепленного файла

Ну и уж для полноты картины, у последних С2000 есть ещё CLA-II вещь очень крутая, как ещё одно ядро (в двухядерных как ещё два): Нажмите для просмотра прикрепленного файла Использую по полной, очень резво работает.

А по кортексу F4 данные вот, правда Q15, а не float:
Цитата
1024-FFT (Complex in Q15 Format)
Cortex-M0 : 855 733 cycles
Cortex-M0+ : 664 531 cycles
Cortex-M3 : 204 244 cycles
Cortex-M4 : 89 839 cycles

256-FFT (Complex in Q15 Format)
Cortex-M0 : 175 375
Cortex-M0+ : 136 296 cycles
Cortex-M3 : 41 430 cycles
Cortex-M4 : 18 480 cycles

Взято отсюда: https://my.st.com/public/STe2ecommunities/m...rrentviews=3466

И вот, упомянутая мною CMSIS под STM32F4: http://community.arm.com/groups/processors...n-s-perspective
prig
Цитата(Turnaev Sergey @ Aug 27 2015, 20:26) *
Это устаревшие данные. sm.gif
...
А по кортексу F4 данные вот, правда Q15, а не float:
...


Ну, для CFFT_f32 там разница всего в несколько циклов. Так что не принципиально. Молотилка - зверь. Для своего класса, ессно.

А вот корректных сопоставимых данных по F4 как-то на поверхности не видно.
Целочисленный 16-бит БПФ же уже просто не интересен. Что-то для ценок может дать, но не более.

Оценки оценками, но реальные показатели для f32 на реальном проце хотелось бы увидеть.
Что-то мне самому мои "в 5 раз" кажутся подозрительными.

А интерес к F4 есть, и хотелось бы понять, с чем придётся иметь дело, если стартует один из намечающихся проектов.
Тем более, процессоры хотя и пересекаются в каком-то классе задач, но достаточно отличаются что бы прямо не конкурировать.
Крче, оба интересны.


Цитата(Turnaev Sergey @ Aug 27 2015, 20:26) *
...И вот, упомянутая мною CMSIS под STM32F4
...


А вот это я слёту не понял, есть подозрительные моменты. Целочисленный 32-бита - это немного другое дело, но тоже сгодится.
Надо будет как следует разобраться, когда время появится.
Turnaev Sergey
Техасовским данным обычно можно верить почти свято. Сколько раз я проверял, всё сходилось чётко +-2-4 такта на вызов функции.
Думаю на днях испытаю в реальности время вычисления FFT одного и того же массива на обоих процах.
prig
Цитата(Turnaev Sergey @ Aug 28 2015, 13:01) *
Техасовским данным обычно можно верить почти свято.
...


Тут вопросов в принципе не может быть. ТИ это ТИ.

Результаты тестов буду ждать.
Если будет возможность, попробуйте не только 1к, но и максимальную длину, которую можно впихать.
Вроде бы, заклинивать на больших массивах не должно (таки, не связка кэш + ДДР), но мало ли.

П.С. Ещё раз по-быстрому взглянул на архитектуру. Таки, проблемы впихивания БПФ с большой размерностью / влияния на производительность при разном использовании памяти очень даже возможны. За памятью придётся приглядывать и м.б. настраивать размещение данных и кода вручную.
ozone
Цитата(Turnaev Sergey @ Aug 27 2015, 12:51) *
Использую оба.


А не подскажите, каким jtag-эмулятором для С2000 пользуетесь? Как я понимаю дешевых вариантов здесь уже нет.
Turnaev Sergey
Ну почему же нету, есть. XDS100 например, он на базе FT2232. Вот схема, на шестой странице: Нажмите для просмотра прикрепленного файла Однако скорость для отладки по сравнению с XDS510 отвратная.

Sauris делает отличные эмуляторы, стоят они сопоставимо с J-Link Base, так что ничего не дороже. Code Composer Studio так и вовсе почти бесплатный, в отличии от IAR/Keil. Хотя под ST сижу в Eclipse c GCC совершенно бесплатно.
Turnaev Sergey
Не прошло и пол года, как я добрался до FFT sm.gif

Пока что STM32F415:
Версия библиотеки под GCC.
Cortex M4 CMSIS ARM GCC (120MHz) СFFT float32:
128 точек 137.3us 16476 тактов;
256 точек 284.7us 34161 такт;
512 точек 527.5us 63300 тактов;
1024 точек 1.246ms 149520 тактов;
2048 точек 2.438ms 292560 тактов.

4096 точек сделать не смог, у проца закончилась ОЗУ, хотя на пустом проекте наверное может хватить памяти, но думаю пустых проектов не бывает. sm.gif

При этом насколько я понял фазы не считались, только амплитуды. Функций для фаз я почему-то не нашёл и в примере их нет, у TI куча функций ещё и на фазы. По поводу выравнивания данных я немного не понял, но скорее всего выровненные 10кГц + белый шум, мнимая часть у всех была нулевой.

Для сравнения думаю уже достаточно, у C28xx для самого плохого случая с невыровненными данными и с масштабированием, получается почти 80тыс тактов под массив на 1024 точки. А для выровненных и без масштабирования, как в эксперименте выше, получается 71тыс тактов.

Да, есть ещё вот какой момент, FFT с модулем VCU считается значительно быстрее, однако формат там Q15 (32бит), а не Float.
Под float и FFT немножко заточен модуль TMU, который экономит примерно 15000 тактов на 1024 точках.

К сожалению последних процов от TI с TMU и VCU-II у меня нет, поэтому с ними испытать не смогу. VCU-I принимает максимум 16 бит, имейте это ввиду.
ozone
Цитата(Turnaev Sergey @ Sep 7 2015, 10:53) *
Не прошло и пол года, как я добрался до FFT sm.gif


Большое спасибо за труды, результаты интересны! beer.gif
prig
Цитата(Turnaev Sergey @ Sep 7 2015, 10:53) *
...
К сожалению последних процов от TI с TMU и VCU-II у меня нет...

Ну, с TI всё нсколько проще. А вот результаты по F4 действительно очень интересны. Спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.