Озон 0 26 августа, 2015 Опубликовано 26 августа, 2015 (изменено) · Жалоба Добрый день! Задача - считать 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? Изменено 26 августа, 2015 пользователем ozone Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TSS 0 27 августа, 2015 Опубликовано 27 августа, 2015 · Жалоба Использую оба. Техассик С2000 очень крут для задач обработки сигналов! Нисколько это не мёртвое семейство, есть у них своя ниша. Помимо VCU у последних Дельфинов есть ещё и TMU, там синусы считаются за 4 такта, у кортекса стыдно сказать сколько они считаются. Сравните бенчмарки рассчёта FFT, С2000 будет быстрее в разы. Не в последнюю очередь это обусловлено очень правильным подходом к созданию библиотек у TI. Практически всё написано на ассемблере под эти процы. Скачайте ControlSuite и поройтесь в папочках библиотек, есть бенчмарки рассчётов FFT и многого другого. У STM32 все (или почти все) библиотеки написаны на Си, в частности это CMSIS DSP_Lib. Не так давно сравнивал время рассчёта CRC16, на С2000 получилось быстрее в несколько раз, там использовался VCU-I. Из недостатков С2000 перед STM32 можно назвать разве что бОльшее энергопотребление. А время рассчёта FFT надо бы сравнить, самому интересно. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Озон 0 27 августа, 2015 Опубликовано 27 августа, 2015 · Жалоба Использую оба ... О) Спасибо за информацию! Присмотрюсь к зверю повнимательнее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prig 0 27 августа, 2015 Опубликовано 27 августа, 2015 · Жалоба Да, занятный вопрос. Из того, что быстро удалось найти: 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 я бы тоже чудес ждать не стал, но за счёт кэш-памяти какой-то прирост производительности возможен. А вот дельфины действительно выглядят бодренько. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TSS 0 27 августа, 2015 Опубликовано 27 августа, 2015 · Жалоба Осторожно! В этом посте полно любви и обожания. :excl: C2000: 1к - 53219 циклов для FPU(из spry288.pdf). Т.е. на 200МГц примерно 0.25мс Это устаревшие данные. :) Вот последняя версия библиотеки под TMU0, бенчмарки к FFT прилагаются: FPU_SW_LIB_UG.pdf Если частично, то вот: Как там говорят: "Кортекс, давай до свидания! :smile3009: " Да, вот документация на библиотеку VCU там CRC и комплексное FFT: C28X_VCU_LIB_UG.pdf Ну и уж для полноты картины, у последних С2000 есть ещё CLA-II вещь очень крутая, как ещё одно ядро (в двухядерных как ещё два): CLA_MATH_LIB_UG.pdf Использую по полной, очень резво работает. А по кортексу 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 0 28 августа, 2015 Опубликовано 28 августа, 2015 · Жалоба Это устаревшие данные. :) ... А по кортексу F4 данные вот, правда Q15, а не float: ... Ну, для CFFT_f32 там разница всего в несколько циклов. Так что не принципиально. Молотилка - зверь. Для своего класса, ессно. А вот корректных сопоставимых данных по F4 как-то на поверхности не видно. Целочисленный 16-бит БПФ же уже просто не интересен. Что-то для ценок может дать, но не более. Оценки оценками, но реальные показатели для f32 на реальном проце хотелось бы увидеть. Что-то мне самому мои "в 5 раз" кажутся подозрительными. А интерес к F4 есть, и хотелось бы понять, с чем придётся иметь дело, если стартует один из намечающихся проектов. Тем более, процессоры хотя и пересекаются в каком-то классе задач, но достаточно отличаются что бы прямо не конкурировать. Крче, оба интересны. ...И вот, упомянутая мною CMSIS под STM32F4 ... А вот это я слёту не понял, есть подозрительные моменты. Целочисленный 32-бита - это немного другое дело, но тоже сгодится. Надо будет как следует разобраться, когда время появится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TSS 0 28 августа, 2015 Опубликовано 28 августа, 2015 · Жалоба Техасовским данным обычно можно верить почти свято. Сколько раз я проверял, всё сходилось чётко +-2-4 такта на вызов функции. Думаю на днях испытаю в реальности время вычисления FFT одного и того же массива на обоих процах. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prig 0 28 августа, 2015 Опубликовано 28 августа, 2015 · Жалоба Техасовским данным обычно можно верить почти свято. ... Тут вопросов в принципе не может быть. ТИ это ТИ. Результаты тестов буду ждать. Если будет возможность, попробуйте не только 1к, но и максимальную длину, которую можно впихать. Вроде бы, заклинивать на больших массивах не должно (таки, не связка кэш + ДДР), но мало ли. П.С. Ещё раз по-быстрому взглянул на архитектуру. Таки, проблемы впихивания БПФ с большой размерностью / влияния на производительность при разном использовании памяти очень даже возможны. За памятью придётся приглядывать и м.б. настраивать размещение данных и кода вручную. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Озон 0 6 сентября, 2015 Опубликовано 6 сентября, 2015 (изменено) · Жалоба Использую оба. А не подскажите, каким jtag-эмулятором для С2000 пользуетесь? Как я понимаю дешевых вариантов здесь уже нет. Изменено 6 сентября, 2015 пользователем ozone Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TSS 0 7 сентября, 2015 Опубликовано 7 сентября, 2015 · Жалоба Ну почему же нету, есть. XDS100 например, он на базе FT2232. Вот схема, на шестой странице: HVMotorCtrl_PFC_SCH_R1.1_.pdf Однако скорость для отладки по сравнению с XDS510 отвратная. Sauris делает отличные эмуляторы, стоят они сопоставимо с J-Link Base, так что ничего не дороже. Code Composer Studio так и вовсе почти бесплатный, в отличии от IAR/Keil. Хотя под ST сижу в Eclipse c GCC совершенно бесплатно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TSS 0 7 сентября, 2015 Опубликовано 7 сентября, 2015 · Жалоба Не прошло и пол года, как я добрался до FFT :) Пока что 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 точек сделать не смог, у проца закончилась ОЗУ, хотя на пустом проекте наверное может хватить памяти, но думаю пустых проектов не бывает. :) При этом насколько я понял фазы не считались, только амплитуды. Функций для фаз я почему-то не нашёл и в примере их нет, у TI куча функций ещё и на фазы. По поводу выравнивания данных я немного не понял, но скорее всего выровненные 10кГц + белый шум, мнимая часть у всех была нулевой. Для сравнения думаю уже достаточно, у C28xx для самого плохого случая с невыровненными данными и с масштабированием, получается почти 80тыс тактов под массив на 1024 точки. А для выровненных и без масштабирования, как в эксперименте выше, получается 71тыс тактов. Да, есть ещё вот какой момент, FFT с модулем VCU считается значительно быстрее, однако формат там Q15 (32бит), а не Float. Под float и FFT немножко заточен модуль TMU, который экономит примерно 15000 тактов на 1024 точках. К сожалению последних процов от TI с TMU и VCU-II у меня нет, поэтому с ними испытать не смогу. VCU-I принимает максимум 16 бит, имейте это ввиду. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Озон 0 7 сентября, 2015 Опубликовано 7 сентября, 2015 · Жалоба Не прошло и пол года, как я добрался до FFT :) Большое спасибо за труды, результаты интересны! :beer: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prig 0 14 сентября, 2015 Опубликовано 14 сентября, 2015 · Жалоба ... К сожалению последних процов от TI с TMU и VCU-II у меня нет... Ну, с TI всё нсколько проще. А вот результаты по F4 действительно очень интересны. Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться