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

Как обнаружить Xeon Phi (Приземление рыцарей)
Инженеры Intel написали, что мы должны использовать VZEROUPPER / VZEROALL, чтобы избежать дорогостоящего перехода в состояние без VEX на всех процессорах, включая будущий процессор Xeon, но не на Xeon Phi: https://software.intel.com/pt-br/node/704023...
290 просмотров
schedule 18.04.2022

_mm512_storenr_pd и _mm512_storerngo_pd
В чем разница между _mm512_storenrngo_pd и _mm512_storenr_pd ? _mm512_storenr_pd(void * mt, __m512d v): Сохраняет упакованные элементы двойной точности (64-битные) с плавающей запятой от v до адреса памяти mt с подсказкой о нечтении для...
182 просмотров
schedule 30.03.2023

Измерение производительности для простых операций с векторизованными массивами
Я оптимизирую простые операции с массивами, такие как for (int i=0; i<cnt; i++) dst[i] = src1[i] * src2[i]; где cnt обычно составляет от 32 до 1024, что является типичным случаем в моем приложении. Я сравниваю Intel IPP, собственный...
64 просмотров

Ошибка доступа к памяти с помощью _mm512_i64gather_pd()
Я пытаюсь использовать очень простой пример инструкций по сбору AVX-512: double __attribute__((aligned(64))) array3[17] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0,...
144 просмотров
schedule 13.04.2022

Как я могу записать регистр rax в элемент quadword регистра AVX512 zmm26?
Этот вопрос является обратным Как я могу записать QuadWord из регистра AVX512 zmm26 в регистр rax? . Кроме того, у меня есть требование не использовать память для промежуточного хранения. Это возможно? Я хочу иметь возможность индивидуально писать...
35 просмотров
schedule 31.01.2023

Используйте Intel AVX со искрой
У нас есть новый кластер с процессорами Intel AVX 512. Мы провели исследование по этому вопросу безрезультатно. Мы хотели бы знать, может ли искровое задание запускаться с AVX изначально для обработки объектов DataFrames, или нам нужно изменить код,...
747 просмотров
schedule 05.08.2022

Использование AVX для xor двух регистров zmm (512 бит)
Я хотел бы бит-wisr xor zmm0 с zmm1. Я читал в Интернете и пробовал: asm volatile( "vmovdqa64 (%0),%%zmm0;\n" "vmovdqa64 (%1),%%zmm1;\n" "vpxorq %%zmm1, %%zmm0;\n" "vmovdqa64 %%zmm0,(%0);\n"...
409 просмотров
schedule 10.06.2024

Регистрирует ли vzeroall нуля от ymm16 до ymm31?
документация для vzeroall выглядит противоречивой. В прозе говорится: Инструкция обнуляет содержимое всех регистров XMM или YMM. Однако приведенный ниже псевдокод указывает, что в 64-битном режиме затрагиваются только регистры с ymm0...
263 просмотров
schedule 26.05.2023

Загрузить вектор в регистр AVX2 с несовпадающим размером
Предположим, у меня есть вектор двойников C ++ std, который должен быть загружен в регистр AVX2. Это можно просто сделать с помощью команды _mm256_load_pd(&vector1[0]) . Вектор может иметь любой размер и не должен быть кратным 4. Каким будет...
197 просмотров
schedule 01.01.2023

Собирать / разбрасывать 16-битные целые числа с помощью AVX-512
Я пытался понять, как мы должны разбросать 16-битные целые числа, используя инструкции разброса в AVX512. У меня есть 8 x 16-битных целых чисел, хранящихся по одному в каждом из 32-битных целых чисел __m256i. Я бы использовал 256-битный эквивалент...
278 просмотров
schedule 20.10.2023

Как добиться эффекта vpmovmskb на регистрах ZMM?
Причудливая инструкция (v) pmovmskb, восходящая к SSE, берет самые важные биты байтов в регистре mm, xmm или ymm и перемещает их в регистр общего назначения. Это очень полезно для классификации векторных элементов или выполнения операций SWAR над...
152 просмотров
schedule 26.06.2022

Умножение разных типов в AVX512
В настоящее время я пытаюсь умножить значение __m512d на значение __m512i . Значение __m512d равно ln(2), поэтому результат сохраняется в другой переменной __m512d . Однако я не могу найти какие-либо встроенные функции для умножения двойного...
52 просмотров
schedule 23.04.2023