DASM 0 15 декабря, 2019 Опубликовано 15 декабря, 2019 · Жалоба arm-linux-gnueabihf-gcc.exe (Debian 6.3.0-18) 6.3.0 20170516 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 15 декабря, 2019 Опубликовано 15 декабря, 2019 · Жалоба 41 minutes ago, GenaSPB said: Есть одна непонятка - параметр Address Mapping Configuration - какой он для моего случая NT5CC128M16IP-DI - bank-row-column или row-bank-column ? Любой, надо полагать: это же просто порядок маппинга. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 15 декабря, 2019 Опубликовано 15 декабря, 2019 · Жалоба Да, нашел аппноут от ST где это объяснили. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 15 декабря, 2019 Опубликовано 15 декабря, 2019 · Жалоба 15 minutes ago, GenaSPB said: Да, нашел аппноут от ST где это объяснили. А где вы это откопали? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 15 декабря, 2019 Опубликовано 15 декабря, 2019 · Жалоба Это скриншот с исходников моего проекта. Гитхабовский адрес в начале темы. Калибровки делал сам на живых процессорах. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 15 декабря, 2019 Опубликовано 15 декабря, 2019 · Жалоба 2 minutes ago, GenaSPB said: Это скриншот с исходников моего проекта. Гитхабовский адрес в начале темы. Калибровки делал сам на живых процессорах. а, ясно. Ну вернемся еще к этому. Увы и ах, не дают А серии никакого прорыва, у них MMU основная фишка, оную мы и не используем. Ну разве что А15 ые с out-of-order повыше IPC имеют. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 15 декабря, 2019 Опубликовано 15 декабря, 2019 · Жалоба 3 минуты назад, DASM сказал: Увы и ах, не дают А серии никакого прорыва, А что за прорыв вы от них ждете, интересно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 15 декабря, 2019 Опубликовано 15 декабря, 2019 · Жалоба 9 minutes ago, mantech said: А что за прорыв вы от них ждете, интересно? я - никакого. А вот Геннадий углядел 5 кратный рост над M7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 15 декабря, 2019 Опубликовано 15 декабря, 2019 · Жалоба 3 минуты назад, DASM сказал: А вот Геннадий углядел 5 кратный рост над M7 А, это все про этот случай... Понятно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 15 декабря, 2019 Опубликовано 15 декабря, 2019 · Жалоба 1 hour ago, GenaSPB said: прогоните как будет время. У меня в свертках подобное занимает 90 % процессорного времени, fft только 5 %, так что акт Pi считать неакутально )) #define FFTZS 8192 typedef struct { float r; float i; } cplxf; cplxf src[FFTZS]; cplxf dst[FFTZS]; cplxf refv[FFTZS]; void cplxmla(cplxf *s, cplxf *d, cplxf *ref, int len) { while (len--) { d->r += s->r * ref->r - s->i * ref->i; d->i += s->i * ref->r + s->r * ref->i; ++s; ++d; ++ref; } } int main () { for (;;) { cplxmla(src, dst, refv, FFTZS); HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_6); } } На H7 - 1.16 кГц, 0.45 мс на перемножение На H серии меандр 1.16 кГц, 0.45 миллисек на перемножении таких векторов. На А8 кортексе 0.36 мсек, несмотря на включенный NEON и вдвое более высокую частоту. (кстати тоже надо покопаться, что так медленно то) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 15 декабря, 2019 Опубликовано 15 декабря, 2019 · Жалоба Что надо пометить volatile? Это оптимизируется насовсем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 15 декабря, 2019 Опубликовано 15 декабря, 2019 · Жалоба 24 minutes ago, GenaSPB said: Что надо пометить volatile? Это оптимизируется насовсем. у меня не выкинул на -o3 ну для успокоения объявите volatile cplxf dst[FFTZS]; ... void cplxmla(cplxf *s, volatile cplxf *d, cplxf *ref, int len) { А чтобы совсем сон испортить - С66 из АМ5729 сделает это в 8 раз быстрее, а там их два )) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 15 декабря, 2019 Опубликовано 15 декабря, 2019 (изменено) · Жалоба Полтора килоегрца на 157-м (1.49). Немного попинаю. arm-none-eabi-gcc -std=gnu11 -Wstrict-prototypes -c -march=armv7-a -mfloat-abi=hard -mfpu=vfpv4-d16 -ftree-vectorize -fno-math-errno -funroll-loops -fgraphite-identity -ffunction-sections -fdata-sections -ffat-lto-objects -Ofast -flto -gdwarf-2 -fomit-frame-pointer -Wall -DNDEBUG=1 -DCPUSTYLE_STM32MP1=1 -DCPUSTYLE_STM32MP157A=1 -DSTM32MP157Axx=1 -MD -MP -MF ./obj/usb/usbd_descriptors.o.d -I../../../CMSIS_5/CMSIS/Core_A/Include -I../../../CMSIS_5/CMSIS/DSP/Include -I../.. -I../../inc -I../../rza1x_inc/ ../../usb/usbd_descriptors.c -o obj/usb/usbd_descriptors.o 1.41 с добавлением вот такой примочки: void cplxmlasave(cplxf *d, int len) { while (len--) { volatile float t; t = d->r; t = d->i; } } для предотвращения не тех оптимизаций. А для neon вообще-то есть спец инлайны... Изменено 15 декабря, 2019 пользователем GenaSPB Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 15 декабря, 2019 Опубликовано 15 декабря, 2019 · Жалоба 16 minutes ago, GenaSPB said: Полтора килоегрца на 157-м (1.49). Немного попинаю. arm-none-eabi-gcc -std=gnu11 -Wstrict-prototypes -c -march=armv7-a -mfloat-abi=hard -mfpu=vfpv4-d16 -ftree-vectorize -fno-math-errno -funroll-loops -fgraphite-identity -ffunction-sections -fdata-sections -ffat-lto-objects -Ofast -flto -gdwarf-2 -fomit-frame-pointer -Wall -DNDEBUG=1 -DCPUSTYLE_STM32MP1=1 -DCPUSTYLE_STM32MP157A=1 -DSTM32MP157Axx=1 -MD -MP -MF ./obj/usb/usbd_descriptors.o.d -I../../../CMSIS_5/CMSIS/Core_A/Include -I../../../CMSIS_5/CMSIS/DSP/Include -I../.. -I../../inc -I../../rza1x_inc/ ../../usb/usbd_descriptors.c -o obj/usb/usbd_descriptors.o 1.41 с добавлением вот такой примочки: void cplxmlasave(cplxf *d, int len) { while (len--) { volatile float t; t = d->r; t = d->i; } } для предотвращения не тех оптимизаций. А для neon вообще-то есть спец инлайны... Так в Н7 нет Неона. Да и gcc для А8 делает хорошо и без intrinsicов. Ну так что, все одинаково вышло, Н7 на 480 МГц и ваш (на 650?). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 15 декабря, 2019 Опубликовано 15 декабря, 2019 (изменено) · Жалоба Включил neon - имеем 2 кГц (с явным сохранением массива d) без intrinsicов. Да, разницы в разы нет. Выкинул свою функцию "использования" - оригинальный исходник 2.33 кГц Добавление опции -mvectorize-with-neon-quad не изменило результата. Изменено 15 декабря, 2019 пользователем GenaSPB Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться