Публикации по теме 'simd'


В 2021 году все еще будет существовать огромная разница в производительности между JavaScript и C ++ для привязки к процессору ...
Если вы думаете, что это шутка, то эта история для вас Совсем недавно я опубликовал новый плагин для привязок JS к GDAL, который я поддерживаю в настоящее время для импорта и экспорта N-мерных массивов в scijs . scijs , хотя и далеко отстающий от своего тезки на Python, в настоящее время набирает все большую популярность благодаря общему успеху JavaScript и V8. Я всегда знал, что производительность ввода-вывода Node.js непревзойденная по сравнению с другими языками сценариев...

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

Реализация быстрого счетчика в коде с параллельными битовыми нарезками
Я ищу оптимизированную реализацию счетчика, вероятно, похожую на код Грея, которая позволит мне быстро перемещаться по числам в массиве с битами. Предполагая, что у меня есть массив: _m256 header[640]; Мне нужно постоянно менять счетчик...
303 просмотров
schedule 28.11.2022

Существуют ли SIMD-инструкции для ускорения вычисления контрольной суммы?
Мне нужно будет написать очень простую функцию контрольной суммы, например: char sum(const char * data, const int len) { char sum(0); for (const char * end=data+len ; data<end ; ++data) sum += *data; return sum; } Это...
1736 просмотров
schedule 07.11.2023

Эффективное умножение вектора больших комплексных чисел на скаляр C++
В настоящее время я пытаюсь наиболее эффективно выполнить умножение на месте массива комплексных чисел (память выровнена так же, как std::complex, но в настоящее время используется наш собственный ADT) на массив скалярных значений, который является...
2413 просмотров

Самый быстрый способ выполнить горизонтальную векторную сумму SSE (или другое сокращение)
Дан вектор из трех (или четырех) чисел с плавающей запятой. Как быстрее всего их суммировать? Всегда ли SSE (movaps, shuffle, add, movd) быстрее, чем x87? Стоят ли инструкции горизонтального добавления в SSE3? Сколько стоит переход на FPU,...
35457 просмотров

SIMD (AVX) сравнить
Как называется встроенная функция gcc для сравнения __m256 и __m256i (набор инструкций AVX)?
6730 просмотров
schedule 14.09.2022

Предоставляет ли .NET Framework 4.5 поддержку SSE4/AVX?
Кажется, я слышал об этом, но не знаю, где. upd: я рассказал о JiT
2755 просмотров
schedule 01.11.2022

Modulo 2 * Pi с использованием SSE / SSE2
Я все еще новичок в использовании SSE и пытаюсь реализовать по модулю 2*Pi для входов с двойной точностью порядка 1e8 (результат которого будет введен в некоторые векторизованные вычисления триггеров). Моя текущая попытка кода основана на идее,...
1480 просмотров
schedule 19.10.2022

