NEON - это набор команд векторной обработки для процессоров ARM.
1 ответ

Почему неоновые свойства для умножения сложнее, чем для операторов?

Я написал тестовое приложение для сравнения реализации C++ и неон оптимизированной реализации для умножения двух векторов, содержащих комплексные числа. Реализация неона примерно в 3 раза быстрее, чем у cpp. (Код 1) Но если я заменю неон, свойственн…
30 апр '18 в 07:18
2 ответа

Как загрузить значение в неоновый s-регистр?

Я хочу оптимизировать наш ассемблерный алгоритм, выполняя несколько операций и один раз. Это можно сделать с помощью векторов неонового модуля в ассемблере руки. Я пытаюсь добавить один вектор (2x32bit) в другой. Если я правильно понял, d0 состоит и…
23 янв '17 в 20:11
2 ответа

Производительность декодирования ffmpeg на андроиде без поддержки неона

Я скомпилировал код ffmpeg на Android и смог воспроизвести видео без поддержки неона и для armv5te. Декодирование - это хорошо, видео воспроизводится, но проблема в том, что частота кадров действительно очень плохая. Я получаю максимум 5 кадров в се…
04 мар '11 в 21:17
2 ответа

Как решить неверную инструкцию `vadd.i16 q0,q0,q0'при попытке проверить gcc на неоновую инструкцию

Checking gcc supports failed for neon instruction vadd.i16 q0,q0,q0 test.c int main () { __asm__("vadd.i16 q0, q0, q0"); return 0; } arm-linux-androideabi-gcc test.c /tmp/ccfc8m0G.s: Assembler messages: /tmp/ccfc8m0G.s:24: Error: bad instruction `va…
15 фев '12 в 05:32
1 ответ

ARM Neon: VPADAL для вычитания

Я использую VPADAL.U32 инструкция, чтобы значительно увеличить мою скорость кода дополнения. Однако мне нужно что-то вычесть с накоплением и переносом (именно то, что я получил как дополнение). Желаемое за действительное или реально возможное? Из то…
22 ноя '11 в 19:32
1 ответ

Предупреждение: формат "%ld" ожидает аргумент типа "long int", но аргумент имеет тип "__builtin_neon_di"

