Результаты поиска по запросу "avx"

1 ответ

Сдвиг 4 целых числа вправо на разные значения SIMD

0 ответов

Как эффективно выполнять двойные / int64 преобразования с SSE / AVX?

В SSE2 есть инструкции для преобразования векторов между числами с плавающей точкой одинарной точности и 32-разрядными целыми числами.

1 ответ

Почему этот код SSE в 6 раз медленнее без VZEROUPPER на Skylake?

Я пытался выяснить проблему с производительностью в приложении и, наконец, сузил ее до действительно странной проблемы. Следующий фрагмент кода работает в 6 ...

ТОП публикаций

0 ответов

Конвенция для отображения векторных регистров

3 ответа

 флаг тоже не на hwcaps (эта часть может быть исправлена ​​в некоторых случаях с помощью LD_BIND_NOW = 1).

2 ответа

производительность SSE и AVX, когда ширина полосы памяти ограничена

В приведенном ниже коде я изменил «dataLen» и получил другую эффективность. dataLen = 400 SSE время: 758000 долларов США AVX время: 483000 долларов США SSE> AVX dataLen = 2400 SSE время: 4212000 сша AVX время: 2636000 сша SSE> AVX dataLen = ...

4 ответа

Если вы не уверены, что это хорошая идея, просто сделайте ее простой и используйте одну и ту же переменную для всех 3 входов:

ое воображение, или

1 ответ

, но он поддерживает другие встроенные функции в моем коде.

тирую следующую простую функцию

0 ответов

github.com/WojciechMula/sse-popcount/blob/master/...

множения больших двоичных матриц (10Kx20K) я обычно преобразую матрицы в числа с плавающей запятой и выполняю умножение матрицы с плавающей запятой, так как умножение целочисленной матрицы выполняется довольно медленно (посмотрите ...

0 ответов

@IwillnotexistIdonotexist: Хорошо заметили. Я думаю, это означает, что вы можете получить одну широкую запись MMIO для смежных немаскированных элементов или две узкие. Но выполнение одного выровненного 8-байтового атомарного хранилища все же дает атомарность для 4-байтовых половинок, хотя для MMIO это не так. Поэтому я не думаю, что это исключает атомарность для каждого элемента, потому что специфичная для реализации часть может быть только объединением хранилищ элементов в более широкие и все еще атомарные хранилища.

отрим массив какatomic<int32_t> shared_array[], Что делать, если вы хотите SIMD векторизацииfor(...) sum += shared_array[i].load(memory_order_relaxed)?. Или искать в массиве первый ненулевой элемент или обнулять его диапазон? Это, вероятно, ...