0
голосов
0ответы
49 просмотров

Генератор случайных сигналов SIMD двойной точности с нормальным распределением для AVX, AVX2 и AVX512?

После некоторых исследований мне не удалось найти векторизованный генератор случайных чисел двойной точности (лучше всего было бы нормальное распределение), использующий AVX, AVX2 или AVX512. Как это можно / нужно сделать на C ++ для векторов ...
0
голосов
0ответы
41 просмотр

Как получить поддержку флага AVX512_FP16?

Мой процессор поддерживает всевозможные вещи -march = CPU [, + EXTENSION ...] генерировать код для CPU и EXTENSION, CPU является одним из: generic32, generic64, i386, ...
1
голосование
0ответы
47 просмотров

AVX512 Gather / Scatter, атомарность / псевдоним [дубликат]

Я пытаюсь векторизовать следующую программу: for (i = 0; i <N; i ++) {a = arr [i]; // арифметика по * a * здесь. count [a] ++; } Используя встроенные функции, это становится чем-то вроде: for (i = 0; i <N; i + = 8) ...
1
голосование
1отвечать
37 просмотров

Как правильно определить в CGo, поддерживает ли среда AVX-512?

CGo, похоже, удаляет определения препроцессора. Кто-нибудь еще сталкивался с этим? В моем другом коде C на той же машине это работает нормально. В CGo определение «__AVX2__» удаляется. ...
1
голосование
1отвечать
Просмотров: 43

Что лучше? mask_compress + store или mask_compressstoreu

Я использую sde (эмулятор Intel) для запуска кода avx512, и у меня нет реального оборудования для тестирования. По какой-то причине нет информации, которую я мог бы найти о сравнительной производительности между сжатием ...
2
голосов
1отвечать
59 просмотров

заполните zmm из двух ymms в C

Мне интересно, как лучше всего загрузить m512i из двух m256is с простой упаковкой (zmm0 = {ymm1, ymm0}). Я знаю, что ymm0 - это младшие биты zmm0, но не уверен, могу ли я использовать его в C, используя ...
1
голосование
0ответы
Просмотров: 43

Перестановки векторов AVX512 или AVX2, сгруппируйте элементы uint16 шагами по 16 (32 байта)

У меня в памяти 64 двухбайтовых (коротких) числа: 0 1 2 3 ... 63. Я хочу перетасовать их так, чтобы в памяти они выглядели так: 0 16 32 48 1 17 33 49 2 18 34 50 ... 15 31 47 63 Что самое главное ...
0
голосов
1отвечать
72 просмотра

Уменьшает ли регистр маски AVX512 время выполнения?

При выполнении операции AVX512 (с использованием встроенных функций) с регистром маски, влияет ли содержимое маски на производительность вычислений (задержку, пропускную способность, занятость портов, ...)? Для ...
1
голосование
0ответы
62 просмотра

Построчная перестановка матрицы с использованием инструкций SIMD

Я пытаюсь найти подходящий способ применения построчной перестановки матрицы с использованием встроенных функций SIMD (в основном AVX / AVX2 и AVX512). Проблема в основном в вычислении R = PX, где P - это ...
4
голосов
0ответы
81 просмотр

Является ли реализация AVX-512 внутреннего корня обратного куба характерной для Microsoft?

Я обнаружил, что копия zmmintrin.h из MSVC определяет функции для вычисления корня обратного куба 32-битного вектора с плавающей запятой __m512 и двойного вектора __m512d _mm512_invcbrt_ps (); _mm512_invcbrt_pd (); ...
0
голосов
0ответы
76 просмотров

Умножение 64-битных целых чисел с использованием производительности AVX2 и AVX-512

Я пытаюсь определить, является ли внутренняя последовательность _mm512_mullox_epi64 (основа AVX-512) существенно медленнее, чем аппаратное обеспечение _mm512_mullo_epi64 (AVX-512 Double-Word и Quad-Word ISA) --...
3
голосов
0ответы
129 просмотров

Повернуть все упакованные байты в регистре AVX2 / AVX-512 с минимальным кодом инструкции

Можно ли выполнять ротацию байтов с использованием инструкций AVX2 / AVX-512 менее чем за 5 инструкций? Ищу ответы в ассемблерном коде, так как я недостаточно знаком с внутренними функциями. В AVX-512 прямая ...
0
голосов
0ответы
53 просмотра

Как перетасовать значения в массиве и сохранить перетасованные значения в разные массивы с помощью AVX

Заранее спасибо за помощь. Мне нужно выполнить следующий шаблон тасования в массиве с данными uint16_t. Мой необработанный массив будет выглядеть следующим образом: 0 1 2 3 0 1 2 3 0 1 2 3 0 ...
0
голосов
0ответы
55 просмотров

Для компиляции встроенной Intel и обратной сборки, но не работает [дубликат]

Я использую Ubuntu 21.04 на процессоре Intel® Core ™ i3-6157U @ 2,40 ГГц × 4 в основной книге CHUWI. Я сделал этот исходный код и скомпилировал. #include <immintrin.h> __m512i test__mm512_add_epi8 (__m512i a, ...
1
голосование
0ответы
68 просмотров

Как распараллелить большой MatMul на заданной конфигурации многоядерного процессора? [закрыто]

Недавно на собеседовании меня попросили разработать подход к этой проблеме. Интервьюер сказал что-то о том, как это должно быть связано с памятью, пока мой результат выходил для вычисления ...