В связи с этим вопросом я не могу перепроверить результаты. После выполнения я получаю неправильное заявление на печать. Может кто-нибудь сказать мне, printf() утверждения неверны или логика, которую я делаю, неверна. КОД: int64_t arr[2] = {227802,9…
19 май '15 в 14:29
2 ответа

Лучшие флаги компилятора для целевого проекта C с помощью opencv framekwork

Я занимаюсь компиляцией и проектом ios с использованием среды opencv, поэтому мне интересно узнать, какие флаги компилятора лучше всего подходят для моего проекта. Проект обрабатывает много пикселей матрицы, поэтому мне нужно, чтобы со стороны компи…
20 дек '11 в 14:35
1 ответ

Ошибка сборки QtWebengine с кодеками opus и silk

Я пытаюсь собрать Qt5.9.1 с QtWebengine для платформы arm. Вот некоторые архитектурные аргументы, которые я передаю в сборку. QMAKE_CFLAGS_RELEASE += -march=armv7-a -mcpu=cortex-a9 QMAKE_CXXFLAGS_RELEASE += -march=armv7-a -mcpu=cortex-a9 По умолчани…
07 ноя '17 в 05:12
1 ответ

Призрак: SIMD причина?

Короткий вопрос: я прочитал статью об уязвимом призраке. Это говорит о том, что затрагиваются только высокопроизводительные процессоры ARM, а не младшие. Поскольку младшие процессорные процессоры ARM не поддерживают инструкции SIMD (также называемые…
04 янв '18 в 12:13
1 ответ

Как профилировать количество циклов, застопорившихся между двумя инструкциями в ARM Neon?

Например VMUL q0,q1,q2 VMUL q1,q0,q2 @VMUL needs 4 cycles for operation & result will be available by 7th cycle @next instruction will start only by 7th cycle so 5th, 6th cycle will stalled @but next instruction need operate only by 2nd cycle of…
08 июн '17 в 13:33
1 ответ

Существует ли инструкция SIMD для сопоставления индекса памяти в пакетном массиве?

В моем случае RGB к серому: Y = (77*R + 150*G + 29*B) >> 8; Я знаю, что SIMD (NEON, SSE2) может делать следующее: foreach 8 elements: {A0,A1,A2,A3,A4,A5,A6,A7} = 77*{R0,R1,R2,R3,R4,R5,R6,R7} {B0,B1,B2,B3,B4,B5,B6,B7} = 150*{G0,G1,G2,G3,G4,G5,G…
26 фев '18 в 05:53
1 ответ

Как эффективно загружать данные вертикальной линии из памяти в неоновые регистры

Я хочу прочитать вертикальную строку данных из блока изображения, т.е. я хочу получить первые данные каждой строки (длина строки равна ширине блока). Я думаю, что следующий код не очень хорош. Есть ли лучшая реализация? (адрес данных в r5, длина стр…
27 сен '12 в 02:35
3 ответа

ARM NEON: Какие пары инструкций должны ждать обратной записи?

В документации ARM NEON говорится: [...] некоторым парам команд, возможно, придется подождать, пока значение не будет записано обратно в регистровый файл. Я не сталкивался со списком, который определяет пары команд, которые могут использовать перена…
03 дек '11 в 02:02
2 ответа

Компиляция Opus 1.1-rc2 для iOS с XCode 5

Я пытаюсь скомпилировать Opus 1.1-rc2 с оптимизацией ARM NEON для iOS. Вот конфигурация, которую я использую: export CC="xcrun -sdk iphoneos clang -arch armv7" export CCAS="xcrun -sdk iphoneos clang -arch armv7 -no-integrated-as" ./configure --enabl…
29 ноя '13 в 14:22
1 ответ

Оптимизация с использованием встроенных функций NEON

Я очень новичок в свойственности NEON. Я пытаюсь оптимизировать алгоритм ниже uint32_t blue = 0, red = 0 , green = 0, alpha = 0, factor = 0 , shift = 0; // some initial calculation to calculate factor shift and R G B init values all are expected to …
10 фев '16 в 10:51
1 ответ

Какая библиотека FFT самая быстрая для Windows RT?

Какая самая быстрая библиотека FFT доступна для Windows RT или Windows Phone 8? Кому-нибудь удалось запустить FFTW на нем?
21 ноя '12 в 08:05
1 ответ

ARM и NEON могут работать параллельно?

Это со ссылкой на вопрос: реализация кода контрольной суммы для Neon в Intrinsics Открытие подвопросов, указанных в ссылке, в виде отдельных вопросов. Поскольку много вопросов не следует задавать как часть единой темы. В любом случае подходит к вопр…
05 сен '12 в 08:37
1 ответ

Эффективно распакуйте и перетасуйте 8 шорт в руке неон

Представьте, что у меня есть этот входной массив: uint16_t input[] = { 1, 2, 3, 4, 11, 22, 33, 44 }; как я могу получить из этого входа четыре q-вектора со следующим содержанием: uint16x8_t q1 = { 11, 11, 1, 1, 11, 11, 1, 1 }; uint16x8_t q2 = { 22, …
17 апр '18 в 10:24
1 ответ

NEON: Как преобразовать 128-битный ARGB в 32-битный ARGB с насыщением?

У меня есть пиксель ARGB, хранящийся в 128-битном регистре NEON как 32-битный на канал. Мне нужно сохранить это в памяти как 8-битный канал ARGB (сужение и насыщение). Я получил свой результат после vmla.32 q1, q2, d0; интересно, смогу ли я достичь …
08 фев '11 в 07:10
0 ответов

Неон на Android ограничен доступом к памяти?

Я запрограммировал подпрограмму для обработки одиночных массивов с плавающей запятой с использованием Neon на платформе Android, в частности на Samsung S4, и обнаружил, что мои подпрограммы Neon ограничены доступом к данным массива. Для интереса, фр…
15 дек '14 в 09:39