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

Использование стека с внутренними функциями MMX и Microsoft C ++
У меня есть встроенный цикл ассемблера, который кумулятивно добавляет элементы из массива данных int32 с инструкциями MMX. В частности, он использует тот факт, что регистры MMX могут вмещать 16 int32 для параллельного вычисления 16 различных...
967 просмотров

Обратный порядок векторов в встроенных функциях 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 просмотров

Каковы ошибки в этих встроенных функциях 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 просмотров

AVX512 — левые элементы упаковки по индексу с использованием маски
Короче говоря, я пытаюсь сжать (левый пакет) 64-битные целые числа по индексу. Ни встроенные функции scatter , ни compress не решают эту проблему напрямую. Предположим, у вас есть восемь 64-битных целых чисел в a и вы хотите упаковать влево...
123 просмотров
schedule 10.10.2023