MMX - это набор инструкций с одной инструкцией и несколькими данными (SIMD), разработанный Intel и представленный в 1997 году в линейке микропроцессоров Pentium на базе P5, обозначенных как "Pentium с технологией MMX".
1 ответ

SIMD целочисленный магазин

Я пишу программу с использованием инструкций SSE для умножения и добавления целочисленных значений. Я сделал ту же программу с плавающей точкой, но мне не хватает инструкции для моей целочисленной версии. С помощью float, после того, как я завершил …
03 ноя '13 в 11:39
0 ответов

Как использовать код MMX в C# для обработки изображений

Я пишу приложение, которое делает слишком много 128-битных вычислений с C#. (Обработка изображения - 16 бит R, 16 бит G, 16 бит B, 16 бит A) Можно ли рассчитать это 2 64-битных цвета RGBA за один цикл. Есть ли способ использовать ассемблерный (MMX) …
11 ноя '14 в 11:03
2 ответа

Обработка строки с инструкциями MMX

Я пытаюсь реализовать высокопроизводительную программу на C++, каждый цикл я загружаю 8 байтов в регистр MMX и затем обрабатываю их, но, конечно, я хочу остановиться, когда достигну конца строки. Так что это решение, которое я нашел, каждый цикл заг…
25 ноя '15 в 11:47
1 ответ

Как эффективно конвертировать из двух __m128d в один __m128i в MSVC?

