Вопросы по теме 'avx'
Практика SSE int и float
При работе как с целыми числами, так и с числами с плавающей запятой в SSE (AVX) рекомендуется ли преобразовывать все целые числа в числа с плавающей запятой и работать только с числами с плавающей запятой? Потому что после этого нам нужно всего...
1524 просмотров
schedule
28.07.2022
Clang производит более медленный код, когда AVX включен?
Я использую Xcode 4.5.2 с «Компилятором Apple LLVM 4.1» (Clang).
Я попытался скомпилировать код, который в значительной степени зависит от встроенных функций SSE с включенным AVX (пока нет функций _mm256 * и переменных __m256), и получил более...
2198 просмотров
schedule
14.07.2022
Обратный регистр AVX, содержащий двойные числа, с использованием одного встроенного AVX.
Если у меня есть регистр AVX с 4 двойными значениями, и я хочу сохранить обратное значение в другом регистре, можно ли сделать это с помощью одной встроенной команды?
Например: если бы у меня было 4 числа с плавающей запятой в регистре SSE, я мог...
3322 просмотров
schedule
03.04.2023
горизонтальная сумма 8 упакованных 32-битных чисел с плавающей запятой
Если у меня есть 8 упакованных 32-битных чисел с плавающей запятой ( __m256 ), какой самый быстрый способ извлечь горизонтальную сумму всех 8 элементов? Аналогично, как получить горизонтальный максимум и минимум? Другими словами, какова наилучшая...
3541 просмотров
schedule
29.07.2023
AVX VMOVDQA медленнее двух SSE MOVDQA?
Пока я работал над своим быстрым циклом ADD ( Ускорение цикла ADD на ассемблере x64 ), я тестировал доступ к памяти с помощью SSE и Инструкции AVX. Чтобы добавить, мне нужно прочитать два ввода и произвести один вывод. Поэтому я написал фиктивную...
6167 просмотров
schedule
30.06.2022
Как сохранить более низкие или более высокие значения из регистра AVX / AVX2 (YMM) в память, как это делает SSE movlps / movhps?
Существуют ли какие-либо инструкции, которые могут сохранять более низкие или более высокие значения из 256-битного регистра AVX / AVX2 (YMM) в адрес памяти, как это делает инструкция SSE movlps / movhps?
Или есть другой способ реализовать это?...
3007 просмотров
schedule
10.04.2022
loaddup_pd/unpacklo_pd на Xeon Phi
Если у меня есть следующие двойники в SIMD-векторе шириной 512, как в регистре Xeon Phi:
m0 = |b4|a4|b3|a3|b2|a2|b1|a1|
можно ли сделать из него:
m0_d = |a4|a4|a3|a3|a2|a2|a1|a1|
по одной инструкции? Кроме того, поскольку для...
245 просмотров
schedule
29.08.2022
Перестановка в Intel Xeon Phi
Предположим, у меня есть следующие 4 вектора двойников в регистрах Xeon Phi:
A-> |a8|a7|a6|a5|a4|a3|a2|a1|
B-> |b8|b7|b6|b5|b4|b3|b2|b1|
C-> |c8|c7|c6|c5|c4|c3|c2|c1|
D-> |d8|d7|d6|d5|d4|d3|d2|d1|
Я хочу переставить их в...
446 просмотров
schedule
31.05.2022
Поиск списков простых чисел с помощью SIMD — SSE/AVX
Мне любопытно, есть ли у кого-нибудь советы о том, как использовать SIMD для поиска списков простых чисел. Особенно меня интересует, как это сделать с помощью SSE/AVX.
Я рассматривал два алгоритма: пробное деление и решето Эратосфена. Мне удалось...
1135 просмотров
schedule
06.11.2022
Умножение матрицы на вектор в AVX не пропорционально быстрее, чем в SSE
Я писал умножение матрицы на вектор как в SSE, так и в AVX, используя следующее:
for(size_t i=0;i<M;i++) {
size_t index = i*N;
__m128 a, x, r1;
__m128 sum = _mm_setzero_ps();
for(size_t j=0;j<N;j+=4,index+=4) {
a =...
6986 просмотров
schedule
16.12.2022
Есть ли способ имитировать целочисленные побитовые операции для типов _m256 в AVX?
У меня есть логическое выражение, которое мне удалось реализовать в SSE2. Теперь я хотел бы попробовать реализовать это в AVX, используя дополнительный фактор 2 в увеличении параллелизма (от 128-битного типа SIMD до 256). Однако AVX не поддерживает...
2601 просмотров
schedule
12.03.2023
Как выполнить инверсию _mm256_movemask_epi8 (VPMOVMSKB)?
Внутренняя:
int mask = _mm256_movemask_epi8(__m256i s1)
создает маску с ее 32 битами, соответствующими старшему биту каждого байта s1 . После манипулирования маской с помощью битовых операций (например, BMI2 ) я хотел бы выполнить...
6052 просмотров
schedule
27.04.2022
неявные передачи SIMD (SSE/AVX) с GCC
Мне удалось преобразовать большую часть моего SIMD-кода в векторные расширения GCC. Однако я не нашел хорошего решения для проведения трансляции следующим образом
__m256 areg0 = _mm256_broadcast_ss(&a[i]);
я хочу сделать
__m256...
1105 просмотров
schedule
26.06.2022
Горизонтальная сумма 32-битных чисел с плавающей запятой в 256-битном векторе AVX
У меня есть два массива с плавающей запятой, и я хотел бы рассчитать скалярное произведение, используя SSE и AVX, с минимально возможной задержкой. Я знаю, что для поплавков существует 256-битный точечный продукт, но я читал на SO, что это медленнее,...
5635 просмотров
schedule
25.08.2022
Что отсутствует / неоптимально в этой реализации memcpy?
Я заинтересовался написанием memcpy() в качестве обучающего упражнения. Я не буду писать целый трактат о том, что делал и о чем не думал, но вот реализация какого-то парня :
__forceinline // Since Size is usually known,
//...
5997 просмотров
schedule
29.03.2023
Разница между инструкциями AVX vxorpd и vpxor
Согласно Intel Intrinsics Guide ,
vxorpd ymm, ymm, ymm : Вычислить побитовое исключающее ИЛИ упакованных элементов с плавающей запятой двойной точности (64-битные) в a и b и сохранить результаты в dst.
vpxor ymm, ymm, ymm : вычислить...
3847 просмотров
schedule
21.03.2023
Когда компилятор переупорядочивает инструкции AVX на Sandy, влияет ли это на производительность?
Пожалуйста, не говорите, что это преждевременная микрооптимизация. Я хочу понять, насколько это возможно, учитывая мои ограниченные знания, как работает описанная функция и сборка SB, и убедиться, что мой код использует эту архитектурную...
460 просмотров
schedule
30.07.2022
Умножение с плавающей запятой: ПОТЕРЯ скорости с AVX против SSE?
У меня есть код, который делает то же самое, но версия AVX значительно МЕДЛЕННЕЕ, чем версия SSE. Кто-нибудь может это объяснить?
Что я уже сделал, так это попытался профилировать код с помощью VerySleepy, но это не дало мне никаких полезных...
603 просмотров
schedule
30.05.2022
Могу ли я правильно сравнить с нулевым регистром в avx?
Я встречал очень странное поведение внутренней инструкции AVX _mm256_testc_pd (). Здесь вы можете увидеть описание этой функции https://software.intel.com/sites/landingpage/IntrinsicsGuide/#techs=AVX,AVX2&text=test&expand=5432
Я использовал его...
1235 просмотров
schedule
18.03.2023
Заставить встроенные функции AVX использовать вместо этого инструкции SSE
К сожалению, у меня есть процессор AMD piledriver, у которого, похоже, проблемы с инструкциями AVX:
Запись в память с 256-битными регистрами AVX исключительно медленная. Измеренная пропускная способность в 5-6 раз ниже, чем у предыдущей модели...
1114 просмотров
schedule
29.04.2023