2
ответа

Что является значением “не временные” доступы памяти в x86

Это - вопрос несколько низкого уровня. В x86 блоке существует две инструкции SSE: MOVDQA xmmi, m128 и MOVNTDQA xmmi, m128 Руководство Разработчика программного обеспечения IA-32 говорит что NT в...
вопрос задан: 2 May 2012 11:10
2
ответа

Общие методы SIMD

Где я могу найти информацию об общих приемах SIMD? Я имею систему команд и знаю, как написать нехитрый код SIMD, но я знаю, SIMD теперь намного более мощен. Это может содержать комплекс...
вопрос задан: 9 December 2011 00:29
2
ответа

Хранение двух x86 32 битов регистрирует в 128 битов xmm регистр

Там какой-либо более быстрый метод должен сохранить два x86 регистра на 32 бита в 128 битах xmm регистр? movd xmm0, edx movd xmm1, eax pshufd xmm0, xmm0, por xmm0 за 1$, xmm1 Поэтому, если EAX является 0x12345678 и...
вопрос задан: 13 July 2011 12:09
2
ответа

Быстро 24-разрядный массив-> 32-разрядное преобразование массива?

Быстрая Сводка: у Меня есть массив 24-разрядных значений. Какое-либо предложение о том, как быстро развернуть отдельные 24-разрядные элементы массива в 32-разрядные элементы?Подробнее: Я обрабатываю входящие видеокадры в...
вопрос задан: 4 June 2010 11:37
2
ответа

Лучший ресурс для приобретения знаний об упреждающей выборке буфера в C на Intel/AMD 64 бита

Я интересуюсь освоением связанных с упреждающей выборкой функций, таких как _mm_prefetch (...) поэтому, когда я выполняю операции, что цикл по массивам, пропускная способность памяти полностью используется. Что является лучшим...
вопрос задан: 12 April 2010 12:52
2
ответа

QT, GCC, SSE и выравнивание стека

Я пытаюсь сделать программу скомпилированной с GCC и использую QT и SSE intrinsics. Кажется, что, когда одна из моих функций вызвана QT, выравнивание стека не сохраняется. Вот короткий пример к...
вопрос задан: 5 March 2010 11:45
2
ответа

C - Как получить доступ к элементам вектора с помощью GCC расширение вектора SSE

Обычно я работаю с 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...
вопрос задан: 26 November 2009 15:18
2
ответа

glibc и функциональность SSE

Я пытаюсь найти информацию о glibc и до какой степени это использует функциональность SSE. Если это оптимизировано, я могу использовать его out-of-the-box? Скажите, что я использую один из больших дистрибутивов Linux, я принимаю это...
вопрос задан: 7 May 2009 08:53
1
ответ

Сокращение OpenMP на векторе SSE2

Я хочу вычислить среднее значение изображения (3 канала интереса + 1 альфа-канал, который мы здесь игнорируем) для каждого канала с использованием встроенных функций SSE2. Я пробовал это: __m128 средний = _mm_setzero_ps (); # ...
вопрос задан: 21 January 2019 06:45
1
ответ

Заменить байт другим

Я нахожу трудности в создании кода для этой, казалось бы, легкой проблемы. Учитывая упакованное 8-битное целое число, замените один байт другим, если он присутствует. Например, я хочу заменить 0x06 ...
вопрос задан: 15 January 2019 15:32
1
ответ

Почему мой код SSE Rusty медленнее, чем скалярная версия? [Дубликат]

Я реализовал алгоритм RNG Fast Mersenne Twister (SFMT) SSE в Rust, но версия SSE работает медленнее, чем скалярная версия. Две версии функции следующие: # ...
вопрос задан: 5 March 2017 07:52
1
ответ

транспонируйте для 8 регистров 16-разрядных элементов на SSE2/SSSE3

(Я - новичок к SSE/asm, извинения, если это очевидно или избыточно) там лучший способ транспонировать 8 регистров SSE, содержащих 16-разрядные значения, чем выполнение 24 unpck [люфтганза] PS и 8/16 + перестановки и...
вопрос задан: 10 February 2017 15:08
1
ответ

С ++ SSE SIMD framework [закрыто]

Кто-нибудь знает внутреннюю библиотеку C ++ x86 SIMD с открытым исходным кодом? Intel предоставляет именно то, что мне нужно, в их интегрированной библиотеке примитивов производительности, но я не могу использовать это из-за авторских прав ...
вопрос задан: 26 October 2013 13:47
1
ответ

Краткий SSE и ссылка инструкции MMX с задержками и пропускной способностью

Я пытаюсь оптимизировать некоторую арифметику при помощи MMX и систем команд SSE со встроенным ассемблерным кодом. Однако я не мог найти хорошие ссылки для синхронизаций и использований их улучшенными...
вопрос задан: 12 October 2012 10:16
1
ответ

Сложный Mul и Отделение, использующее sse Инструкции

Выполняет сложное умножение и разделение, выгодное через инструкции SSE? Я знаю, что дополнение и вычитание работают лучше при использовании SSE. Может кто-то говорить мне, как я могу использовать SSE для...
вопрос задан: 29 June 2012 10:16
1
ответ

Как преобразовать шестнадцатеричное плавание в плавание в C/C++ с помощью _mm_extract_ps SSE GCC instrinc функция

