Вопросы по теме '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 просмотров
schedule
23.04.2023
Выбор между выровненными или невыровненными инструкциями 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 просмотров
schedule
15.12.2022
Самый быстрый способ хранения индексированных массивов в 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