Результаты поиска по запросу "x86"
@Zboson: GPU mandelbrot, вероятно, не о масштабировании или его полезности, а скорее о хорошо известной и простой проблеме с очень высокой вычислительной интенсивностью / низкой пропускной способностью памяти. (И цепочка зависимости данных, которая может ограничивать ILP). На этой странице были и другие ориентиры, но мне нравится Мандельброт.
ли выполнить арифметику с плавающей запятой половинной точности на чипах Intel? Я знаю, как загружать / хранить / преобразовывать числа с плавающей запятой половинной точности [1], но я не знаю, как добавить / умножить их без преобразования в ...
@HadiBrais: не стесняйтесь пытаться ответить на вопрос более просто. Я могу занять немного больше времени, чтобы сделать более простое резюме. Но, как я уже сказал, я не знаю, спрашивает ли OP о чистых барьерах памяти в теоретической чистой / простой архитектуре, или же они на самом деле спрашивают о барьерах x86 на реальных процессорах x86, которые осложняются всеми этими проблемами. Я не уверен, как сделать это более ясным, чем ответ BeeOnRope на предыдущий вопрос OP, который IMO четко объяснил разницу между OoO exec и переупорядочением памяти.
ал разные вещи о том, как работает барьер памяти. Например, пользовательJohanответ вэтот вопрос [https://stackoverflow.com/questions/42714599/is-a-memory-barrier-an-instruction-that-the-cpu-executes-or-is-it-just-a-marker] говорит, что барьер ...
@RbMm мы тоже не удивлены, но это все равно неправильно.
тности, разрешено ли сравнивать адреса двух автоматических переменных в разных функциях следующим образом: sink.c #include <stdio.h> #include <stdlib.h> void sink(void *l, void *r) { puts(l == r ? "equal" : "not equal"); exit(0); ...
микро-слияния. Глупые, глючные инструменты с закрытым исходным кодом.) Во всяком случае, это поднимает планку еще больше, чтобы любой другой подход конкурировать.
у ускорить следующую операцию с инструкциями AVX2, но я не смог найти способ сделать это. Мне дали большой массивuint64_t data[100000] из uint64_t и массивunsigned char indices[100000] байтов. Я хочу вывести массивuint64_t Out[256] где i-е ...
@PeterCordes По словам Агнера, маскировка слиянием бесплатна при приземлении Рыцарей (за вычетом дополнительной зависимости). Но он не прокомментировал Скайлэйк. Я не использую маскировку достаточно, чтобы знать. Я не могу представить, что все по-другому.
тим, у вас есть значения вrax а такжеrdx Вы хотите загрузить вxmm регистр. Одним из способов будет: movq xmm0, rax pinsrq xmm0, rdx, 1Это довольно медленно, хотя! Есть ли способ лучше?
Спасибо, я понял. Я думал об этом. :)
рабатываю (NASM + GCC для ELF64)PoC [https://en.wikipedia.org/wiki/Proof_of_concept#Software_development]который использует гаджет-призрак, который измеряет время доступа к набору строк кэша ( FLUSH + ...
Эта таблица, вероятно, будет неверно предсказана в первый раз. После этого это может или не может, в зависимости от модели и силы косвенного предсказателя ветвления.
отрим следующий цикл в 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Это просто: что-то вычисляет ...
Я согласен с анализом @PeterCordes. Я забыл рассмотреть возможность «перезвонить».
лько я знаю, вызов функции действует как барьер компилятора, но не как барьер ЦП. Этотруководство [http://preshing.com/20120913/acquire-and-release-semantics/] говорит следующее: получение блокировки подразумевает семантику получения, в то ...
Удивительный ответ. Я ценю ссылку на таблицы Fogs, они отличный ресурс! Я принял ваш ответ - я поражен его полнотой!
етно это: mov %eax, %dsМедленнее чем mov %eax, %ebxИли они с одинаковой скоростью. Я исследовал онлайн, но не смог найти однозначного ответа. Я не уверен, что это глупый вопрос, но я думаю, что вполне возможно, что изменение регистра ...
L2 - это ДЕВЯТЬ, это общий L3, который входит в состав Intel начиная с Nehalem. Таким образом, выселение потенциально может быть вызвано давлением со стороны других ядерных структур.
у вас есть 64-байтовый буфер, который интенсивно читается / записывается, то, вероятно, он будет сохранен в L1; но есть ли способ заставить это поведение? Например, предоставьте одному ядру монопольный доступ к этим 64 байтам и запретите им ...