Массивы, инициализированные как `float [10] [10]`, уже выровнены по памяти для SIMD / SSE?
Мне нужно оптимизировать умножение матриц с помощью SIMD / Intel SSE. Приведенный пример кода выглядит так: *x = (float*)memalign(16, size * sizeof(float)); Однако я использую C ++ и [found that][1] I вместо malloc (перед выполнением...
1041 просмотров
schedule 18.01.2024

Можно ли с помощью SIMD оптимизировать подсчет совпадений байтов между двумя строками?
Профилирование предполагает, что эта функция является настоящим узким местом для моего приложения: static inline int countEqualChars(const char* string1, const char* string2, int size) { int r = 0; for (int j = 0; j < size; ++j) {...
1033 просмотров
schedule 09.11.2023

Использование XMVECTOR из DirectXMath в качестве члена класса вызывает сбой только в режиме выпуска?
Я пытался использовать XMVECTOR в качестве члена класса для ограничивающей рамки, так как я делаю много вычислений, но я использую XMFLOAT3 только один раз за кадр, поэтому у ограничивающей рамки есть метод, который дает мне его центр в XMFLOAT3 , в...
1521 просмотров
schedule 02.04.2024

Попытка добавить __m128 с помощью маски и в программировании SSE
Я пытаюсь использовать результат операции сравнения для добавления к переменной SSE. Я только что понял, что при использовании операции _mm_cmplt_ps , если результат верен, он возвращает NAN, потому что 0xffffffff не может быть представлен, что мне...
796 просмотров
schedule 23.01.2024

Как заставить Visual C++ векторизовать этот цикл (код ошибки 1200)?
Я пытаюсь, чтобы VC++ 2012 автоматически векторизовал цикл, который выглядит примерно так (на самом деле происходят интересные вычисления, но они опущены с целью сделать вопрос максимально точным). parameters: int period; unsigned char*...
2296 просмотров
schedule 13.05.2024

SSE: reinterpret_cast‹__m128*› вместо _mm_load_ps
Я нахожусь в процессе кодирования простой функции свертки на С++, начиная с самой простой свертки "скользящего окна" с обычными продуктами (пока без БПФ), вплоть до SEE, AVX и, возможно, OpenCL. Однако я столкнулся с проблемой с SSE. Мой код...
1843 просмотров
schedule 08.10.2022

Инструкции x64 ymm / SIMD / vector, где регистр ymm указан в регистре?
Существуют ли какие-либо инструкции регистров SIMD / вектора, где регистр ymm указан в общем регистре (или регистре SIMD), а не в самой инструкции? По сути, я пытаюсь написать функцию, которая сохраняет любую серию последовательных регистров ymm в...
1841 просмотров
schedule 28.10.2022

Кросс-платформенная библиотека SIMD с API, аналогичным Accelerate Framework?
Я использую Accelerate Framework для повышения производительности аудиомикшера с очень хорошими результатами на iOS и OSX. Я пытаюсь добиться аналогичных результатов на других платформах и архитектурах процессоров - обычные подозреваемые (ARM...
560 просмотров
schedule 28.09.2022

SIMD / SSE: краткое точечное произведение и краткое максимальное значение
Я пытаюсь оптимизировать точечный продукт двух массивов в стиле c: contant и small size и типа short. Я прочитал несколько документов о встроенных функциях SIMD и множество сообщений / статей в блогах об оптимизации точечных продуктов с...
516 просмотров
schedule 11.01.2024

Можно ли создавать большой массив значений AVX / SSE?
Я распараллеливаю определенную проблему динамического программирования, используя инструкции AVX2 / SSE. В основной итерации моих вычислений я вычисляю столбец в матрице, где каждая ячейка представляет собой структуру регистров AVX2 ( _m256i ). Я...
967 просмотров
schedule 18.09.2022

Почему я получаю эту ошибку компиляции с GCC 5 и cilk-plus?
По какой-то причине cilk_spawn не работает со встроенными функциями x86. Я получаю сообщение об ошибке каждый раз, когда пытаюсь объединить их в теле одной и той же функции. (Обратите внимание, что cilk_for работает нормально). Если я удаляю все...
1100 просмотров
schedule 11.10.2022

Масштабирование значений байтовых пикселей (y = ax + b) с помощью SSE2 (как поплавки)?
Я хочу вычислить y = ax + b , где x и y — значение пикселя [т. е. байт с диапазоном значений 0–255], а a и b — число с плавающей запятой. Поскольку мне нужно применить эту формулу для каждого пикселя изображения, кроме того, a и b разные для...
1326 просмотров
schedule 27.02.2024

Загрузка вектора на границу массива в ARM NEON
Я пытаюсь оптимизировать некоторые алгоритмы обработки изображений для ARM с помощью встроенных функций NEON. Для некоторых фильтров необходимо загружать элементы в окрестности точки. Например, чтобы отфильтровать изображение в пикселях p[x] , мне...
607 просмотров
schedule 06.02.2024