LINUX.ORG.RU
ФорумTalks

Размышления про x86_64


0

0

Как здесь утверждает Silvy generic сборка для x86_64 дистрибутивов включает в себя такие флаги:

x86_64: -fomit-frame-pointer -msse2 -mfpmath=sse без поддержки lahf_lm

т.е. выходит, что если я соберу, скажем систему (Gentoo) для 32-х розрядной платформы, с этими же флагами + добавлю некоторые свои, то буду иметь гораздо больше пользы в плане быстродействия, чем у x86_64? И удел x86_64 только для кодирования видео и более 4 Гб памяти?

Ответ на: комментарий от iZEN

Ну как бы раньше была [amd64] теперь, в свете тех событий, что не только amd поддерживает 64-х разрядные инструкции, принято называть именно x86_64

материал

ucalculus
() автор топика

> более 4 Гб памяти

вот вся соль. сервера уже давно перешагнули для себя этот барьер, десктопы - скоро перешагнут.

Komintern ★★★★★
()
Ответ на: комментарий от Komintern

> сервера уже давно перешагнули для себя этот барьер, десктопы - скоро перешагнут

Мой десктоп стоит на месте.

ip1981 ☆☆
()

не только в это дело

в 64 битной режиме мак ось например часть памяти ядра делает доступной в user space.

так же, переходя в режим ядра, она не переключает память виртаульную память.

А в 32 битном режиме именно переключает, чтоб программе было доступно все 4 Гб.

В линухе вроде так же

namezys ★★★★
()

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

смотрите под свои нужды, тут все по разному очень, что-то быстрее, что-то медленнее. сравнений в сети полно, единственное я бы сделала различия в обзорах где сравниваются процессоры Intel , AMD, Intel Atom
( кстати если найдете сравнение атома в 32 и 64 - дайте ссылочку пожалуйста, а то мне только 1 сравнение попадалось, и то на венде )
В случае Intel Core2+ за счет Macrofusion (r) так 32 битные _отдельные_ приложения могут работать гораздо быстрее чем в 64 бит режиме при отсутствии macrofusion.

Sylvia ★★★★★
()
Ответ на: комментарий от ucalculus

AMD64.

>Ну как бы раньше была [amd64] теперь, в свете тех событий, что не только amd поддерживает 64-х разрядные инструкции, принято называть именно x86_64

Набор инструкций AMD64 существует и сейчас. Intel'овские процессоры поддерживают именно этот набор инструкций, но во избежание юридических проблем переименовали его в EM64T. Доходит до смешного, я встречал рекомендации для программирования EM64T'шного процессора читать документацию от AMD, потому что то же самое, только понятнее.

Camel ★★★★★
()
Ответ на: AMD64. от Camel

да интел вообще все запутали...

Intel-64 (R) самое гениальное название, очень похоже на IA-64 (Itanium),
а еще если учесть то , что x86 называется IA-32

x86_64 (нейтральный наиболее часто используемый вариант)
x86-64 (VIA)
x64 (пару раз было)
amd64
EM64T

Sylvia ★★★★★
()
Ответ на: комментарий от madgnu

Фигасе написал :) Раньше так Intel64 называли.

madgnu ★★★★★
()

>иметь гораздо больше пользы в плане быстродействия, чем у x86_64?

Есть куча сравнительных бенчмарков, все зависит от задач. Потенциально, в режиме 64 еще и регистров больше.

И удел x86_64 только для кодирования видео и более 4 Гб памяти?


В 32 без PAE ты и 4 никогда не увидишь. А на типичном сервачке с raid-контроллерами так и 2 с копейками дай б-г останется.

madcore ★★★★★
()
Ответ на: комментарий от madcore

ЗЫЖ и да, на amd по скорости все немного не так, как у intel

madcore ★★★★★
()
Ответ на: комментарий от ip1981

>Мой десктоп стоит на месте

Передавай ему привет. В общем-то для большинства основных нужд столько памяти не нужно, но уже современные игрульки погонять да винду со свистоперделками поставить - вот суммарно 4 гигабайта и набежит.

Gary ★★★★★
()
Ответ на: комментарий от Sylvia

