Я прочитал из книги «Внутренние компоненты операционной системы и принципы проектирования», написанной «Уильямом Сталлингсом», что графические процессоры представляют собой одну инструкцию для нескольких данных, я не понимаю, что это значит. Я искал ...
Я хочу вычислить среднее значение изображения (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 + перестановки и...
Я пытаюсь загрузить 4 (целые) индексы в регистр, а затем загрузить соответствующие векторные значения с помощью команды сбора. Я хотел бы использовать «невыровненную» инструкцию, такую как loadu и AVX2. ...
У меня есть результат сравнения двух векторов __m256. __m256 result = _mm256_cmp_ps (a, b, _CMP_GT_OQ); В какой момент у меня есть векторный результат с 8 значениями. И каждое из этих значений ...
Кто-нибудь знает внутреннюю библиотеку C ++ x86 SIMD с открытым исходным кодом? Intel предоставляет именно то, что мне нужно, в их интегрированной библиотеке примитивов производительности, но я не могу использовать это из-за авторских прав ...
Кто-нибудь знает, как разрешить эти ошибки? Я пытаюсь добавить два 256-битных целочисленных векторов, но получаю следующую ошибку: cpu_avx.c: 12: 20: ошибка: несовместимые типы при инициализации типа «...
Выполняет сложное умножение и разделение, выгодное через инструкции SSE? Я знаю, что дополнение и вычитание работают лучше при использовании SSE. Может кто-то говорить мне, как я могу использовать SSE для...
У меня есть алгоритм обработки изображений, который делает из матриц, у меня есть свои собственные коды операции над матрицей (Умножение, Инверсия...) со мной. Но процессор, который я использую, является процессором ARM Cortex-A8, который имеет...
Мне нужно реализовать алгоритм суммирования префиксов, и мне нужно, чтобы он работал как можно быстрее.
Пример: [3, 1, 7, 0, 4, 1, 6, 3] должно дать: [3, 4, 11, 11, 15, 16, 22, 25] Есть ли способ сделать это...
Я пытаюсь перемножить два вектора, где каждый элемент одного вектора умножается на элемент в тот же индекс в другом векторе. Затем я хочу просуммировать все элементы полученного ...
У меня есть программа, которая проводит большую часть своего времени, вычисляя евклидово расстояние между значениями RGB (3 кортежа беззнакового 8-битного Word8). Мне нужна быстрая, безответная беззнаковая int абсолютная разница ...
Я некоторое время боролся с производительностью сетевого кодирования в разрабатываемом мной приложении (см. Оптимизация SSE-кода, Повышение производительности сетевого кодирования - кодирование и OpenCL ...
В чем разница между следующими двумя строками? __m128 x = _mm_load_ps ((float *) ptr);
__m128 y = _mm_load_pd ((double *) ptr); Другими словами, почему так много разных _mm_load_xyz ...
Обновление: пожалуйста, прочтите код, он НЕ о подсчете битов в одном int. Можно ли улучшить производительность следующего кода с помощью какого-нибудь умного ассемблера? uint bit_counter [64]; void Count (...
Intel Advanced Vector Extensions (AVX )не предлагает скалярного произведения в 256 -битной версии (регистр YMM )для переменных двойной точности с плавающей запятой. "Почему?" вопрос был рассмотрен очень кратко...
Есть ли способ поместить упакованное целое двойное слово из регистра XMM в стек? а потом вставлять обратно при необходимости? В идеале я ищу что-то вроде PUSH или POP для общего...
Предположим, я хочу добавить два буфера и сохранить результат. Оба буфера уже распределены по 16 байтам. Я нашел два примера, как это сделать. Первый использует _mm_load для чтения данных из...
Я ищу SIMD математические библиотеки (желательно с открытым исходным кодом) для SSE и AVX. Я имею в виду, например, если у меня есть регистр AVX v с 8 значениями с плавающей запятой, я хочу, чтобы sin (v) возвращал грех всех восьми значений в ...
در حال حاضر وجود دارد یک س onال در این مورد وجود دارد ، اما به دلیل "مبهم" بسته شد بنابراین من یک سوال جدید را باز می کنم - من جواب آن را پیدا کردم ، شاید به دیگران نیز کمک کند. سوال این است: چگونه توالی دنباله ای را می نویسید ...
Какие заголовочные файлы содержат встроенные функции для различных расширений набора инструкций x86 SIMD (MMX, SSE, AVX, ...)? Кажется, невозможно найти такой список в Интернете. Поправьте меня если я ошибаюсь.
Я хотел бы объединить два значения __m128 в одно __m256. Примерно так: __m128 a = _mm_set_ps(1, 2, 3, 4);
__m128 b = _mm_set_ps(5, 6, 7, 8); что-то вроде: __m256 c = { 1, 2, 3, 4, ...
Всем привет :)
Я пытаюсь понять несколько концепций, касающихся операций с плавающей запятой, встроенных функций SIMD / math и флага fast-math для gcc. В частности, я использую MinGW с gcc v4.5.0 на процессоре x86. Я ...
Я пытаюсь найти сокращение суммы 32 элемента (каждый 1 байт данных) на процессоре Intel i3. Я сделал так: с=0; для (я=0; я<32; я++)
{ s = s + а[i];
} Однако это занимает больше времени, так как...
Я использую встроенные функции SSE2 для оптимизации узких мест моего приложения и задаю следующий вопрос : ddata = _mm_xor_si128 (_mm_xor_si128 (_mm_sll_epi32 (xdata, 0x7u), _mm_srl_epi32 (tdata, ...
Я хочу умножить с помощью SSE4 объект __m128i на 16 8-битных целых чисел без знака, но я смог найти только внутреннюю функцию для умножения 16-битных целых чисел. Нет ничего такого, как _mm_mult_epi8?
Обычная операция, которую я делаю в своей программе - это масштабирование векторов на скаляр (V*s, например, [1,2,3,4]*2 == [2,4,6,8]). Существует ли инструкция SSE (или AVX) для этого, кроме как сначала загружать скаляр в каждый ...
С помощью встроенных функций компилятора Intel, учитывая 128-битный регистр, упаковывающий 8 16-битных элементов, как я могу получить доступ (дешево) к произвольным элементам из регистр, для последующего использования _mm_cvtepi8_epi64 (...