Обычно все, что я встречаю «в сети» в отношении SSE / MMX, получается как математический материал для векторов и матраций . Однако я ищу библиотеки "стандартных функций", оптимизированных для SSE, ...
Я пытаюсь найти оптимизированный для сборки метод преобразования изображений RGB8 в RGB32. Источник представляет собой 8-битное серое изображение, назначение должно быть 32-битным серым изображением (BGRA )с 4-м каналом (альфа ), чтобы быть...
Для параметров GCC CFLAGS: -msse, -msse2, -mssse3, -msse4, -msse4.1, -msse4.2. Являются ли они исключительными в своем использовании или могут использоваться вместе? Насколько я понимаю, выбор того, что установить, зависит...
Я все еще работаю над подпрограммами для произвольных длинных целых чисел на C ++. До сих пор я реализовал сложение / вычитание и умножение для 64-битных процессоров Intel. Все работает нормально, но я подумал, не могу ли я ...
Допустим, у меня есть массив
k = [1 2 0 0 5 4 0] Я могу вычислить маску следующим образом
m = k > 0 = [1 1 0 0 1 1 0] Используя только маску m и следующие операции Сдвиг влево/вправо
И/Ор
Добавить/...
У меня есть функция обработки больших пикселей, которую я сейчас пытаюсь оптимизировать с помощью встроенных функций. Будучи новичком в SSE, я не знаю, как справиться с той частью кода, которая включает в себя поиск...
Я делаю статистические вычисления. Мне нужно, чтобы они были быстрыми, поэтому я переписал большую часть их, чтобы использовать SSE. Я новичок в этом, поэтому мне было интересно, какой здесь подход правильный: насколько мне известно, ...
Короче говоря: я занимаюсь разработкой приложения для обработки изображений с интенсивными вычислениями на C ++. Необходимо рассчитать множество вариантов деформации изображения на небольших блоках пикселей, выделенных из больших изображений. ...
Допустим ли следующий код для проверки, поддерживает ли ЦП набор инструкций SSE3? Использование функции IsProcessorFeaturePresent () явно не работает в Windows XP (см. Http: //msdn.microsoft.com / ...
elma и elmc оба беззнаковые long массивы. Таковы res1 и res2. беззнаковый длинный simdstore [2]; __m128i * p, simda, simdb, simdc; p = (__m128i *) simdstore; for (i = 0; i <_polylen; i ++) ...
Я какое-то время боролся с векторизацией конкретного приложения, и я пробовал все. От автовекторизации до написанных вручную встроенных функций SSE. Но почему-то не могу получить...
Есть ли очевидная причина, по которой следующий код не работает? #include <вектор>
#include struct point {__m128i v; точка () {v = _mm_setr_epi32 (0, 0, 0, 0); }
} ...
Мне нужно выполнить операцию вращения с как можно меньшим количеством тактов. В первом случае предположим __m128i в качестве источника и типа назначения :источник :|| А0 || А1 || А2 || А3 || пункт назначения :|| А1 || А2 ||...
Хотя я прочитал по поводу инструкций Movntdqa относительно этого, но по очереди Чистый способ выразить диапазон памяти неисправностей или чтение данных, чтобы не загрязнять кэш. Я хочу сделать это ...
Я пишу пару классов-оболочек для SSE Intrinsics -, в основном для того, чтобы получить тип -безопасных геометрических операций, а также для добавления пары удобных функций. Все мои функции и операторы встроены....
Как мне SIMIDize следующий код в C (, используя встроенные SIMD, конечно )? У меня проблемы с пониманием внутренних свойств SIMD, и это очень помогло бы :int sum _naive (int n, int *a ){целая сумма =...
Я решил продолжить оптимизацию быстрых поворотов и застрял на _mm _маска перемещения _инструкция epi8 SSE. Как я могу переписать его для ARM Neon с вводом uint8x16 _t?
Этот простой код SSE:#включить <вектор> #include int main (){ std ::vector< __m128> blah; blah.push _назад (__m128 ()); } Сбой на MSVC 10 с segfault на...
В настоящее время я пробую свои силы в создании собственной векторной математической библиотеки C++, и я заинтересован в ее оптимизации с помощью SSE. Для моих типов данных vec2 и vec3 я не могу хранить тип __m128 напрямую, так как они...
Я пытаюсь инициализировать следующий массив union при объявлении :typedef union {__m128d m; поплавок f[4]; } коврик; мат m[2] = {{{30467,14153,5910,1427,15846,23837,7271,22705}, {30467.14153,5910.1427,...
Мне нужно преобразовать 32-битные -и 64-битные -целые числа без знака в значения с плавающей запятой -в регистрах xmm. Существуют инструкции x86 для преобразования целых чисел со знаком в числа с плавающей запятой одинарной и двойной точности -...
Я пытаюсь улучшить этот код с помощью точечного продукта SSE4, но мне трудно найти решение. Эта функция получает параметры qi и tj, которые содержат массивы с плавающей запятой по 80 ячеек каждый и...
Я пытаюсь преобразовать код c в оптимизированный, используя неоновые встроенные функции. Вот коды c, которые работают с двумя оперантами, а не с векторами оперантов. uint16 _t mult _z216 (uint16 _t a,uint16 _t b ){...
Я пытаюсь реализовать SSE-векторизацию фрагмента кода, для которого мне нужно, чтобы мой одномерный массив был выровнен по 16-байтовой памяти. Тем не менее, я испробовал несколько способов размещения 16-байтовых данных, выровненных по памяти, но...
Я новичок в инструкциях SSE2. Я нашел инструкцию _mm_add_epi8, которая может добавить два элемента массива. Но мне нужна инструкция SSE, которая может добавлять все элементы массива. Я пытался разработать...
Я работаю с набором инструкций SSE2 в MS Visual Studio. Я использую его для некоторых вычислений с 16-битными данными. Предположим, у меня есть 8 значений, загруженных в регистр SSE. Я хочу добавить константу (например...
Наряду с введением AVX Intel представила схему кодирования VEX в архитектуре Intel 64 и IA-32. Эта схема кодирования используется в основном с инструкциями AVX. Мне было интересно, если это...
Предположим, что узким местом моей Java-программы на самом деле являются несколько узких циклов для вычисления множества векторных скалярных произведений. Да, я профилировал, да, это узкое место, да, это существенно, да, именно так...