Вопросы по теме 'sse'

Преимущества x87 перед SSE
Я знаю, что x87 имеет более высокую внутреннюю точность, и это, вероятно, самая большая разница, которую люди видят между ним и операциями SSE. Но я должен задаться вопросом, есть ли какие-либо другие преимущества использования x87? У меня есть...
7689 просмотров
schedule 28.04.2024

Как преобразовать шестнадцатеричное число с плавающей запятой в число с плавающей запятой в C / C ++ с помощью функции _mm_extract_ps SSE GCC instrinc
Я пишу код SSE для двумерной свертки, но документация по SSE очень скудна. Я вычисляю скалярное произведение с помощью _mm_dp_ps и использую _mm_extract_ps для получения результата скалярного произведения, но _mm_extract_ps возвращает...
2231 просмотров
schedule 17.10.2022

Массив типа sse: ошибка сегментации
сегодня пытался инициализировать массив sse типа __m128d. К сожалению, это не сработало - почему? Массивы sse-типов вообще нельзя создавать (раз уж они регистровые?). Следующий код segfaults при назначении в цикле. __m128d* _buffers = new...
300 просмотров
schedule 29.12.2023

Как заставить gcc использовать все регистры SSE (или AVX)?
Я пытаюсь написать некоторый ресурсоемкий код для цели Windows x64, с SSE или новыми инструкциями AVX, компилируя в GCC 4.5.2 и 4.6.1, MinGW64 (сборка TDM GCC и некоторые пользовательские сборки). Мои параметры компилятора -O3 -mavx ....
6967 просмотров
schedule 05.11.2022

Mult плюс сдвиг влево, операции с использованием инструкций ассемблера MMX
Я ищу выполнение операции shl(mult(var1,var2),1) , где mult умножает var1 и var2 (оба являются 16-битными целыми числами со знаком), а shl арифметически сдвигает влево результат умножения. Результат должен быть насыщенным, т. е. int32 max...
254 просмотров
schedule 31.01.2024

Эффективное умножение вектора больших комплексных чисел на скаляр C++
В настоящее время я пытаюсь наиболее эффективно выполнить умножение на месте массива комплексных чисел (память выровнена так же, как std::complex, но в настоящее время используется наш собственный ADT) на массив скалярных значений, который является...
2413 просмотров

Самый быстрый способ выполнить горизонтальную векторную сумму SSE (или другое сокращение)
Дан вектор из трех (или четырех) чисел с плавающей запятой. Как быстрее всего их суммировать? Всегда ли SSE (movaps, shuffle, add, movd) быстрее, чем x87? Стоят ли инструкции горизонтального добавления в SSE3? Сколько стоит переход на FPU,...
35457 просмотров

SIMD (AVX) сравнить
Как называется встроенная функция gcc для сравнения __m256 и __m256i (набор инструкций AVX)?
6730 просмотров
schedule 14.09.2022

Как проверить компьютер, если он поддерживает SSE2 в Delphi 32?
Способ С++ сделать это здесь (под Windows). тот же ответ , но под Linux с использованием GCC. Выдержка из соответствующего ассемблерного кода, насколько я понимаю: mov eax, 1 cpuid mov features, edx Мне не очень комфортно на...
1098 просмотров
schedule 21.04.2024

SSE: обратный, если не нулевой
Как я могу взять обратное (обратное) число с плавающей запятой с инструкциями SSE, но только для ненулевых значений? Фон ниже: Я хочу нормализовать массив векторов, чтобы каждое измерение имело одинаковое среднее значение. В C это можно...
1797 просмотров
schedule 25.11.2023

Modulo 2 * Pi с использованием SSE / SSE2
Я все еще новичок в использовании SSE и пытаюсь реализовать по модулю 2*Pi для входов с двойной точностью порядка 1e8 (результат которого будет введен в некоторые векторизованные вычисления триггеров). Моя текущая попытка кода основана на идее,...
1480 просмотров
schedule 19.10.2022

Массивы, инициализированные как `float [10] [10]`, уже выровнены по памяти для SIMD / SSE?
Мне нужно оптимизировать умножение матриц с помощью SIMD / Intel SSE. Приведенный пример кода выглядит так: *x = (float*)memalign(16, size * sizeof(float)); Однако я использую C ++ и [found that][1] I вместо malloc (перед выполнением...
1041 просмотров
schedule 18.01.2024

Встроенная функция _mm_extract_epi8(), которая принимает небуквенное целое число в качестве аргумента.
В последнее время я использую встроенный SSE int _mm_extract_epi8 (__m128i src, const int ndx) , который, согласно ссылке, «извлекает целочисленный байт из упакованного целочисленного элемента массива, выбранного по индексу». Это именно то, что я...
1648 просмотров
schedule 24.02.2024

Как суммировать __m256 по горизонтали?
Я хотел бы горизонтально суммировать компоненты вектора __m256 , используя инструкции AVX. В SSE я мог бы использовать _mm_hadd_ps(xmm,xmm); _mm_hadd_ps(xmm,xmm); чтобы получить результат в первом компоненте вектора, но это не...
9533 просмотров
schedule 16.02.2024

xmm регистр sse значение x64 внутри
Пишу проект для школы на ассемблере x64. Я использую компилятор nasm. Я знаю, что регистры xmm могут хранить 4 x 32 бита или 2 x 64 бита. Я блуждал, чтобы узнать, как я могу поместить 4 значения с плавающей запятой (32 бита) в xmm1, например. Моя...
1209 просмотров
schedule 17.11.2022

Можно ли с помощью SIMD оптимизировать подсчет совпадений байтов между двумя строками?
Профилирование предполагает, что эта функция является настоящим узким местом для моего приложения: static inline int countEqualChars(const char* string1, const char* string2, int size) { int r = 0; for (int j = 0; j < size; ++j) {...
1033 просмотров
schedule 09.11.2023

Попытка добавить __m128 с помощью маски и в программировании SSE
Я пытаюсь использовать результат операции сравнения для добавления к переменной SSE. Я только что понял, что при использовании операции _mm_cmplt_ps , если результат верен, он возвращает NAN, потому что 0xffffffff не может быть представлен, что мне...
796 просмотров
schedule 23.01.2024

Как добавить каждый байт 8-байтового длинного целого числа?
Я изучаю, как использовать инструкции Intel MMX и SSE в видеоприложении. У меня есть 8-байтовое слово, и я хотел бы добавить все 8 байтов и получить в результате одно целое число. Прямой метод представляет собой серию из 7 сдвигов и добавлений, но...
993 просмотров
schedule 20.12.2023

SSE: reinterpret_cast‹__m128*› вместо _mm_load_ps
Я нахожусь в процессе кодирования простой функции свертки на С++, начиная с самой простой свертки "скользящего окна" с обычными продуктами (пока без БПФ), вплоть до SEE, AVX и, возможно, OpenCL. Однако я столкнулся с проблемой с SSE. Мой код...
1843 просмотров
schedule 08.10.2022

Векторизация сложения части матричного умножения с использованием встроенных функций?
Я пытаюсь векторизовать матричное умножение, используя блокировку и векторные внутренние функции. Мне кажется, что часть сложения в векторном умножении не может быть векторизована. Не могли бы вы посмотреть, смогу ли я улучшить свой код для...
683 просмотров