Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Зависимость написания кода от процессора

292
18 июля 2005 года
Matush
726 / / 14.01.2004
Возник такой вот вопрос. Есть ли предпочтения при выборе процессора, если комп будет использываться для написания прог. Это не обязательно проги на асме.
Просто сегодня промелькнул разговор, что видишь ли продвинутые программеры используют строго процессоры Pentium, а про AMD и слышать не хотят.
Понятно что архитектура этих процов отличается, но как это влияет на ход выполнения программы?
279
18 июля 2005 года
bave
456 / / 07.03.2004
Ни архитектура, ни микроархитектура у них не отличаются.
Все они семейства x86 и микроархитектура последних
процов NetBurst.
Одинаковые наборы регистров
Одинаковые математические сопроцессоры сопросцессоры.
Ну вот на некоторых AMD процессорах отсутствует набор коман SSE2 - дополнительный набор команд
MMX.(а он тебе нужен!?!).
Вот мой селерон например хайперсрединг не подддерживает (чем я ничуть не огорчён).
--------------------------------------------
Ты сам толком определись чё ты собираешся делать,
а потом выбирай проц.
255
18 июля 2005 года
Dart Bobr
1.4K / / 09.04.2004
Цитата:
Originally posted by Matush
Возник такой вот вопрос. Есть ли предпочтения при выборе процессора, если комп будет использываться для написания прог. Это не обязательно проги на асме.
Просто сегодня промелькнул разговор, что видишь ли продвинутые программеры используют строго процессоры Pentium, а про AMD и слышать не хотят.
Понятно что архитектура этих процов отличается, но как это влияет на ход выполнения программы?


Если просто для написания, то есть если ты не заботишься об оптимизации то тогда можешь брать любой. Но, ИМХО, пень он и в Африке пень, а мы говорим именно опроцессорах а не об Атлонах ;). Да и еще именно Интел диктует на рынке свои условия.

356
18 июля 2005 года
molnij
159 / / 20.06.2000
Цитата:
Originally posted by Dart Bobr
Если просто для написания, то есть если ты не заботишься об оптимизации то тогда можешь брать любой. Но, ИМХО, пень он и в Африке пень, а мы говорим именно опроцессорах а не об Атлонах ;). Да и еще именно Интел диктует на рынке свои условия.


ну это спорный вопрос, 64-разрядных вентилей в x86 пока нет, так что здесь диктует AMD, с другой стороны из-за особенностей архитектуры у вентиля гораздо богаче инструментарий создания/отладки/оптимизации

255
19 июля 2005 года
Dart Bobr
1.4K / / 09.04.2004
Цитата:
Originally posted by molnij
ну это спорный вопрос, 64-разрядных вентилей в x86 пока нет, так что здесь диктует AMD, с другой стороны из-за особенностей архитектуры у вентиля гораздо богаче инструментарий создания/отладки/оптимизации


Есть и 64-разрядные пни :o Только я пока не могу представить задач требующих ТАКОЙ процессор. АМД просто гонит, пытается сделать их популярными. А рынок держит - Интел. Именно они заставляют переходить на PCIE.
ЗЫ. Кстати в последние время у АМД мануалы стали куда хуже чем раньше.

8.3K
19 июля 2005 года
_edge [tkm]
48 / / 04.04.2005
личное: амд в последнее время имеют большие
проблемы с теплоотводом. также, что конкретно
смущает -проблемы с частотной маркировкой.
указывается не реальная частота, а сравнительная.
хотя амд рулят не только в силу меньшей стоимости,
сколько в преимуществах (огромный кэш, что дает
больше, чем "никакой" размер кэша при накрученных
гигагерцах у интелов).

вообще: какой реальный смысл в 64 разрядах? оба
набора инструкций ia-64 и амд не то что разные
"меж друг другом", они разительно отличаются от
привычного большинству 32-bit assembly. кстати,
исходя из архитектурных отличий, ia-64 плохо
работает с 32 разрядами, эмулируя их. для амд64
инструкции младших моделей являются "родными".
255
19 июля 2005 года
Dart Bobr
1.4K / / 09.04.2004
Цитата:
Originally posted by _edge [tkm]
личное: амд в последнее время имеют большие
проблемы с теплоотводом. также, что конкретно
смущает -проблемы с частотной маркировкой.
указывается не реальная частота, а сравнительная.
хотя амд рулят не только в силу меньшей стоимости,
сколько в преимуществах (огромный кэш, что дает
больше, чем "никакой" размер кэша при накрученных
гигагерцах у интелов).