Преобразование, затем сдвиг, затем побитовый или единственный способ преобразования из двух __m128d одному __m128i? Это вполне приемлемо для Xcode в сборке x64 m128d v2dHi = .... m128d v2dLo = .... __m128i v4i = _mm_set_epi64(_mm_cvtpd_pi32(v2dHi), …
15 сен '16 в 04:24
1 ответ

Что я сделал не так Преобразование моего MMX Intrinsics в x64 (SSE)?

Я понимаю, что преобразование MMX 32-битных встроенных функций mmx больше не позволяет __m64. Поэтому у меня возникли большие проблемы при обновлении этого кода до SSE. Мне сказали в другом сообщении переполнения стека, чтобы опубликовать мой код. В…
09 сен '15 в 12:02
3 ответа

Почему я не могу удалить _mm_empty()?

У меня есть функция C++ с некоторыми инструкциями SSE2. Проблема в том, что я получаю следующую ошибку компоновщика при компиляции этого кода с помощью Microsoft Visual C++: неразрешенный внешний символ _m_empty, указанный в функции "void * __cdecl …
16 дек '15 в 09:25
1 ответ

Как использовать MMX параллельно с операциями SSE

В Википедии написано: Добавление поддержки целочисленных значений в SSE2 сделало MMX в значительной степени избыточным, хотя в некоторых ситуациях можно добиться дальнейшего повышения производительности, если использовать MMX параллельно с операциям…
17 окт '12 в 16:10
1 ответ

В чем разница между _m_empty и _mm_empty?

Пока я искал функции MMX, я заметил, что две из них, _m_empty а также _mm_empty, имеют точно такое же определение. Так почему они оба существуют? Один из них старше другого? Есть ли разница, которая не упомянута в руководстве?
05 сен '15 в 13:33
1 ответ

(a*b)/256 и MMX

Мне интересно, возможно ли выполнить следующий расчет с четырьмя значениями параллельно в MMX-регистре: (a*b)/256 где a - слово со знаком, а b - значение без знака (коэффициент смешивания) в диапазоне 0-256. Я думаю, что моя проблема в том, что я не…
22 июн '12 в 13:44
1 ответ

-g флаг изменяет время выполнения и компиляцию программы

Я пишу программу, которая пытается ускорить фильтрацию Top K, используя инструкции SSE и AVX SIMD. Я компилирую свою программу, используя icc с флагами -o3, -msse3 и -lrt, и время выполнения составляет ~30 мс. Однако, когда я ставлю флаг -g в конце,…
22 май '14 в 13:43
3 ответа

Оператор if/else в встроенных функциях SSE

Я пытаюсь оптимизировать небольшой фрагмент кода с помощью встроенных функций SSE (я начинающий в этой теме), но я немного застрял в использовании условных выражений. Мой оригинальный код: unsigned long c; unsigned long constant = 0x12345678; unsign…
09 июн '11 в 09:07
0 ответов

Проблема с добавляет два массива друг к другу и сохраняет результат в 3, не работает

У меня проблема с моей программой на ассемблере, использующей mmx. Эта программа объявляет 3 массива, а затем добавляет два друг к другу и сохраняет результат в 3. Что пошло не так? %define ITERATIO 16 org 100h start: movq mm0, [tab1] paddb mm0, [ta…
08 янв '19 в 20:31
2 ответа

Вычислите f(x)=2*(x^2)+5 с насыщением, используя набор инструкций MMX для 128 чисел размером 2 байта, загруженных из двоичного файла

У меня есть эта проблема, где мне нужно вычислить функцию f(x)=2*(x^2)+5 с набором инструкций MMX. У меня две проблемы. Это мой код сейчас: section .data print_fmt db '%d', 10, 0 my_loaded_data times 128 dw 0 fives times 4 dw 5 twos times 4 dw 2 my_…
17 янв '19 в 16:03
1 ответ

bad_alloc с unordered_map initializer_list и инструкцией MMX, возможно ли повреждение кучи?

Я получаю bad_alloc выкинут из кода ниже скомпилированного с gcc (пробовал 4.9.3, 5.40 и 6.2). GDB говорит мне, что это происходит в последней строке с initalizer_list для unordered_map. Если я закомментирую инструкцию mmx _m_maskmovq нет ошибки Точ…
08 фев '19 в 21:46
1 ответ

Нужно собрать для цели i586 с GCC 5.3 i686 Host Toolchain

Мне нужно собрать для цели i586 (без инструкций MMX), используя GCC 5.3 в хост-среде i686 (32-битный контейнер Ubuntu Docker). Набор инструментов для хоста - i686. Есть ли способ сделать это без сборки кросс-компилятора i586?
01 май '16 в 00:03
1 ответ

Встроенный ASM: использование MMX возвращает NaN секунд на таймере

проблема Я пытаюсь выяснить, mmx или же xmm регистры быстрее для копирования элементов массива в другой массив (я знаю о memcpy() но мне нужна эта функция для очень конкретной цели). Код моего соуса ниже. Соответствующая функция copyarray(), Я могу …
10 июн '14 в 17:23
1 ответ

Преобразование проекта C++ в x64 со ссылками __m64

Поэтому, когда я начал преобразование и установил цель на "x64", я получил 7 неразрешенных внешних объектов. Два примера: error LNK2001: unresolved external symbol _m_empty ...CONVOLUTION_2D_USHORT.obj CONVOLUTION_2D_USHORT error LNK2001: unresolved…
07 сен '15 в 21:12
9 ответов

C/C++ использование специальных функций процессора

Мне любопытно, используют ли новые компиляторы некоторые дополнительные функции, встроенные в новые процессоры, такие как MMX SSE,3DNow! так что? Я имею в виду, что в оригинальном 8086 даже не было FPU, так что компилятор, который старый не может да…
17 май '10 в 21:39
0 ответов

"ошибка C2400: ошибка синтаксиса встроенного ассемблера в" коде операции "" или компиляция ffmpeg с включенным флагом mmx

Я пытаюсь скомпилировать (visual studio 2005) ffmpeg с включенным флагом mmx (HAVE_MMX), но получаю следующую ошибку: "ошибка C2400: ошибка синтаксиса встроенного ассемблера в 'opcode'", и он жалуется на xpor_r2r Идеи? [Обновление] Шут указал, что э…
02 окт '13 в 15:33
2 ответа

Преимущество одновременного использования нескольких наборов инструкций SIMD

Я пишу очень параллельное приложение, которое является многопоточным. У меня уже написан класс ускоренного потока SSE. Если бы я написал класс ускоренного потока MMX, то запустил бы оба одновременно (один поток SSE и один поток MMX на ядро), заметно…
15 май '10 в 13:49