> В случае Intel Core2+ за счет Macrofusion (r) так 32 битные _отдельные_ приложения могут работать гораздо быстрее чем в 64 бит режиме при отсутствии macrofusion.

а можно для общего развития побольше

namezys ★★★★
()
Ответ на: комментарий от Xellos

>x64 - это винда себя так называет.

Да ладно! Полнейшая же безграмотность. Пруф? А то на офсайте всюду вижу только 64-bit.

KRoN73 ★★★★★
()
Ответ на: комментарий от namezys

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

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

хотя обзоры обзорами, а в тестах gzip и bzip2 , lzma сжатия
64 битный вариант (собраный обычным gcc просто с -O2) работал наравне (да, именно одинаково) с 32 битными версиями, но собраными ICC с profile guided optimization, хотя PGO там дает не более 5-7% по сравнению с gcc -O2

Sylvia ★★★★★
()

Ну рынок намекает, что х86 уже свое отжил, в плане десктопа.

Deleted
()
Ответ на: комментарий от namezys

На счет macrofusion и гораздо - преувеличение, имхо

madcore ★★★★★
()
Ответ на: комментарий от namezys

способность выполнить сразу несколько инструкций за 1 цикл
как правильно заметил madcore , маркетологами важность этого несколько преувеличена, хотя польза все ж таки есть, а может просто у интел 64 битный режим в целом хуже реализован )

Sylvia ★★★★★
()
Ответ на: комментарий от namezys

http://www.fcenter.ru/forprint.shtml?online/articles/hardware/processors/18465

Ъ:

Как известно, технология Macrofusion – это одна из ключевых особенностей новой микроархитектуры Core, широко разрекламированная маркетологами Intel. Эта технология направлена на увеличение числа исполняемых процессором за такт команд и заключается в том, что ряд пар связанных между собой последовательных x86 инструкций, таких как сравнение со следующим за ним условным переходом, представляются внутри процессора одной микроинструкцией. Такая микроинструкция рассматривается планировщиком и выполняется на исполнительных устройствах как одна команда. Этим путём достигается увеличение темпа исполнения кода, позволяющее, при удачном стечении обстоятельств, обрабатывать процессору до 5 команд за такт.

Однако неработоспособность Macrofusion в 64-битном режиме вряд ли может драматически повлиять на скорость работы процессора. В идеальном случае, при наличии в исходном коде одной инструкции условного перехода на каждые пять x86 команд, и при попадании всех этих пяти последовательных инструкций в 16-байтовую выборку, обрабатываемую процессором за один такт, теоретическое ускорение составит 25%. Но в реальных условиях данная технология даёт устойчивый положительный эффект лишь при соблюдении целого ряда условий. Как минимум потому, что данная частота условных переходов на практике, естественно, не встречается. Более того, технология Macrofusion эффективна только при средней длине инструкций в коде не более 4 байт. В результате, по оценке специалистов, данная технология сама по себе вряд ли может приносить выигрыш в быстродействии более 3-5%. Иными словами, одно лишь отсутствие технологии Macrofusion при активации EM64T не может служить поводом для паники: на производительность она влияет не так уж и сильно.

madcore ★★★★★
()
Ответ на: комментарий от Sylvia

> x64 (пару раз было)

емнип, это обозначение используют только мс и санки

overmind88 ★★★★★
()
Ответ на: комментарий от madcore

То есть в 32битном режиме оно не работает, потому что так не бывает, а в 64битном потому что нафиг не нужно? А за что мы платим интелю наши деньги?

Xellos ★★★★★
()
Ответ на: комментарий от Xellos

за доширак, который маркетологи Интел будут вешать на уши :)

Sylvia ★★★★★
()
Ответ на: комментарий от namezys

>хм. мне кажется, что оптимизация при компиляции даст прирост более сильный, чем при исполнении

О оптимизации при исполнении в данном контексте речи не ведется.
Просто есть 4 исполнительных блока, в один из которых могут пролезть сразу 2 определенные инструкции(сравнение/условный переход).

madcore ★★★★★
()
Ответ на: комментарий от namezys

> побольше

