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

Как проверить инструкции AVX-512 без поддерживаемого оборудования?
Я пытаюсь изучить новые инструкции x86-64 AVX-512, но ни один из моих компьютеров не поддерживает их. Я пробовал использовать различные дизассемблеры (от Visual Studio до онлайн: 1 , 2 ), чтобы просмотреть инструкции для конкретных кодировок кода...
4543 просмотров
schedule 18.09.2021

Как транспонировать матрицу 16x16 с помощью инструкций SIMD?
В настоящее время я пишу код, предназначенный для будущих инструкций Intel AVX-512 SIMD, которые поддерживают 512-битные операции. Теперь, предполагая, что есть матрица, представленная 16 регистрами SIMD, каждый из которых содержит 16 32-битных...
7182 просмотров
schedule 26.02.2022

Самый быстрый метод вычисления суммы всех упакованных 32-битных целых чисел с использованием AVX512 или AVX2
Я ищу оптимальный метод для вычисления суммы всех упакованных 32-битных целых чисел в __m256i или __m512i . Чтобы вычислить сумму элементов n , я часто использую функцию log2 (n) vpaddd и vpermd , а затем извлекаю окончательный результат....
1655 просмотров
schedule 27.02.2022

Как преобразовать двоичное целое число в шестнадцатеричную строку?
Учитывая число в регистре (двоичное целое число), как преобразовать его в строку шестнадцатеричных цифр ASCII? (т.е. преобразовать его в текстовый формат.) Цифры можно сохранять в памяти или распечатывать «на лету», но хранение в памяти и...
4592 просмотров
schedule 24.03.2022

Подсчет населения в AVX512
Я пытался использовать _mm256_popcnt_epi64 на машине, поддерживающей AVX512, и в коде, который ранее был оптимизирован для AVX2. К сожалению, я столкнулся с проблемой, что функция не найдена. Однако соответствующий __m512i эквивалент найден....
201 просмотров
schedule 28.03.2022

avx512F kmovw mov слово за словом
У меня вопрос по AVX512F - инструкция kmovw. У меня есть 8-байтовая маска в регистре K0, которую можно использовать "kmovq" и переместить в 8-байтовый регистр или зарезервированную память (8-байтовую). но kmovq работает только в AVX512BW, а для...
90 просмотров
schedule 08.04.2022

отключить все инструкции AVX-512 для сборки g ++
Привет, я пытаюсь построить без каких-либо инструкций avx512, используя эти флаги: -march=native -mno-avx512f . Однако я все еще получаю двоичный файл, в котором сгенерирована инструкция AVX512 ( vmovss ) (я использую elfx86exts для проверки). Есть...
428 просмотров
schedule 05.05.2022

Получение незаконной инструкции при запуске базового кода Avx512
Я пытаюсь изучить инструкции AVX и при запуске базового кода получаю Незаконная инструкция (дамп ядра) Код упомянут ниже, и я компилирую его, используя g ++ -mavx512f 1.cpp В чем именно проблема и как ее преодолеть? Спасибо!...
584 просмотров
schedule 14.05.2022

Как реализовать операции вставки и извлечения 16- и 32-битных целых чисел с помощью AVX-512?
В AVX есть инструкции для вставки и извлечения 16- и 32-битных целых чисел в __m256i векторы: _mm256_insert_epi16 , _mm256_insert_epi32 , _mm256_extract_epi16 , _mm256_extract_epi32 . Однако у AVX-512, похоже, нет эквивалентных инструкций....
672 просмотров
schedule 23.06.2022

Ускорение с помощью AVX2 и AVX512
Я пытаюсь представить себе ускорение за счет включения AVX2 и AVX512. #include <stdio.h> #include <stdlib.h> #include <immintrin.h> #include <omp.h> #include <time.h> int main() { long i, N = 160000000; int * A =...
709 просмотров
schedule 24.06.2022

Векторизация непрямого доступа с помощью инструкций avx
Недавно я познакомился с векторными инструкциями (теоретически) и очень рад тому, как я могу использовать их для ускорения своих приложений. Одна область, которую я хотел бы улучшить, — это очень горячий цикл: __declspec(noinline) void...
683 просмотров

Выбор между выровненными или невыровненными инструкциями x86 SIMD
Обычно существует два типа инструкций SIMD: A. Те, которые работают с выровненными адресами памяти, вызовут исключение общей защиты (#GP), если адрес не выровнен по границе размера операнда: movaps xmm0, xmmword ptr [rax] vmovaps ymm0, ymmword...
2695 просмотров
schedule 27.11.2022

SIMD: реализовать _mm256_max_epu64_ и _mm256_min_epu64_
Я хочу задать вопрос о SIMD. Я не получаю AVX512 в своем ЦП, но хочу иметь _mm256_max_epu64 . Как мы можем реализовать эту функцию с помощью AVX2 ? Здесь я пытаюсь иметь свой тривиальный. Может быть, мы можем позволить этому быть...
843 просмотров
schedule 19.09.2023

Когда я проверяю номер цикла модуля, результаты каждого теста сильно различаются。
Когда я тестирую номер цикла модуля, результаты каждого теста сильно различаются? 1781344-->First test 1264558-->Second test 1388058-->Third test Я use __rdtsc() для записи циклов и использую встроенный AVX512。 Существуют ли...
29 просмотров
schedule 22.03.2023

Инструкция Find First Set (ffs) для повышения точности uint512_t
Я разрабатываю алгоритм, который использует __builtin_ffsll() с типом uint64_t . Я хочу переключиться на 512-битное поле с помощью библиотеки повышения точности (я работаю на машине с поддержкой avx512). Есть ли функция, аналогичная...
160 просмотров

Самый быстрый способ хранения индексированных массивов в AVX512?
У меня есть операция вида: for (I=0;I<31;I++) { dst[index1[I]]=src1[I]; dst[index2[I]]=src2[I]; } Все массивы данных имеют 128b элементов. [отредактировано] Я не уверен, как лучше всего реализовать это в AVX512. Я могу загрузить...
86 просмотров
schedule 16.12.2022

Как выполнить смешивание векторов AVX с собственным векторным синтаксисом clang (без встроенных функций)?
К моему удовольствию, я обнаружил, что clang позволяет писать явный векторный код, не прибегая к встроенным функциям, используя расширенные векторы . Например, этот код: typedef float floatx16 __attribute__((ext_vector_type(16))); floatx16 add(...
175 просмотров
schedule 27.06.2023

Эффективно вычисляйте степени X в SSE/AVX
Я ищу наиболее эффективный способ вычисления всех первых целых чисел с плавающей запятой X внутри регистра SSE-128/AVX-256/AVX-512 (128, 256 и 512 бит), например. для float AVX1-256 я хочу получить в регистре X^1, X^2, X^3, X^4, X^5, X^6, X^7, X^8...
122 просмотров
schedule 12.03.2023

AVX-512 - Как собрать данные из памяти с помощью инструкции по сборке?
Я пытаюсь собрать 64-битные целые числа из памяти, используя инструкцию ассемблера. Ниже вы можете увидеть, как я вызываю assembly код из C . Обратите внимание, что ассемблерный код использует синтаксис NASM . nasm_gather.asm файл bits...
146 просмотров
schedule 16.01.2024