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

2 ответа

L2 - это ДЕВЯТЬ, это общий L3, который входит в состав Intel начиная с Nehalem. Таким образом, выселение потенциально может быть вызвано давлением со стороны других ядерных структур.

у вас есть 64-байтовый буфер, который интенсивно читается / записывается, то, вероятно, он будет сохранен в L1; но есть ли способ заставить это поведение? Например, предоставьте одному ядру монопольный доступ к этим 64 байтам и запретите им ...

1 ответ

 более эффективен в SKL, но в конечном итоге все изменилось. Я предполагал, что ранние уархи были более эффективными, но, возможно, нет.

ался найти в Google мой вопрос, но, честно говоря, не знаю, как кратко сформулировать вопрос. Предположим, у меня есть два потока в многоядерной системе Intel. Эти потоки работают на том же узле NUMA. Предположим, что поток 1 записывает в X один ...

1 ответ

Удивительный ответ. Я ценю ссылку на таблицы Fogs, они отличный ресурс! Я принял ваш ответ - я поражен его полнотой!

етно это: mov %eax, %dsМедленнее чем mov %eax, %ebxИли они с одинаковой скоростью. Я исследовал онлайн, но не смог найти однозначного ответа. Я не уверен, что это глупый вопрос, но я думаю, что вполне возможно, что изменение регистра ...

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

2 ответа

Я согласен с анализом @PeterCordes. Я забыл рассмотреть возможность «перезвонить».

лько я знаю, вызов функции действует как барьер компилятора, но не как барьер ЦП. Этотруководство [http://preshing.com/20120913/acquire-and-release-semantics/] говорит следующее: получение блокировки подразумевает семантику получения, в то ...

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Это просто: что-то вычисляет ...

1 ответ

Спасибо, я понял. Я думал об этом. :)

рабатываю (NASM + GCC для ELF64)PoC [https://en.wikipedia.org/wiki/Proof_of_concept#Software_development]который использует гаджет-призрак, который измеряет время доступа к набору строк кэша ( FLUSH + ...

1 ответ

@PeterCordes По словам Агнера, маскировка слиянием бесплатна при приземлении Рыцарей (за вычетом дополнительной зависимости). Но он не прокомментировал Скайлэйк. Я не использую маскировку достаточно, чтобы знать. Я не могу представить, что все по-другому.

тим, у вас есть значения вrax а такжеrdx Вы хотите загрузить вxmm регистр. Одним из способов будет: movq xmm0, rax pinsrq xmm0, rdx, 1Это довольно медленно, хотя! Есть ли способ лучше?

1 ответ

@RbMm мы тоже не удивлены, но это все равно неправильно.

тности, разрешено ли сравнивать адреса двух автоматических переменных в разных функциях следующим образом: sink.c #include <stdio.h> #include <stdlib.h> void sink(void *l, void *r) { puts(l == r ? "equal" : "not equal"); exit(0); ...

2 ответа

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

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

4 ответа

Вынуждают ли указатели функций очистить конвейер команд?

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