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

Как использовать встроенные функции MSVC, чтобы получить эквивалент этого кода GCC?
Следующий код вызывает встроенные функции для clz/ctz в GCC, а в других системах имеет версии C. Очевидно, что версии C немного неоптимальны, если в системе есть встроенная инструкция clz/ctz, как в x86 и ARM. #ifdef __GNUC__ #define clz(x)...
23913 просмотров
schedule 25.09.2022

Программа Intrinsics (SSE) - g++ - нужна помощь
Это первый раз, когда я публикую вопрос в stackoverflow, поэтому, пожалуйста, постарайтесь не обращать внимания на любые ошибки, которые я мог допустить при форматировании моего вопроса/кода. Но, пожалуйста, укажите мне то же самое, чтобы я мог быть...
1560 просмотров
schedule 12.03.2022

Уточнение доступа к атомарной памяти для разных ОС
В настоящее время я переношу библиотеку Windows C++ на MacOS в качестве хобби-проекта в качестве учебного опыта. Я наткнулся на некоторый код, использующий функции Win Interlocked*, и поэтому я пытался прочитать об этом предмете в целом. Читая...
298 просмотров

Возможна пользовательская встроенная функция для x64 вместо встроенной сборки?
В настоящее время я экспериментирую с созданием высокооптимизированных многоразовых функций для моей библиотеки. Например, я пишу функцию "степень двойки" следующим образом: template<class IntType> inline bool is_power_of_two( const...
2587 просмотров

Встроенные функции SSE для сравнения (_mm_cmpeq_ps) и операции присваивания
Я начал оптимизировать свой код с помощью SSE. По сути, это трассировщик лучей, который обрабатывает 4 луча одновременно, сохраняя координаты в __m128 типов данных x, y, z (координаты для четырех лучей сгруппированы по осям). Однако у меня есть...
3813 просмотров
schedule 11.04.2022

распечатать переменную __m128i
Я пытаюсь научиться кодировать с использованием встроенных функций, и ниже приведен код, который добавляет compiler used: icc #include<stdio.h> #include<emmintrin.h> int main() { __m128i a = _mm_set_epi32(1,2,3,4);...
26757 просмотров
schedule 21.07.2022

Поведение встроенной функции fortran sqrt()
У меня есть сценарий, в котором я пытаюсь выполнить сложное приложение в AIX и Linux. Во время выполнения код использует встроенную функцию sqrt() для вычислений, но полученный результат отличается на обеих машинах. Кто-нибудь знает причину...
502 просмотров
schedule 14.07.2023

Кто-нибудь знает, как использовать встроенные функции Neon uint8x8_t vclt_s8 (int8x8_t, int8x8_t)
Я хочу сравнить 2 int8x8_t , из http://gcc.gnu.org/onlinedocs/gcc/ARM-NEON-Intrinsics.html мы можем получить описание для vclt_s8 , но оно не дает нам подробных сведений. `uint8x8_t vclt_s8 (int8x8_t, int8x8_t)` Форма ожидаемой инструкции...
2019 просмотров
schedule 13.04.2022

Векторизация модульной арифметики
Я пытаюсь написать достаточно быстрый код сложения векторов по компонентам. Я работаю с (подписанными, я полагаю) 64-битными целыми числами. Функция void addRq (int64_t* a, const int64_t* b, const int32_t dim, const int64_t q) { for(int i...
1854 просмотров
schedule 23.06.2022

SSE: Должен ли я установить маску перемешивания как статическую переменную или нет?
Если в функции мне нужна фиксированная маска перемешивания, следует ли мне установить ее как const или static const ? const __m128i SHUFFLE_MASK = _mm_setr_epi8(0, 4, 8, 12, -1, -1, -1, -1, -1, -1,...
402 просмотров
schedule 11.01.2023

Встроенные функции SSE2 — сравнение 2 __m128i, содержащих по 4 int32 в каждом, чтобы увидеть, сколько из них равны
Я впервые погружаюсь во встроенные функции SSE2 и не знаю, как это сделать. Я хочу сравнить 4 int32 с 4 другими int32 и подсчитать, сколько из них равны. Итак, я прочитал свои первые 4 int32, установил их в __m128i, сделал то же самое для второго...
653 просмотров
schedule 03.11.2022

Когда компилятор переупорядочивает инструкции AVX на Sandy, влияет ли это на производительность?
Пожалуйста, не говорите, что это преждевременная микрооптимизация. Я хочу понять, насколько это возможно, учитывая мои ограниченные знания, как работает описанная функция и сборка SB, и убедиться, что мой код использует эту архитектурную...
460 просмотров
schedule 30.07.2022

Ошибка сегментации Intel SSE Intrinsics _mm_load_si128,
В настоящее время я работаю с матрицей 5 x 5, используя функции SSE. Я пытаюсь загрузить x4 128-битные целочисленные значения в регистры xmm следующим образом: #include <emmintrin.h> #include <smmintrin.h>...
809 просмотров
schedule 25.07.2022

Потеря точности в fortran fft
У меня проблема с вычислением fft некоторых данных в Fortran. Я не знаю, что-то не так с алгоритмом, округлением, отсутствием точности или чем-то еще. Вот код module fft_mod public :: fft1D integer,parameter :: cp =...
695 просмотров
schedule 17.04.2022

SSE - сравнить и поставить мое значение?
Я на этой странице встроенного руководства Intel . Мой sse опыт довольно хрупкий. Хорошо, у меня есть массив — действительно длинный — целых чисел с именем «источник». Пример : Я хочу изменить некоторые из его значений, если они...
189 просмотров
schedule 27.01.2023

адресация беззнакового 16-битного вектора с беззнаковым 32-битным вектором смещения
У меня есть указатель на беззнаковый 16-битный вектор uint16x8_t *_h; Мне нужно добавить к этому указателю рассчитанное беззнаковое 32-битное смещение вектора — смещение выглядит так: uint32x4_t _o32x4; вопрос в том, как это сделать с помощью...
46 просмотров
schedule 20.02.2023

С++ встроенные функции SSE atan2
Мне нужен очень быстрый atan2 для получения градиента из значений sobel (я реализую алгоритм canny edge). Кто-нибудь знает очень быструю реализацию, предпочтительнее во встроенных функциях (SIMD) или очень быстром приближении. (Думаю, приближения...
1235 просмотров
schedule 25.02.2022

Внутренности SIMD: _mm_stream_load_si128 против _mm_load_si128
Когда мне следует использовать потоковую версию, а когда SSE2 или _mm_load_si128? Каков компромисс производительности?
3926 просмотров
schedule 29.09.2022

Встроенные трансляции с встроенными функциями и сборкой
В разделе 2.5.3 «Трансляции» Справочник по программированию расширений набора инструкций архитектуры Intel , что мы узнаем, чем у AVX512 (и Knights Corner) есть битовое поле для кодирования широковещательных данных для некоторых инструкций...
961 просмотров
schedule 09.03.2022

Как запретить GCC нарушить мои внутренние функции NEON?
Мне нужно написать оптимизированный код NEON для проекта, и я совершенно счастлив писать на ассемблере, но для переносимости / ремонтопригодности я использую инстринсики NEON. Этот код должен быть как можно более быстрым, поэтому я использую свой...
2281 просмотров
schedule 01.03.2023