http://forum.ixbt.com/print/0008/020697.html
Я уже много раз разъяснял, что это не «ограничение просто так». И вообще не ограничение. Это, наоборот, «окно возможностей» в 32-битовом режиме. В 64-битовом предекодер работает по более сложному алгоритму, разбирая более длинную инструкцию, у которой код операции «приращён» слева префиксом REX. В 32-битовом код операции не удлиняется, и предекодер может успеть сделать дополнительную работу. Вот они и решили нагрузить его объединением инструкции, а заодно и похвастаться.

JustGuest
()

>И удел x86_64 только для кодирования видео и более 4 Гб памяти?

Кстати, всегда было интересно
у меня 8Gb памяти, i386-ядро, все работает ЧЯДНТ?

ist76 ★★★★★
()
Ответ на: комментарий от ist76

>В чем это выражается?

Ну, если у тебя PAE (а что-то другое представить сложно), то это потеря 15-20% скорости.

KRoN73 ★★★★★
()

Не знаю что утверждает Silvy, но

1) -fomit-frame-pointer во всех >= GCC 4.0 делает код медленней и больше, чем без него

2) -msseXXX опции при использовании соответственного march= НЕ нужны

3) -mfpmath=sse и march=my_super_cpu практически не влияют на скорость 95% приложений

Но вы жуйте кактус дальше.

tempuser002
()
Ответ на: комментарий от madcore

>Как известно, технология Macrofusion – это одна из ключевых особенностей новой микроархитектуры Core, широко разрекламированная маркетологами Intel.

Ну что за бред?
Макрооперации впервые появились в Athlon 64 и преподносились маркетологами AMD как супер-инновационная модель исполнения кода: «x86_64-инструкция анализируется и разбивается на микроинструкции RISC, некоторые из которых, если это возможно, объединяются в макрооперацию (MacroOP), которая выполняется за один такт процессора.», — не дословно но близко к тексту. Ещё журнал КомпьютерПресс в своё время подробно объяснял, как это всё происходит в новом процессоре AMD, пока окончательно не подпал под маркетинговое влияние Intel и не умерил пыл в отношении конкурента.

iZEN ★★★★★
()
Ответ на: комментарий от tempuser002

>1) -fomit-frame-pointer во всех >= GCC 4.0 делает код медленней и больше, чем без него
Ничего себе. А можно ссылку на тесты? Для x86_64 по идее эта опция включается автоматически.

eugeneblack
()
Ответ на: комментарий от KRoN73

> Ну, если у тебя PAE (а что-то другое представить сложно), то это потеря 15-20% скорости.

какая разница для user space режима?

namezys ★★★★
()
Ответ на: комментарий от namezys

Ну еще вроде как размер одного процесса в памяти не более 2 Гб. Пока для десктопов таких не встречал.

ucalculus
() автор топика
Ответ на: комментарий от iZEN

Это якобы тонкий троллинг?
х86-инструкции преобразуются декодером в набор risk-подобных еще со времен 486
А «макро-инструкции» были в незопамятные времена, когда одну инструкцию приходилось «микрокодом» заменять.

madcore ★★★★★
()
Ответ на: комментарий от KRoN73

>Ну, если у тебя PAE (а что-то другое представить сложно), то это потеря 15-20% скорости.

Почему бы точно не указать, где именно потеря?

madcore ★★★★★
()
Ответ на: комментарий от ucalculus

Размер адресуемого виртуального пространства одного процесса 4 Гб.

Но это не мешает использовать все 8 Гб (например у меня). При чем все 8 Гб использует 32 битное ядро.

namezys ★★★★
()
Ответ на: Microsoft Research. от Camel

>>x64 (пару раз было)

Самым безграмотным обозначением пользуются в Microsoft.


Ляликс и на этот раз отстал, только второе место по тупости.

х86_64

ansi ★★★★
()
Ответ на: комментарий от Sylvia

имеется N280 на котором можно погонять тесты, но он как я понимаю 32бита. так что смысл теряется, если смысл есть, то какие тесты погонять?

qnikst ★★★★★
()
Ответ на: комментарий от madcore

>Это якобы тонкий троллинг?

Если бы.

На полном серьёзе маркетологи AMD заявляли, что они сделали революцию в процессоростроении — тогда, когда у Intel был только Pentium IV, а из 64-битных был только Itanium.

iZEN ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.