0
ответов

Библиотека в стиле SSE Stdlib?

Обычно все, что я встречаю «в сети» в отношении SSE / MMX, получается как математический материал для векторов и матраций . Однако я ищу библиотеки "стандартных функций", оптимизированных для SSE, ...
вопрос задан: 8 December 2014 07:06
0
ответов

Более быстрый оптимизированный способ преобразования между изображениями RGB8 и RGB32

Я пытаюсь найти оптимизированный для сборки метод преобразования изображений RGB8 в RGB32. Источник представляет собой 8-битное серое изображение, назначение должно быть 32-битным серым изображением (BGRA )с 4-м каналом (альфа ), чтобы быть...
вопрос задан: 23 October 2014 11:17
0
ответов

В чем разница между опциями cflgs sse для -msse, -msse2, -mssse3, -msse4 rtc..? и как определить?

Для параметров GCC CFLAGS: -msse, -msse2, -mssse3, -msse4, -msse4.1, -msse4.2. Являются ли они исключительными в своем использовании или могут использоваться вместе? Насколько я понимаю, выбор того, что установить, зависит...
вопрос задан: 24 March 2014 07:36
0
ответов

как работать с 128 битами C переменная и xmm 128 битами asm?

в gcc я хочу сделать 128 битов xor с 2 переменными C, с помощью кода asm: как? asm ("movdqa %1, %% xmm1"; "movdqa %0, %% xmm0"; "pxor %% xmm1, %% xmm0"; "movdqa %% xmm0, %0";: "=x" (любитель)...
вопрос задан: 13 March 2014 23:30
0
ответов

Могут ли длинные целые подпрограммы получить выгоду от SSE?

Я все еще работаю над подпрограммами для произвольных длинных целых чисел на C ++. До сих пор я реализовал сложение / вычитание и умножение для 64-битных процессоров Intel. Все работает нормально, но я подумал, не могу ли я ...
вопрос задан: 24 December 2013 10:40
0
ответов

Оптимизация уплотнения массивов

Допустим, у меня есть массив k = [1 2 0 0 5 4 0] Я могу вычислить маску следующим образом m = k > 0 = [1 1 0 0 1 1 0] Используя только маску m и следующие операции Сдвиг влево/вправо И/Ор Добавить/...
вопрос задан: 5 December 2013 01:47
0
ответов

Поисковая таблица с использованием SIMD

У меня есть функция обработки больших пикселей, которую я сейчас пытаюсь оптимизировать с помощью встроенных функций. Будучи новичком в SSE, я не знаю, как справиться с той частью кода, которая включает в себя поиск...
вопрос задан: 3 December 2013 09:05
0
ответов

Логарифм с SSE или переход на FPU?

Я делаю статистические вычисления. Мне нужно, чтобы они были быстрыми, поэтому я переписал большую часть их, чтобы использовать SSE. Я новичок в этом, поэтому мне было интересно, какой здесь подход правильный: насколько мне известно, ...
вопрос задан: 25 September 2013 13:15
0
ответов

Почему мой вручную настроенный код с поддержкой SSE такой медленный?

Короче говоря: я занимаюсь разработкой приложения для обработки изображений с интенсивными вычислениями на C ++. Необходимо рассчитать множество вариантов деформации изображения на небольших блоках пикселей, выделенных из больших изображений. ...
вопрос задан: 17 September 2013 21:10
0
ответов

Как проверить, поддерживает ли ЦП набор инструкций SSE3?

Допустим ли следующий код для проверки, поддерживает ли ЦП набор инструкций SSE3? Использование функции IsProcessorFeaturePresent () явно не работает в Windows XP (см. Http: //msdn.microsoft.com / ...
вопрос задан: 9 April 2013 08:30
0
ответов

Код SIMD работает медленнее, чем скалярный код

elma и elmc оба беззнаковые long массивы. Таковы res1 и res2. беззнаковый длинный simdstore [2]; __m128i * p, simda, simdb, simdc; p = (__m128i *) simdstore; for (i = 0; i <_polylen; i ++) ...
вопрос задан: 9 March 2013 18:16
0
ответов

Не удалось определить, почему следующий фрагмент кода не был векторизован

Я какое-то время боролся с векторизацией конкретного приложения, и я пробовал все. От автовекторизации до написанных вручную встроенных функций SSE. Но почему-то не могу получить...
вопрос задан: 28 January 2013 23:39
0
ответов

Контейнеры SSE и C ++

Есть ли очевидная причина, по которой следующий код не работает? #include <вектор> #include struct point {__m128i v; точка () {v = _mm_setr_epi32 (0, 0, 0, 0); } } ...
вопрос задан: 17 December 2012 22:12
0
ответов

Как повернуть вектор SSE/AVX

Мне нужно выполнить операцию вращения с как можно меньшим количеством тактов. В первом случае предположим __m128i в качестве источника и типа назначения :источник :|| А0 || А1 || А2 || А3 || пункт назначения :|| А1 || А2 ||...
вопрос задан: 6 December 2012 13:13
0
ответов

Как объявить диапазон памяти как неисследованный с помощью GCC на платформе X86?

Хотя я прочитал по поводу инструкций Movntdqa относительно этого, но по очереди Чистый способ выразить диапазон памяти неисправностей или чтение данных, чтобы не загрязнять кэш. Я хочу сделать это ...
вопрос задан: 9 October 2012 04:54
0
ответов

Как я должен передавать данные SSE своим функциям/операторам?

Я пишу пару классов-оболочек для SSE Intrinsics -, в основном для того, чтобы получить тип -безопасных геометрических операций, а также для добавления пары удобных функций. Все мои функции и операторы встроены....
вопрос задан: 9 August 2012 07:59
0
ответов

SIMD следующий код

Как мне SIMIDize следующий код в C (, используя встроенные SIMD, конечно )? У меня проблемы с пониманием внутренних свойств SIMD, и это очень помогло бы :int sum _naive (int n, int *a ){целая сумма =...
вопрос задан: 9 August 2012 07:59
0
ответов

SSE _мм _маска перемещения _эквивалентный метод epi8 для ARM NEON

Я решил продолжить оптимизацию быстрых поворотов и застрял на _mm _маска перемещения _инструкция epi8 SSE. Как я могу переписать его для ARM Neon с вводом uint8x16 _t?
вопрос задан: 8 August 2012 18:45
0
ответов

вектор __мм128 не оттолкнет _назад()

Этот простой код SSE:#включить <вектор> #include int main (){ std ::vector< __m128> blah; blah.push _назад (__m128 ()); } Сбой на MSVC 10 с segfault на...
вопрос задан: 27 July 2012 00:02
0
ответов

Следует ли передавать или создавать типы данных SSE для каждой операции?

В настоящее время я пробую свои силы в создании собственной векторной математической библиотеки C++, и я заинтересован в ее оптимизации с помощью SSE. Для моих типов данных vec2 и vec3 я не могу хранить тип __m128 напрямую, так как они...
вопрос задан: 21 July 2012 22:38
0
ответов

инициализировать объединенный массив при объявлении

Я пытаюсь инициализировать следующий массив union при объявлении :typedef union {__m128d m; поплавок f[4]; } коврик; мат m[2] = {{{30467,14153,5910,1427,15846,23837,7271,22705}, {30467.14153,5910.1427,...
вопрос задан: 20 July 2012 19:05
0
ответов

странная ошибка во время приведения к __m128i

Я пытаюсь преобразовать беззнаковый короткий массив в __m128i :const unsigned short x[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; const unsigned short y[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,...
вопрос задан: 20 July 2012 01:24
0
ответов

Как преобразовать целое число без знака в плавающую -точку в ассемблере x86 (32 -бит )?

Мне нужно преобразовать 32-битные -и 64-битные -целые числа без знака в значения с плавающей запятой -в регистрах xmm. Существуют инструкции x86 для преобразования целых чисел со знаком в числа с плавающей запятой одинарной и двойной точности -...
вопрос задан: 10 July 2012 04:32
0
ответов

Векторизация расчета скалярного произведения с использованием SSE4

Я пытаюсь улучшить этот код с помощью точечного продукта SSE4, но мне трудно найти решение. Эта функция получает параметры qi и tj, которые содержат массивы с плавающей запятой по 80 ячеек каждый и...
вопрос задан: 4 July 2012 01:23
0
ответов

Неоновый эквивалент характеристикам SSE

Я пытаюсь преобразовать код c в оптимизированный, используя неоновые встроенные функции. Вот коды c, которые работают с двумя оперантами, а не с векторами оперантов. uint16 _t mult _z216 (uint16 _t a,uint16 _t b ){...
вопрос задан: 3 July 2012 09:33
0
ответов

Как выделить 16-байтовые данные, выровненные по памяти

Я пытаюсь реализовать SSE-векторизацию фрагмента кода, для которого мне нужно, чтобы мой одномерный массив был выровнен по 16-байтовой памяти. Тем не менее, я испробовал несколько способов размещения 16-байтовых данных, выровненных по памяти, но...
вопрос задан: 18 June 2012 13:59
0
ответов

Инструкции SSE для добавления всех элементов массива [дубликат]

Я новичок в инструкциях SSE2. Я нашел инструкцию _mm_add_epi8, которая может добавить два элемента массива. Но мне нужна инструкция SSE, которая может добавлять все элементы массива. Я пытался разработать...
вопрос задан: 7 June 2012 11:38
0
ответов

Как эффективно определить 128-битную константу?

Я работаю с набором инструкций SSE2 в MS Visual Studio. Я использую его для некоторых вычислений с 16-битными данными. Предположим, у меня есть 8 значений, загруженных в регистр SSE. Я хочу добавить константу (например...
вопрос задан: 3 June 2012 20:13
0
ответов

Можно ли смешивать устаревшие инструкции в кодировке SSE и инструкции в кодировке VEX в одном и том же кодовом пути?

Наряду с введением AVX Intel представила схему кодирования VEX в архитектуре Intel 64 и IA-32. Эта схема кодирования используется в основном с инструкциями AVX. Мне было интересно, если это...
вопрос задан: 2 June 2012 21:21
0
ответов

Генерируют ли JIT-компиляторы JVM код, использующий векторизованные инструкции с плавающей запятой?

Предположим, что узким местом моей Java-программы на самом деле являются несколько узких циклов для вычисления множества векторных скалярных произведений. Да, я профилировал, да, это узкое место, да, это существенно, да, именно так...
вопрос задан: 28 May 2012 12:48