Результаты поиска по запросу "simd"
Переменная может использоваться с обеих сторон умножения, поэтому вы должны быть особенно осторожны в отношении соглашения, которое вы используете.
ентация Apple по «Работе с матрицами» не только использует противоречие между основными столбцами и основными строками, но и усугубляет путаницу, приводя примеры «построения» матрицы преобразования и «матрицы вращения» в 2D. Перевести матрицу в ...
@PeterCordes Должен ли я превратить этот ответ в вики сообщества, чтобы вы могли вставить свой ответ здесь? К сожалению, я не могу не принять мой ответ.
у некоторыеAVX код и мне нужно загрузить из потенциально невыровненной памяти. Я сейчас загружаю 4двойникиследовательно, я бы использовал внутреннюю инструкцию _mm256, _loadu_pd [https://software.intel.com/en-us/node/524102]; код, который ...
@PeterCordes Иногда код становится более понятным, когда вы пишете константы в виде двоичного файла. Это не тот случай, я признаю :-).
у преобразовать 8-битное целое число в массив размером 8 с каждым значением, содержащим битовое значение целого числа. Например: у меня естьint8_t x = 8; Я хочу преобразовать это вint8_t array_x = {0,0,0,0,1,0,0,0}; Это должно быть сделано ...
Неоптимизированный макро-путь связан с тем, что некоторые инструкции требуют немедленного постоянного аргумента, который в противном случае было бы проблематичным получить при -O0 (необходимо встроить функцию, а затем распространить значение).
инство компиляторов C ++ поддерживают инструкции SIMD (SSE / AVX) с такими интрижками, как _mm_cmpeq_epi32Моя проблема в том, что эта функция не помечена какconstexprхотя "семантически" нет причин, чтобы эта функция неconstexpr так как это ...
@PeterCordes По словам Агнера, маскировка слиянием бесплатна при приземлении Рыцарей (за вычетом дополнительной зависимости). Но он не прокомментировал Скайлэйк. Я не использую маскировку достаточно, чтобы знать. Я не могу представить, что все по-другому.
тим, у вас есть значения вrax а такжеrdx Вы хотите загрузить вxmm регистр. Одним из способов будет: movq xmm0, rax pinsrq xmm0, rdx, 1Это довольно медленно, хотя! Есть ли способ лучше?
микро-слияния. Глупые, глючные инструменты с закрытым исходным кодом.) Во всяком случае, это поднимает планку еще больше, чтобы любой другой подход конкурировать.
у ускорить следующую операцию с инструкциями AVX2, но я не смог найти способ сделать это. Мне дали большой массивuint64_t data[100000] из uint64_t и массивunsigned char indices[100000] байтов. Я хочу вывести массивuint64_t Out[256] где i-е ...
меньший диапазон. Это тот же трюк в обратном порядке, который вы используете для log (x): извлеките экспоненту ввода, чтобы получить log2 (integer_part (x)).
эффективное (быстрое) приближение экспоненциальной функции, работающей с элементами AVX (плавающая точка одинарной точности). А именно -__m256 _mm256_exp_ps( __m256 x ) без SVML. Относительная точность должна быть примерно равна ~ 1e-6 или ~ 20 ...
Более того, вы можете использовать внешние инструменты для разборки скомпилированного бинарного файла, например, objdump или более профессиональный ida.
исал некоторый код для математики, и он должен идти быстро, поэтому мне нужно использовать инструкции SSE и AVX. Я собираю его с g ++ и использую флаги-O3 а также-march=native, так что я думаю, что он использует инструкции SSE и AVX, но я не ...
директивы ассемблера (16-битные блоки) вместо
ли (быстрый) способ выполнить биты, обратные 32-битным значениям int в регистре avx2? Например. _mm256_set1_epi32(2732370386); <do something here> //binary: 10100010110111001010100111010010 => 1001011100101010011101101000101 //register contains ...
stackoverflow.com/questions/41819514/...
звестная проблемачто смешивание инструкций в кодировке VEX и инструкций, не относящихся к VEX, имеет штраф, и программист должен знать об ...