Это - вопрос несколько низкого уровня. В x86 блоке существует две инструкции SSE: MOVDQA xmmi, m128 и MOVNTDQA xmmi, m128 Руководство Разработчика программного обеспечения IA-32 говорит что NT в...
Где я могу найти информацию об общих приемах SIMD? Я имею систему команд и знаю, как написать нехитрый код SIMD, но я знаю, SIMD теперь намного более мощен. Это может содержать комплекс...
Там какой-либо более быстрый метод должен сохранить два x86 регистра на 32 бита в 128 битах xmm регистр? movd xmm0, edx movd xmm1, eax pshufd xmm0, xmm0, por xmm0 за 1$, xmm1 Поэтому, если EAX является 0x12345678 и...
Быстрая Сводка: у Меня есть массив 24-разрядных значений. Какое-либо предложение о том, как быстро развернуть отдельные 24-разрядные элементы массива в 32-разрядные элементы?Подробнее: Я обрабатываю входящие видеокадры в...
Я интересуюсь освоением связанных с упреждающей выборкой функций, таких как _mm_prefetch (...) поэтому, когда я выполняю операции, что цикл по массивам, пропускная способность памяти полностью используется. Что является лучшим...
Я пытаюсь сделать программу скомпилированной с GCC и использую QT и SSE intrinsics. Кажется, что, когда одна из моих функций вызвана QT, выравнивание стека не сохраняется. Вот короткий пример к...
Обычно я работаю с 3D использованием векторов после типов: определение типа vec3_t плавание [3]; инициализация векторов с помощью чего-то как: vec3_t x_basis = {1.0, 0.0, 0.0}; vec3_t y_basis = {0.0, 1.0, 0.0}; vec3_t...
Я пытаюсь найти информацию о glibc и до какой степени это использует функциональность SSE. Если это оптимизировано, я могу использовать его out-of-the-box? Скажите, что я использую один из больших дистрибутивов Linux, я принимаю это...
Я хочу вычислить среднее значение изображения (3 канала интереса + 1 альфа-канал, который мы здесь игнорируем) для каждого канала с использованием встроенных функций SSE2. Я пробовал это: __m128 средний = _mm_setzero_ps (); # ...
Я нахожу трудности в создании кода для этой, казалось бы, легкой проблемы. Учитывая упакованное 8-битное целое число, замените один байт другим, если он присутствует. Например, я хочу заменить 0x06 ...
Я реализовал алгоритм RNG Fast Mersenne Twister (SFMT) SSE в Rust, но версия SSE работает медленнее, чем скалярная версия. Две версии функции следующие: # ...
(Я - новичок к SSE/asm, извинения, если это очевидно или избыточно) там лучший способ транспонировать 8 регистров SSE, содержащих 16-разрядные значения, чем выполнение 24 unpck [люфтганза] PS и 8/16 + перестановки и...
Кто-нибудь знает внутреннюю библиотеку C ++ x86 SIMD с открытым исходным кодом? Intel предоставляет именно то, что мне нужно, в их интегрированной библиотеке примитивов производительности, но я не могу использовать это из-за авторских прав ...
Я пытаюсь оптимизировать некоторую арифметику при помощи MMX и систем команд SSE со встроенным ассемблерным кодом. Однако я не мог найти хорошие ссылки для синхронизаций и использований их улучшенными...
Выполняет сложное умножение и разделение, выгодное через инструкции SSE? Я знаю, что дополнение и вычитание работают лучше при использовании SSE. Может кто-то говорить мне, как я могу использовать SSE для...
Я пишу код SSE к 2D свертке, но документация SSE очень редка. Я вычисляю скалярное произведение с _mm_dp_ps и использую _mm_extract_ps для получения результата скалярного произведения, но _mm_extract_ps...
Я работаю над преобразованием небольшого количества кода к SSE, и в то время как у меня есть корректный вывод, это оказывается медленнее, чем стандартный код C++. Бит кода, для которого я должен сделать это: пустите в ход вола = p2x - (...
Я нахожусь в следующей ситуации: Я - написание кода для ядра, которое не позволяет инструкции SSE, я должен сделать арифметику с плавающей точкой, которую я компилирую для x86_64 платформы, Вот пример кода...
Я записал простую программу для реализации SSE intrinsics для вычислений внутреннего продукта двух больших (100000 или больше элементов) векторы. Программа сравнивает время выполнения для обоих, внутреннего продукта...
Мне нужно реализовать алгоритм суммирования префиксов, и мне нужно, чтобы он работал как можно быстрее.
Пример: [3, 1, 7, 0, 4, 1, 6, 3] должно дать: [3, 4, 11, 11, 15, 16, 22, 25] Есть ли способ сделать это...
Я пытаюсь перемножить два вектора, где каждый элемент одного вектора умножается на элемент в тот же индекс в другом векторе. Затем я хочу просуммировать все элементы полученного ...
Для хобби-проекта, над которым я работаю, мне нужно эмулировать определенные 64 -битные целочисленные операции на процессоре x86, и это должно быть быстро. В настоящее время я делаю это с помощью инструкций MMX, но это действительно проблема...
Я некоторое время боролся с производительностью сетевого кодирования в разрабатываемом мной приложении (см. Оптимизация SSE-кода, Повышение производительности сетевого кодирования - кодирование и OpenCL ...
Я впервые работаю с SSE intrinsics. Я пытаюсь преобразовать простой фрагмент кода в более быструю версию, используя intel SSE intrinsic (до SSE4.2). Кажется, я сталкиваюсь с рядом ...
MS Visual C++ поддерживает 2 варианта инструкции popcnt на ЦП с SSE4.2: __popcnt()
_mm_popcnt_u32() Единственное отличие, которое я обнаружил, заключалось в том, что документация для __popcnt() помечена как «Microsoft...
В чем разница между следующими двумя строками? __m128 x = _mm_load_ps ((float *) ptr);
__m128 y = _mm_load_pd ((double *) ptr); Другими словами, почему так много разных _mm_load_xyz ...
Я хочу немного больше понять возможности SSE2 и хотел бы знать, можно ли создать целое число шириной 128 бит, которое поддерживает сложение, вычитание, XOR и умножение?
Я смотрел учебники в DirectX SDK. Учебник 5 работает нормально, но после того, как я скопировал и разделил код на свои собственные классы, я получил странную ошибку при запуске моего приложения. Линия...
x86 не имеет инструкции SSE для преобразования беззнакового int32 в плавающую точку. Какая последовательность инструкций была бы наиболее эффективной для этого? РЕДАКТИРОВАТЬ:
Чтобы уточнить, я хочу сделать ...
Безопасно/возможно/рекомендуется ли приводить числа с плавающей запятой непосредственно к __m128, если они выровнены по 16 байтам? Я заметил, что использование _mm _load _ps и _mm _store _ps для «обертывания» необработанного массива добавляет значительные