вообще: какой реальный смысл в 64 разрядах? оба
набора инструкций ia-64 и амд не то что разные
"меж друг другом", они разительно отличаются от
привычного большинству 32-bit assembly. кстати,
исходя из архитектурных отличий, ia-64 плохо
работает с 32 разрядами, эмулируя их. для амд64
инструкции младших моделей являются "родными".


Это почему же у пней кеш маленький? Мне лично ордного метра L2 вполне хватает. К тому же у Пней кеш 4-ассоциативный. Про 64-разрядные атлоны я не знаю, а в 32-разрядных только 2-ассоцативный. Такше пень, имхо, лучше.

2
19 июля 2005 года
squirL
5.6K / / 13.08.2003
спор интересный... :D
не частотой единой жив процессор ;) и уж тем более не разрядностью. теплоотвод как показатель качества - вообще бред, уж извините.
далее. то что оба процессора - х86, не значит, что они не отличаются архитектурой.
вот вам сайтик
http://www.aceshardware.com/list.jsp?id=4
почитайте, что тут написано, а потом кидайтесь аргументами. особо рекомендую статью
The Secrets of High Performance CPUs
это по поводу конструкций. что до написания кода в зависимости от процессора, то зависит и еще как. особую роль тут при заточке кода уделяется приницпу работы конвеера. скажем длинный конвеер эффективнее при малых ветвлениях кода. другой пример - оптимизация порядка команд по длинне под конкретный конвеер. нелюбимый Бобром Юров ( :) ) описывает такую оптимизацию в книге "Ассемблер. Специальный справочник".
292
19 июля 2005 года
Matush
726 / / 14.01.2004
Насколько мне известно пень64 может работать строго на 64 разрядах и строго на 32 разрядах (то есть в 64 разрядной системе 32 битное приложение незапустится и наоборот), а АМД64, может и на 64 разрядной системе запускать 32 разрядные приложения. Это, то что мне известно, но не подкреплено фактами :(

Есть еще такой вопрос. Будет ли отличаться откомпилированный код программы, если его откомпилили на АМД и на Intel, если в программе не использывались специфические моменты написания кода для конкретного процессора?
2
19 июля 2005 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by Matush
Есть еще такой вопрос. Будет ли отличаться откомпилированный код программы, если его откомпилили на АМД и на Intel, если в программе не использывались специфические моменты написания кода для конкретного процессора?



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

356
19 июля 2005 года
molnij
159 / / 20.06.2000
Цитата:
Originally posted by Matush
Насколько мне известно пень64 может работать строго на 64 разрядах и строго на 32 разрядах (то есть в 64 разрядной системе 32 битное приложение незапустится и наоборот), а АМД64, может и на 64 разрядной системе запускать 32 разрядные приложения. Это, то что мне известно, но не подкреплено фактами :(


м.... если честно, я не являюсь профессионалом в области архитектуры процессоров, но некоторые познания имеются, если кто-то меня исправит или дополнит - буду рад.
Есть система команд IE-64 она с традиционными процессорами (х86) не связана вообще никак (кроме может того, что разработана интелом) у нее есть свои плюсы, у нее есть свои минусы. На этой системе не запустить обычные программы, и наоборот - программы для IE-64 на обычных процессорах запускать смысла нет. АМД пошла по другому пути и создала 64-разрядное расширение традиционной x-86 архитектуры. На 64-амд можно запустить обычное 32-разрядное (х-86 разумеется) приложение и оно будет работать, можно запустить и 64-разрядное приложение которое не пойдет в обычной 32-разрядной системе. Потом вентиль вдруг начал догонять, что ступил и создал свое расширение. на мой взгляд бредовое, но что сделано - то сделано. В результате последние пни-4 могут работать с 64-разрядными адресами, хотя сами процессоры остаются 32-разрядными. Эта часть команд совместима с расширением амд(вот тут не очень уверен, но обратного я не видел) и проги для "64 разрядных" пней пойдут на 64-амд.

Цитата:

Есть еще такой вопрос. Будет ли отличаться откомпилированный код программы, если его откомпилили на АМД и на Intel, если в программе не использывались специфические моменты написания кода для конкретного процессора?


нет, отличатся не будут если создавались приличным компилятором. Боюсь, что если использовать компилятор от Intel, то он не удержиться и что-нибудь добавит свое (хотя специально не проверял :) ).
А по поводу оптимизации... как сказал один дядя из вентиля на конференции - оптимизированная программа будет лучше работать и на интел и на амд. Это разумеется про оптимизацию на уровне алгоритма )), а оптимизацию на локальном уровне кода ИМХО(!) лучше выполняет компилятор.. по крайней мере я его не обогнал )

