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

Преимущество одновременного использования нескольких наборов инструкций SIMD
Я пишу высокопараллельное многопоточное приложение. У меня уже есть класс потока с ускорением SSE. Если бы мне пришлось написать класс потока с ускорением MMX, а затем запустить оба потока одновременно (один поток SSE и один поток MMX на ядро),...
1327 просмотров
schedule 28.10.2021

Программа SSE на AMD занимает намного больше времени, чем на Intel
Я работаю над оптимизацией алгоритма с использованием инструкций SSE2. Но я столкнулся с этой проблемой, когда тестировал производительность: I) Intel e6750 Четырехкратное выполнение алгоритма, отличного от SSE2, занимает 14,85 секунды....
1228 просмотров
schedule 13.11.2021

Как отключить векторизацию при использовании GCC?
Я компилирую свой код, используя следующую команду: gcc -O3 -ftree-vectorizer-verbose=6 -msse4.1 -ffast-math При этом все оптимизации включены. Но я хочу отключить векторизацию, сохранив при этом другие оптимизации.
11686 просмотров

Оптимизация кода SSE2
Я использую встроенные функции SSE2 для оптимизации узких мест в моем приложении, и у меня возникает следующий вопрос: ddata = _mm_xor_si128(_mm_xor_si128( _mm_sll_epi32(xdata, 0x7u), _mm_srl_epi32(tdata, 0x19u)), xdata); В компиляторе...
1334 просмотров
schedule 26.10.2021

Предполагается, что массив tr1 выровнен по 16 байт?
В "gcc версии 4.2.1 (на основе сборки 5658 Apple Inc.) (сборка LLVM 2335.15.00)" в массиве tr1 я вижу следующее: value_type _M_instance[_Nm ? _Nm : 1] __attribute__((__aligned__)); тогда как в «gcc версии 4.5.2 (Ubuntu / Linaro...
141 просмотров
schedule 14.11.2021

Другой результат с версией SSE
Я пытаюсь переписать код, чтобы использовать SSE. Однако по какой-то причине моя версия SSE дает другие результаты, чем оригинал, например 209,1 вместо 1,47 и т. Д. Почему? Всю функцию можно найти здесь . struct vec_ps { __m128 value;...
216 просмотров
schedule 14.11.2021

Проверить регистр XMM на наличие всех нулей
Есть ли способ проверить, все ли биты / байты / слова и т. Д. В переменной __m128i равны 0? В моем приложении я должен проверить, все ли целые числа, упакованные в переменную __m128i , равны нулю. Придется ли мне их извлекать и сравнивать по...
3133 просмотров
schedule 21.09.2021

Сравнение и извлечение с помощью SSE
Как лучше всего попарно сравнивать два целочисленных регистра и извлекать одинаковые элементы с помощью инструкций SSE? Например, если a = [6 4 7 2] и b = [2 4 9 2] (каждый регистр содержит четыре 32-битных целых числа), результат должен быть [4...
996 просмотров
schedule 02.12.2021

Работа с встроенными функциями Intel SSE SIMD
У меня вопрос относительно различных арифметических операций для встроенных функций Intel SSE. в чем разница между _mm_add_ps Vs. _mm_add_epi8 / 16/32? Я хочу быть уверенным, что мои данные всегда выровнены. В образце кода, когда я это делаю:...
813 просмотров
schedule 14.10.2021

Оператор SSE + = для векторов
У меня есть два массива типа double и я хочу выполнить vecA += vecB . Пока что я делаю vecA = vecA + vecB и, насколько мне известно, например, Запись целых чисел i = i + 5 выполняется медленнее, чем i += 5 . Поэтому мне интересно, есть ли...
339 просмотров
schedule 05.10.2021

Переверните строку с помощью SSE
Как перевернуть строку с помощью SSE? эта концепция нова для меня, поэтому, пожалуйста, дайте мне немного информации о ней. Причина в том, что кто-то говорит, что использование SSE ускорит код и время выполнения. Я искал SSE, который равен...
531 просмотров
schedule 17.11.2021

Целочисленное хранилище SIMD
Я пишу программу, использующую инструкции SSE для умножения и сложения целочисленных значений. Я проделал ту же программу с числами с плавающей запятой, но мне не хватает инструкции для моей целочисленной версии. С помощью чисел с плавающей...
898 просмотров
schedule 16.11.2021

Развертывание цикла для достижения максимальной пропускной способности с Ivy Bridge и Haswell
Я вычисляю сразу восемь точечных произведений с помощью AVX. В моем текущем коде я делаю что-то вроде этого (перед развертыванием): Плющ-Бридж / Сэнди-Бридж __m256 areg0 = _mm256_set1_ps(a[m]); for(int i=0; i<n; i++) { __m256...
3502 просмотров
schedule 20.09.2021

Задачи OpenMP - способ запретить конкретному потоку выполнять задачи?
Я создаю несколько задач в OpenMP, но почему-то задачи выполняются одним потоком. Код имеет следующий шаблон: #pragma omp parallel num_threads(n_threads) #pragma omp single while(!found){ /.... operations with k, e, y, dist, u,...
518 просмотров
schedule 05.09.2021

Перемешать целочисленные регистры SSE
У меня есть два целых числа sse, которые я назначаю следующим образом: __m128i m1 = _mm_set_epi32(4,3,2,1); __m128i m2 = _mm_set_epi32(40,30,20,10); Теперь мне нужно немного переключиться между этими двумя регистрами и сохранить...
571 просмотров
schedule 01.12.2021

проблема с преобразованием плавающей запятой в uchar в SSE
Привет, Что касается моего более раннего сообщения, я разрешил операцию сравнения в SSE. Но после получения результата я заметил, что мой результат поступает в формате с плавающей запятой, а мой ожидаемый результат - в uchar. Для Например, я...
233 просмотров
c sse
schedule 12.10.2021

Индексирование векторов в SIMD
Я работаю с SIMD и пытаюсь векторизовать цикл. Здесь я пытаюсь добавить вектор индексов к указателю слева, чтобы получить значение указателя в этом индексе, а затем продолжить выполнение операций SIMD. Например, если бы я делал это без SIMD, это...
395 просмотров
schedule 20.11.2021

NEON, SSE и чередующиеся нагрузки против перемешивания
Я пытаюсь понять комментарий, сделанный «Iwillnotexist Idonotexist» на SIMD-оптимизации cvtColor с использованием встроенных функций ARM NEON : ... почему вы не используете интрисы ARM NEON, которые соответствуют инструкции VLD3? Это...
1415 просмотров
schedule 10.09.2021

Ускоренная целочисленная загрузка SSE без привязки, которая используется редко
Я хотел бы узнать больше о _mm_lddqu_si128 intrinsic (инструкция lddqu , начиная с SSE3), особенно по сравнению с _mm_loadu_si128 intrinsic (инструкция movdqu после SSE2). Я обнаружил _mm_lddqu_si128 только сегодня. Внутреннее руководство...
1350 просмотров
schedule 20.10.2021

Обрезать числа с плавающей запятой и удвоения после определенных пользователем точек в FPU X87 и SSE
Я создал функцию g , которая может приближать функцию до определенной степени, эта функция дает точные результаты с точностью до 5 знаков после запятой (1,23456xxxxxxxxxxxx, где позиции x - это просто ошибки округления / мусор). Чтобы избежать...
337 просмотров
schedule 17.10.2021