Вопросы по теме 'intrinsics'
Использование стека с внутренними функциями MMX и Microsoft C ++
У меня есть встроенный цикл ассемблера, который кумулятивно добавляет элементы из массива данных int32 с инструкциями MMX. В частности, он использует тот факт, что регистры MMX могут вмещать 16 int32 для параллельного вычисления 16 различных...
967 просмотров
schedule
15.03.2024
Обратный порядок векторов в встроенных функциях ARM NEON
Я пытаюсь изменить порядок 128-битного вектора (uint16x8).
Например, если у меня есть
a b c d e f g h
Я бы хотел получить
h g f e d c b a
Есть ли простой способ сделать это с помощью встроенных функций NEON? Я пробовал с VREV, но...
2368 просмотров
schedule
19.10.2023
Intrisic store - плохая производительность
Я хочу написать тест для Xeon Phi (60 ядер). В своей программе я использую стандарт OpenMP и встроенные функции Intel. Я реализовал параллельную версию алгоритма (5-точечное вычисление трафарета), которая быстрее скалярного алгоритма в 230 раз. Я...
161 просмотров
schedule
07.09.2022
Есть ли у Clang что-то вроде цели #pragma GCC?
У меня есть написанный код, который использует встроенные функции AVX, когда они доступны на текущем процессоре. В GCC и Clang, в отличие от Visual C++, чтобы использовать встроенные функции, вы должны включить их в командной строке.
Проблема с...
1742 просмотров
schedule
03.06.2024
Intel AVX несовместимая целочисленная операция _mm256_load_si256 в C
Чтобы распараллелить мой код на основе массива, я пытаюсь понять, как использовать встроенные функции Intel AVX для выполнения параллельных операций с большими массивами.
Из документации я прочитал, что 256-битные векторы AVX будут поддерживать до...
2317 просмотров
schedule
21.05.2024
Эффективно расширяйте 8-битные числа до 12-бит в неоновом регистре с одним плечом
У меня 4 байта загружены в неоновый регистр. Как я могу эффективно преобразовать это в 12-бит, например. Мне нужно вставить 4 нулевых бита после первого байта, 8 нулевых битов после второго и так далее. Например, если бы у меня были эти 4 байта в...
647 просмотров
schedule
14.11.2022
Как переместить двойное значение в% rax в определенную позицию qword на% ymm или% zmm? (Kaby Lake или новее)
Идея состоит в том, что я хотел бы собрать возвращенные значения double в векторный регистр для обработки для машины imm width за один раз без сохранения в памяти.
Конкретная обработка - это vfma с двумя другими операндами, которые все...
412 просмотров
schedule
15.09.2022
сдвиг влево 128-битного числа с использованием инструкции AVX2
Я пытаюсь выполнить левое вращение 128-битного числа в AVX2. Поскольку прямого способа сделать это не существует, я попытался использовать сдвиг влево и вправо для выполнения своей задачи.
Вот отрывок моего кода, чтобы сделать то же самое....
449 просмотров
schedule
10.02.2024
Самое быстрое считывание смещения для небольшого массива
Для скорости я хотел бы прочитать один из 8 регистров, на которые ссылается значение в 9-м регистре. Самый быстрый способ сделать это - использовать 3 условных перехода (проверяя 3 бита в 9-м регистре). Это должно иметь меньшую задержку, чем...
96 просмотров
schedule
09.07.2022
Каковы ошибки в этих встроенных функциях avx2 и как использовать необработанный ассемблер
Справочное руководство Intel довольно непрозрачно относительно деталей того, как используются инструкции. На каждой странице с инструкциями нет примеров.
https://software.intel.com/sites/default/files/4f/5b/36945
Возможно, мы еще не нашли...
76 просмотров
schedule
12.05.2024
Аналог _mm256_cmp_epi32_mask для AVX2
У меня есть 8 32-битных целых чисел, упакованных в регистры __m256i . Теперь мне нужно сравнить соответствующие 32-битные значения в двух регистрах. Пытался
__mmask8 m = _mm256_cmp_epi32_mask(r1, r2, _MM_CMPINT_EQ);
который помечает равные...
81 просмотров
schedule
17.10.2022
AVX512 — левые элементы упаковки по индексу с использованием маски
Короче говоря, я пытаюсь сжать (левый пакет) 64-битные целые числа по индексу. Ни встроенные функции scatter , ни compress не решают эту проблему напрямую.
Предположим, у вас есть восемь 64-битных целых чисел в a и вы хотите упаковать влево...
123 просмотров
schedule
10.10.2023