292
19 июля 2005 года
Matush
726 / / 14.01.2004
На счет АМД и его 16, 32, 64 разряда:
http://www.ixbt.com/cpu/amd-hammer-family.shtml
ну и тесты :)
http://www.ixbt.com/cpu/athlon-64-fx-53.shtml
2
19 июля 2005 года
squirL
5.6K / / 13.08.2003
Matush
почитайте ту ссылку, что я дал. заодно и английский выучите :) икс-б-т опопсел... рекламу гонит :)
10
19 июля 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by squirL

почитайте ту ссылку, что я дал. заодно и английский выучите :) икс-б-т опопсел... рекламу гонит :)


iXBT действительно опопсел. Даже не так - просто потерял профессионализм. Непонятно, куда их постоянные авторы ушли. Создается впечатление, что набрали студентов, а они и гонят лапшу, а сами Кваку с Контрой гоняют.

Даже мне пришлось высказаться по этому поводу - взял монитор ViewSonic 191b, несмотря на его разгром в обзоре на iXBT. Потом на форуме восстанавливали правду.

2
19 июля 2005 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by Freeman
iXBT действительно опопсел. Даже не так - просто потерял профессионализм. Непонятно, куда их постоянные авторы ушли. Создается впечатление, что набрали студентов, а они и гонят лапшу, а сами Кваку с Контрой гоняют.

Даже мне пришлось высказаться по этому поводу - взял монитор ViewSonic 191b, несмотря на его разгром в обзоре на iXBT. Потом на форуме восстанавливали правду.


из российских хардварных сайтов я вообще только ferra.ru читать могу :)

10
19 июля 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by squirL
из российских хардварных сайтов я вообще только ferra.ru читать могу :)


Возвращаясь к первоначальной теме: моделей процессоров за все это время развелось так много, что оптимизация под конкретный проц - дело нелегкое. В большинстве случаев все сводится к использованию/неиспользованию тех или дополнительных наборов команд: MMX, SSE/2/3, 3DNow!/Pro и т. п. Хотя, судя, по железячным форумам, есть еще такие вещи, как разное время выполнения команд, число ступеней конвейера, размерноть и латентность кэша и т. п. Тут что-то советовать - дело совершенно неблагодарное. Поэтому, кстати, сейчас системы кодогенерации перед выполнением (JIT) могут перегонять статически скомпилированные программы. Так что, при сегодняшних тенденциях увеличения числа моделей процессоров, будущее - за ними.

10
19 июля 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by _edge [tkm]
личное: амд в последнее время имеют большие
проблемы с теплоотводом. также, что конкретно
смущает -проблемы с частотной маркировкой.


Вот человек, мыслящий исключительно штампами и не смотрящий в глаза фактам.

Во-первых, сейчас и Интел перешел на статистическую маркировку, ибо теперь и у них не в мегагерце дело. Достигнут физический предел сегодняшним техпроцессам - ничего не поделаешь.

А если внимательно посмотреть на цифры рассеиваемой мощности последних моделей процессоров, можно заметить 60-80 Вт у AMD и 90-120 у Intel. Так у кого проблемы? Сейчас архитектурный лидер в области x86 - именно AMD, и Интелу приходится догонять, как ни странно. Иначе, с какой бы стати им пришлось поддерживать систему команд x86-64, разработанную AMD? Нонсенс, раньше было в точности наоборот! Остальное сами найдете и почитаете, если хотите понять суть.

3.8K
19 июля 2005 года
Supervisor
158 / / 29.05.2005
Цитата:
Originally posted by molnij
а оптимизацию на локальном уровне кода ИМХО(!) лучше выполняет компилятор..


На данную тему:
http://lowlevel.h14.ru/cgi-bin/yabb/YaBB.cgi?board=other;action=display;num=1119538208

255
19 июля 2005 года
Dart Bobr
1.4K / / 09.04.2004
Цитата:
Originally posted by Supervisor
На данную тему:
http://lowlevel.h14.ru/cgi-bin/yabb/YaBB.cgi?board=other;action=display;num=1119538208