Я пишу код SSE к 2D свертке, но документация SSE очень редка. Я вычисляю скалярное произведение с _mm_dp_ps и использую _mm_extract_ps для получения результата скалярного произведения, но _mm_extract_ps...
вопрос задан: 11 June 2012 12:34
1
ответ

Нужна некоторая конструктивная критика на моей попытке SSE/блока

Я работаю над преобразованием небольшого количества кода к SSE, и в то время как у меня есть корректный вывод, это оказывается медленнее, чем стандартный код C++. Бит кода, для которого я должен сделать это: пустите в ход вола = p2x - (...
вопрос задан: 5 May 2011 09:41
1
ответ

Регистр SSE возвращается с отключенным SSE

Я нахожусь в следующей ситуации: Я - написание кода для ядра, которое не позволяет инструкции SSE, я должен сделать арифметику с плавающей точкой, которую я компилирую для x86_64 платформы, Вот пример кода...
вопрос задан: 9 March 2011 01:27
1
ответ

g ++ SSE intrinsics дилемма - оценивает от внутреннего, “насыщает”

Я записал простую программу для реализации SSE intrinsics для вычислений внутреннего продукта двух больших (100000 или больше элементов) векторы. Программа сравнивает время выполнения для обоих, внутреннего продукта...
вопрос задан: 1 June 2010 06:00
0
ответов

Сумма префиксов SIMD на процессоре Intel

Мне нужно реализовать алгоритм суммирования префиксов, и мне нужно, чтобы он работал как можно быстрее. Пример: [3, 1, 7, 0, 4, 1, 6, 3] должно дать: [3, 4, 11, 11, 15, 16, 22, 25] Есть ли способ сделать это...
вопрос задан: 26 November 2019 02:23
0
ответов

Как вычислить одно-векторное точечное произведение с использованием встроенных функций SSE в C

Я пытаюсь перемножить два вектора, где каждый элемент одного вектора умножается на элемент в тот же индекс в другом векторе. Затем я хочу просуммировать все элементы полученного ...
вопрос задан: 29 October 2019 23:20
0
ответов

Оптимизированная для SSE эмуляция 64 -битных целых чисел

Для хобби-проекта, над которым я работаю, мне нужно эмулировать определенные 64 -битные целочисленные операции на процессоре x86, и это должно быть быстро. В настоящее время я делаю это с помощью инструкций MMX, но это действительно проблема...
вопрос задан: 6 June 2019 01:44
0
ответов

Как оптимизировать C-код с SSE-интринками для упакованных 32x32 => 64-битных умножений и распаковки половин этих результатов для (полей Галуа)

Я некоторое время боролся с производительностью сетевого кодирования в разрабатываемом мной приложении (см. Оптимизация SSE-кода, Повышение производительности сетевого кодирования - кодирование и OpenCL ...
вопрос задан: 4 February 2019 09:23
0
ответов

Оптимизация кода с использованием встроенных функций Intel SSE для векторизации

Я впервые работаю с SSE intrinsics. Я пытаюсь преобразовать простой фрагмент кода в более быструю версию, используя intel SSE intrinsic (до SSE4.2). Кажется, я сталкиваюсь с рядом ...
вопрос задан: 29 January 2019 12:40
0
ответов

В чем разница между __popcnt() и _mm_popcnt_u32()?

MS Visual C++ поддерживает 2 варианта инструкции popcnt на ЦП с SSE4.2: __popcnt() _mm_popcnt_u32() Единственное отличие, которое я обнаружил, заключалось в том, что документация для __popcnt() помечена как «Microsoft...
вопрос задан: 24 January 2019 22:10
0
ответов

_mm_load_ps против _mm_load_pd против других на Intel x86 ISA

В чем разница между следующими двумя строками? __m128 x = _mm_load_ps ((float *) ptr); __m128 y = _mm_load_pd ((double *) ptr); Другими словами, почему так много разных _mm_load_xyz ...
вопрос задан: 10 January 2019 04:58
0
ответов

Можно ли использовать SSE и SSE2 для создания целого числа с разрядностью 128 бит?

Я хочу немного больше понять возможности SSE2 и хотел бы знать, можно ли создать целое число шириной 128 бит, которое поддерживает сложение, вычитание, XOR и умножение?
вопрос задан: 9 January 2019 03:45
0
ответов

Сбой после m = XMMatrixIdentity()-выравнивание памяти в классах?

Я смотрел учебники в DirectX SDK. Учебник 5 работает нормально, но после того, как я скопировал и разделил код на свои собственные классы, я получил странную ошибку при запуске моего приложения. Линия...
вопрос задан: 17 March 2018 12:04
0
ответов

Самый эффективный способ преобразовать вектор uint32 в вектор с плавающей запятой?

x86 не имеет инструкции SSE для преобразования беззнакового int32 в плавающую точку. Какая последовательность инструкций была бы наиболее эффективной для этого? РЕДАКТИРОВАТЬ: Чтобы уточнить, я хочу сделать ...
вопрос задан: 14 March 2018 22:29
0
ответов

Можно ли приводить числа с плавающей запятой непосредственно к __m128, если они выровнены по 16 байтам?

Безопасно/возможно/рекомендуется ли приводить числа с плавающей запятой непосредственно к __m128, если они выровнены по 16 байтам? Я заметил, что использование _mm _load _ps и _mm _store _ps для «обертывания» необработанного массива добавляет значительные
вопрос задан: 4 February 2018 03:53