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

1 ответ

Только что попробовал второе решение, отлично работает на одном из моих компьютеров, но не удалось другого, возможно, причина старой версии GCC.

ужен такой встроенный код сборки: у меня естьпара(так, это сбалансировано) операции push / pop внутри сборкиУ меня также есть переменная в памяти (так, не регистр) в качестве вводанравится: __asm__ __volatile__ ("push %%eax\n\t" // ... some ...

2 ответа

Да, L1D кэши взаимодействуют друг с другом (через L3 в процессорах Intel), используя MESI. Смотрите мой ответ для более подробной информации.

те предположим, что 2 ядра пытаются записать разные значения в один и тот же адрес ОЗУ (1 байт), в один и тот же момент времени (плюс-минус эта) и без использования каких-либо взаимосвязанных инструкций или барьеров памяти. Что происходит в этом ...

1 ответ

Это зависит от того, насколько велики ваши массивы: если массивы сопоставимы или меньше, чем размер LLC, то вы наверняка получите некоторую выгоду, если будете делать что-то задом наперед, поскольку разумная часть данных последней обработки может находиться в кэше. (но это также осложняется новыми функциями LLC, которые пытаются обнаружить потоковые нагрузки и изменить политику замены кэша при их обнаружении). Более общий подход к этой работе - просто заблокировать вашу обработку: вместо того, чтобы выполнять каждый этап целиком, попробуйте чередовать ...

аюсь векторизовать цикл, вычисляя точечное произведение больших векторов с плавающей точкой. Я вычисляю это параллельно, используя тот факт, что CPU имеет большое количество регистров XMM, например: __m128* A, B; __m128 dot0, dot1, dot2, dot3 = ...

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

1 ответ

 не позволяет вам внести необходимые изменения. Вот почему формулировка первой части звучит так, будто я не согласен с тем, что вы сказали. Во всяком случае, существенное ограничение, ИМО.

зрядный процессор (amd64) поддерживает 32-разрядные инструкции Intel в режиме совместимости. Кроме того, 64-битная установка Linux позволяет запускать ELF, содержащие 32-битные инструкции, если в заголовке ELF указано, что это ...

3 ответа

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

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

1 ответ

 что-то это становится менее важным.

отрим следующую сборку x86-64: inner: ... ret outer: .top: call inner dec rdi jnz .top retФункцияouter просто неоднократно делаетcall к функцииinner (чье тело не показано - оно может быть пустым). Делает сериюcall инструкции вouterи ...

1 ответ

 этот ряд заканчивается рядом длины

ал проект в ASM о треугольнике Паскаля, используя NASM поэтому в проекте нужно рассчитать паскаль треугольник от линии 0 до линии 63 Моя первая проблема - где хранить результаты расчетов -> память Вторая проблема, какой тип памяти я использую ...

7 ответов

оптимизированная сборка

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

3 ответа

).

аюсь измерить время выполнения некоторых команд в c ++ с использованием физических часов, но столкнулся с проблемой, заключающейся в том, что процесс считывания измерения с физических часов на компьютере может занять много времени. Вот ...

2 ответа

Я не пробовал это на Годболте, но ты мог.

аюIDA Pro Book [https://nostarch.com/idapro2.htm], На странице 86, обсуждая соглашения о вызовах, автор показывает пример соглашения о вызовах cdecl, которое устраняет необходимость для вызывающей стороны очищать аргументы из стека. Я ...