Кстати я как раз на днях эту книгу перечитал. ЗЫ. У меня складывается впечатление что если код оптимизирован - то от пня больше выиграш, тогда как при неоптимальном коде все наоборот.
А компиляторыы - до одногом места, они даже выровнять команды как следует не в состоянии, не говоря уже о том что-бы заботиться о попадании кода в различные кеш-линейки :(
И профилировщик у АМД левый :(

10
19 июля 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Dart Bobr
А компиляторыы - до одногом места, они даже выровнять команды как следует не в состоянии, не говоря уже о том что-бы заботиться о попадании кода в различные кеш-линейки :(


Опять ты за свое. Скажи еще, что все, что было сделано по оптимизации кода за последние пятнадцать лет - фигня на постном масле.

9.5K
19 июля 2005 года
Borman
20 / / 26.04.2005
Цитата:
Originally posted by Matush
Насколько мне известно пень64 может работать строго на 64 разрядах и строго на 32 разрядах (то есть в 64 разрядной системе 32 битное приложение незапустится и наоборот), а АМД64, может и на 64 разрядной системе запускать 32 разрядные приложения. Это, то что мне известно, но не подкреплено фактами :(


Ту прав, так как AMD - это так называемые 32/64 разрядные процессоры. Из - за этого есть проблемы с производительностью(как всегда бывает при обратной совместимости(Моторола, которая делает процы для Маков давно от этого отказалась)) и по этой же причине на них не работает Линукс. Да и полноценных мастдаев под 64 разряда еще нет(сервиспаки не решают проблему в корне), так что до появления Лонгорна все это просто реклама.

255
20 июля 2005 года
Dart Bobr
1.4K / / 09.04.2004
Цитата:
Originally posted by Freeman
Опять ты за свое. Скажи еще, что все, что было сделано по оптимизации кода за последние пятнадцать лет - фигня на постном масле.


А что-то в известных мне компиляторах я этих достижений не сильно замечаю. Вот что я прочитал\услышал\увидел от умных людей:
1. Выравнивание даных которые вмещаются в кеш происходит неоптимально, то-есть компилятор оставляет кучу "дыр" в памяти, которых можно избежать
2. Компилятор не беспокоится о попадании кода в разные кеш-линейки процессора
3. Компилятор может насильно испортить оптимально написаный код.
4. Компилятор никогда не развернет циклы(поправьте меня если я ошибаюсь и назовите такой компилятор, который разворачивает циклы, причем не как-нибудь а оптимально!)
5. Компилято р никогда не побеспокоится реорганизовать цикл для того что-бы избежать как-можно больше кеш-промахов.
....
Продолжить список того чего не делают компиляторы для создания оптимального кода? :)
ЗЫ. Это не свое, а актуальная тема, особенно для меня ;)

255
20 июля 2005 года
Dart Bobr
1.4K / / 09.04.2004
О, великие и могущественные компиляторы - прям идолопоклонство какое-то! Нет есть все-таки ряд задач при решении которых от компиляторов следует отказаться. Но это уже оффтоп и тема другого топика!!!!!!
356
20 июля 2005 года
molnij
159 / / 20.06.2000
Цитата:
Originally posted by Borman
Ту прав, так как AMD - это так называемые 32/64 разрядные процессоры. Из - за этого есть проблемы с производительностью(как всегда бывает при обратной совместимости(Моторола, которая делает процы для Маков давно от этого отказалась)) и по этой же причине на них не работает Линукс. Да и полноценных мастдаев под 64 разряда еще нет(сервиспаки не решают проблему в корне), так что до появления Лонгорна все это просто реклама.


Вы бредите (с)
во-первых официальный релиз win64 уже вышел, а линухи для opteronов и хаммеров появились уже давнымдавно

10
20 июля 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Dart Bobr
Продолжить список того чего не делают компиляторы для создания оптимального кода? :)


Хорошо, под какие процессоры ты это умеешь делать лучше компиляторов?

2
20 июля 2005 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by Borman
Моторола, которая делает процы для Маков давно от этого отказалась



именно по этому Apple отныне выпускает Mac с процессорами Intel :D а на Моторолу забили. хотя процы моторолы действительно приятная штука :)

а насчет ОС Windows для 64 бит - это ты точно лажанул...

255
20 июля 2005 года
Dart Bobr
1.4K / / 09.04.2004
Цитата:
Originally posted by Freeman
Хорошо, под какие процессоры ты это умеешь делать лучше компиляторов?


После прочтения книги Касперски, только под те которые он описал - PentiumII/PentiumIII/Pentium4/Athlon. Никакой екзотики. В любом случае, что-бы справляться с этим лучше компилятора нужно читать мануал производителя проца.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог