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

8-битная операция сдвига в AVX2 со сдвигом по нулям
Есть ли способ перестроить инструкцию _mm_slli_si128 в AVX2, чтобы сдвинуть регистр __mm256i на x байтов? Кажется, что _mm256_slli_si256 просто выполняет два _mm_slli_si128 на [127: 0] и [255: 128]. Левая смена должна работать на...
2974 просмотров
schedule 21.02.2022

AVX2 медленнее, чем SSE на Haswell
У меня есть следующий код (обычный, SSE и AVX): int testSSE(const aligned_vector & ghs, const aligned_vector & lhs) { int result[4] __attribute__((aligned(16))) = {0}; __m128i vresult = _mm_set1_epi32(0); __m128i v1, v2, vmax;...
6086 просмотров
schedule 07.02.2024

Проблемы с _mm_i32gather_ps
Я вручную оптимизирую некоторый код, используя инструкции AVX. В какой-то момент я хочу собрать несколько чисел с плавающей запятой из (невыровненного) массива с помощью _mm_i32gather_ps(), потому что они лежат в случайных позициях (не смежные)....
721 просмотров
schedule 10.03.2023

Инструкция по сбору AVX2
Когда я использую Visual Studio для создания инструкций сбора AVX2 с помощью встроенного компилятора, он не вставляет инструкции VXORPS, чтобы разорвать зависимость между предыдущей инструкцией, которая записывает этот регистр YMM, и сбором. Однако...
349 просмотров
schedule 27.11.2023

Многомерные проблемы с выравниванием типов данных __m256i
Я надеюсь, что кто-то сможет помочь с этой проблемой, которая беспокоит меня уже более часа. У меня есть этот код (он на C): #include <immintrin.h> void test_vectors(__m256i state[5][2]); void test() { __m256i state[5][2]; for...
119 просмотров
schedule 02.02.2024

транспонировать 64-битные элементы, используя только avx, а не avx2
Я хочу реализовать 64-битную операцию транспонирования, используя только avx, а не avx2. Он должен сделать это: // in = Hh Hl Lh Ll // | X | // out = Hh Lh Hl Ll Вот как это будет выглядеть с avx2: #define SIMD_INLINE...
343 просмотров
schedule 02.06.2023

Как обнаружить Xeon Phi (Приземление рыцарей)
Инженеры Intel написали, что мы должны использовать VZEROUPPER / VZEROALL, чтобы избежать дорогостоящего перехода в состояние без VEX на всех процессорах, включая будущий процессор Xeon, но не на Xeon Phi: https://software.intel.com/pt-br/node/704023...
290 просмотров
schedule 18.04.2022

Полное использование трубопроводов на озере Каби
(Последующий обзор кода вопрос здесь с более подробной информацией о контексте этой петли.) Окружающая среда: виндовс 7 х64 Сообщество VS 2017 Ориентация кода x64 на Intel i7700k (kaby lake) Я не пишу много кода на ассемблере, а...
332 просмотров

Самый быстрый способ распаковать 8-битные из 32-битных значений (__m256i) в __m256 с помощью AVX2
У меня есть array под названием A , который содержит 32 unsigned char значения. Я хочу распаковать эти значения в 4 __m256 переменных с помощью этого правила, предполагая, что у нас есть индекс от 0 до 31 относительно всех значений из A ,...
268 просмотров
schedule 14.07.2022

Эффективная реализация log2 (__ m256d) в AVX2
SVML __m256d _mm256_log2_pd (__m256d a) недоступен в других компиляторах, кроме Intel, и они говорят, что его производительность снижается на процессорах AMD. В Интернете есть некоторые реализации, указанные в AVX встроенные функции журнала...
2942 просмотров
schedule 11.01.2023

Эффективный (на Ryzen) способ извлечения нечетных элементов __m256 в __m128?
Есть ли внутренний или другой эффективный способ переупаковки 32-разрядных компонентов с высоким / низким разрядом 64-разрядных компонентов регистра AVX в регистр SSE? Решение с использованием AVX2 в порядке. Пока я использую следующий код, но...
494 просмотров
schedule 30.11.2023

SIMD: регистрирует изменение значения во время выполнения
Так что в моем коде в данный момент происходит что-то странное, речь идет о следующем регистре __m256i local , присвоенном при вычислении где-то, а также __m256i mask , который не имеет отношения к локальному. Где выполняется следующее:...
93 просмотров
schedule 25.11.2022

Как преобразовать 24-битный rgb в 32-битный с помощью avx2?
Я сделал это с SSSE3, теперь мне интересно, можно ли это сделать с AVX2 для лучшей производительности? Я дополняю 24-битный rgb одним нулевым байтом, используя код из Fast 24-битный массив -> преобразование 32-битного массива? . static...
518 просмотров
schedule 08.02.2024

Как избежать ошибки AVX2, когда размерность матрицы не кратна 4?
Я сделал программу умножения матрицы на вектор, используя AVX2, FMA на C. Я скомпилировал, используя GCC ver7 с -mfma, -mavx. Однако я получил сообщение об ошибке "неверная контрольная сумма для освобожденного объекта - объект, вероятно, был...
96 просмотров
schedule 24.03.2024

Задержка и пропускная способность инструкций AVX2
Меня интересуют свойства производительности следующих встроенных функций/инструкций: _mm256_andnot_si256 / vpandn _mm256_and_si256 / vpand _mm256_cmpgt_epi32 / vpcmpgtd и некоторые другие. Но, к сожалению, Руководство по...
544 просмотров
schedule 15.12.2023

Алгоритм подсчета столбцов AVX2 по каждому битовому столбцу отдельно
Для проекта, над которым я работаю, мне нужно подсчитать количество установленных битов на столбец в разорванных PDF данных изображения. Я пытаюсь получить общее количество битов набора для каждого столбца во всем задании PDF (все страницы)....
255 просмотров
schedule 31.05.2023

conda install Tensorflow 2.1 с mkl (поддержка avx/avx2) не работает
Я использовал tensorflow 2.0 с mkl (оптимизация avx/avx2) и не имел никаких проблем. Вчера я обнаружил, что tf 2.1 доступен на анаконде, поэтому я обновляю его до последней версии. однако после обновления tf жалуется, что «Ваш ЦП поддерживает...
482 просмотров
schedule 12.10.2023

Загрузить вектор в регистр AVX2 с несовпадающим размером
Предположим, у меня есть вектор двойников C ++ std, который должен быть загружен в регистр AVX2. Это можно просто сделать с помощью команды _mm256_load_pd(&vector1[0]) . Вектор может иметь любой размер и не должен быть кратным 4. Каким будет...
197 просмотров
schedule 01.01.2023

Как наиболее эффективно сохранить часть __m128i / __ m256i, игнорируя при этом некоторое количество элементов с начала / конца
Мой процессор Intel 9700K. У меня есть __m128i или __m256i , содержащие char , short или int . Мне нужно написать store функцию, которая игнорирует заданное количество элементов с начала, с конца или одновременно с начала и с конца....
305 просмотров
schedule 20.07.2023

Найти Абсолют в AVX
В одном из решений он нашел abs(inp) для векторов AVX, например: __m256 sign_bit = _mm256_set1_ps (-0.0f); __m256 inp_abs = _mm256_andnot_ps (sign_bit, inp); Какая за этим логика? SSE/AVX: выберите один из двух векторов с плавающей запятой...
56 просмотров