Результаты поиска по запросу "avx"

1 ответ

@PeterCordes Должен ли я превратить этот ответ в вики сообщества, чтобы вы могли вставить свой ответ здесь? К сожалению, я не могу не принять мой ответ.

у некоторыеAVX код и мне нужно загрузить из потенциально невыровненной памяти. Я сейчас загружаю 4двойникиследовательно, я бы использовал внутреннюю инструкцию _mm256, _loadu_pd [https://software.intel.com/en-us/node/524102]; код, который ...

1 ответ

 это 2 мопс. (И вызывает остановку перехода SSE / AVX на Haswell, но не Skylake). Кроме того, все эти операции являются частью цепочки зависимостей для изменяемого регистра, в отличие от установки значения в другом регистре и смешивания.

состоит в том, что я хотел бы собрать возвращенные значенияdouble в векторный регистр для обработки для машиныimm width вовремябезСохранение обратно в память первым. Конкретная обработка являетсяvfma с двумя другими операндами, ...

1 ответ

Удивительный ответ .. Спасибо, Питер.

аюсь профилировать мой код C ++ с помощью инструмента Perf. Реализация содержит код с инструкциями SSE / AVX / AVX2. В дополнение к этому код скомпилирован с-O3 -mavx2 -march=native флаги. я верю__memset_avx2_unaligned_erms функция ...

ТОП публикаций

2 ответа

Эта таблица, вероятно, будет неверно предсказана в первый раз. После этого это может или не может, в зависимости от модели и силы косвенного предсказателя ветвления.

отрим следующий цикл в x86: ; on entry, rdi has the number of iterations .top: ; some magic happens here to calculate a result in rax mov [array + rdi * 8], rax ; store result in output array dec rdi jnz .topЭто просто: что-то вычисляет ...

2 ответа

 микро-слияния. Глупые, глючные инструменты с закрытым исходным кодом.) Во всяком случае, это поднимает планку еще больше, чтобы любой другой подход конкурировать.

у ускорить следующую операцию с инструкциями AVX2, но я не смог найти способ сделать это. Мне дали большой массивuint64_t data[100000] из uint64_t и массивunsigned char indices[100000] байтов. Я хочу вывести массивuint64_t Out[256] где i-е ...

1 ответ

@Zboson: GPU mandelbrot, вероятно, не о масштабировании или его полезности, а скорее о хорошо известной и простой проблеме с очень высокой вычислительной интенсивностью / низкой пропускной способностью памяти. (И цепочка зависимости данных, которая может ограничивать ILP). На этой странице были и другие ориентиры, но мне нравится Мандельброт.

ли выполнить арифметику с плавающей запятой половинной точности на чипах Intel? Я знаю, как загружать / хранить / преобразовывать числа с плавающей запятой половинной точности [1], но я не знаю, как добавить / умножить их без преобразования в ...

3 ответа

 меньший диапазон. Это тот же трюк в обратном порядке, который вы используете для log (x): извлеките экспоненту ввода, чтобы получить log2 (integer_part (x)).

эффективное (быстрое) приближение экспоненциальной функции, работающей с элементами AVX (плавающая точка одинарной точности). А именно -__m256 _mm256_exp_ps( __m256 x ) без SVML. Относительная точность должна быть примерно равна ~ 1e-6 или ~ 20 ...

0 ответов

@IwillnotexistIdonotexist: Хорошо заметили. Я думаю, это означает, что вы можете получить одну широкую запись MMIO для смежных немаскированных элементов или две узкие. Но выполнение одного выровненного 8-байтового атомарного хранилища все же дает атомарность для 4-байтовых половинок, хотя для MMIO это не так. Поэтому я не думаю, что это исключает атомарность для каждого элемента, потому что специфичная для реализации часть может быть только объединением хранилищ элементов в более широкие и все еще атомарные хранилища.

отрим массив какatomic<int32_t> shared_array[], Что делать, если вы хотите SIMD векторизацииfor(...) sum += shared_array[i].load(memory_order_relaxed)?. Или искать в массиве первый ненулевой элемент или обнулять его диапазон? Это, вероятно, ...

0 ответов

github.com/WojciechMula/sse-popcount/blob/master/...

множения больших двоичных матриц (10Kx20K) я обычно преобразую матрицы в числа с плавающей запятой и выполняю умножение матрицы с плавающей запятой, так как умножение целочисленной матрицы выполняется довольно медленно (посмотрите ...

1 ответ

, но он поддерживает другие встроенные функции в моем коде.

тирую следующую простую функцию