LINUX.ORG.RU
ФорумTalks

[intel][amd][bulldozer] частота ядра и скорость последовательного доступа не важна — важна скорость произвольного доступа к памяти

 ,


0

2

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

можно глянуть например сюда http://www.roylongbottom.org.uk/randmem results.htm#anchorRAM2 и вспомнить о том, что Пентиум М был лидером до Core 2 Duo по визуальным оценками — что явно видно в таблице

понятно, что и скорость последовательного доступа тоже играет некоторую роль, но похоже она делит 2-е место со скоростью проца

теперь к бульдозеру и сравнению его с интелом http://www.fcenter.ru/online.shtml?articles/hardware/processors/32091 (но можно сразу смотреть только картинку http://www.fcenter.ru/img/article/CPU/Bulldozer/178218.png )

смотрим и ужасаемся

латентность кэшей 1, 2 и 3-го уровней повышена, и насколько!!!

как раз настолько, чтобы обеспечить то самое «на одинаковой частоте удельная производительность Bulldozer в пересчёте на ядро упала на 25-40 % по сравнению с микроархитектурой AMD прошлого поколения»

особенно хреново с латентностью кэша Л2 — она увеличилась более чем в 2 раза

выводы (говорю, как сочувствующий амд):

1. амд обосралось

2. у них может быть есть шансы исправить ситуацию, выпустив феномы на старой архитектуре с ТУПО бОльшим количеством кэша, которое позволяет 32-нм технология (это помогает быстродействию)

( 3. амд как, не собирается прекратить выпуск старых феномов? а не закупить ли феномчик на замену, на случай если мой сгорит? )

UPDATE: для веб-серверного применения 8 типа-вроде-ядер может быть и хорошо, но опять нужна скорость произвольного доступа к памяти; ну и не забываем, что современную RAM по факту нужно считать Sequential Access Memory

★★★★★

Последнее исправление: www_linux_org_ru (всего исправлений: 2)

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

А почему там нет AMD Athlon(tm) II ? Где семпроны? В топку такой тест

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

Ага, потом поменял на 800-й, сейчас стоит дома на всякий случай.

Удивительно. 10 лет назад снижали кеш, поднимали мегагерцы, и стало медленнее. А теперь поднимают мегагерцы, поднимают кеш, и стало медленнее!

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

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

Конвейер не сбрасывается, если предсказатель ветвления правильно выбрал ветку.

сколько ты там видишь команд передачи управления на 1 команду доступа к памяти?

Я вижу, что там конвейер полностью загрузиться не может. Отсюда и такой просос.

какова вероятность неправильного предсказания?

Если там inner loop в 63 байта уместился, то, скорее всего, промахов вообще не будет.

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

всем пофиг

Заметно.

ты лучше объясни мне, причем тут конвеер, если Pentium III EB 1000 выполняет этот код в 3 (три!!!) раза быстрее, чем Pentium 4 1900 ?

Если тебе не пофиг, то прочитай любую популярную книжку о работе компьютера.

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

там действительно есть несколько операций — на каждый терм вида xi[xi[i+12]] приходится максимум 3 сложения (ну пусть 5 при -О0) и одна логическая операция

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

в сумме получаем 6 простых операций, которые пень должен выполнять емнип за 3 тика — ну пусть даже за 10 тиков — а теперь скажи, куда деваются остальные 140 тиков?

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

З.Ы. я подробно не анализировал код, но мне *кажется*, что внутренняя операция xi[i+12] выполняется из L1D, и разработчик не считает ее обращением к памяти;

Из L1D данные в регистры попадают с ненулевой латентностью, в L1D - из L2 с участием трансляции адресов (у которой тоже свой кэш есть и далеко ненулевая стоимость трансляции), а в L2 - из памяти, ну или из L3. Поэтому толку от L1 мало, если данные туда к нужному моменту спекулятивно не попадают.

если же я не прав, тогда разрабочик считает, что каждый терм xi[xi[i+12]] содержит 2 обращения к памяти, значит расходует 300 тиков, и тебе придется объяснять, куда уходят 290 тиков

Я тебе объяснил, но то ли ты прикидываешься, что не понимаешь, то ли на самом деле книжки почитать надо.

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

у меня конкретный вопрос: ты считаешь, что одно лишь увеличение длины конвеера способно так просадить производительность пня4 после пня3, или же для этого необходима явная неоптимальность в обмене с памятью?

я по-прежнему считаю, что в 4 пне была внесена явная неоптимальность в обмене с памятью — именно, повышение скорости последовательного доступа за счет снижения скорости произвольного доступа, и не вижу в твоих аргументах ничего, что этому противоречит

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

ты как видишь «недозагруженный» конвеер?

А. команда проходит (почти) по всему конвееру только после получения данных из памяти; во время ожидания данных конвеер не только простаивает, но и *пустой*

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

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

> Если тебе не пофиг, то прочитай любую популярную книжку о работе компьютера.

ты мне еще в детский садик предложи сходить

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

у меня конкретный вопрос: ты считаешь, что одно лишь увеличение длины конвеера способно так просадить производительность пня4 после пня3, или же для этого необходима явная неоптимальность в обмене с памятью?

При чём здесь длина конвейера? Если до предела упростить, то конвейер - это виртуальная машина, исполняющая байткод. От реализации этой виртуальной машины и применяемых в ней техник и зависит, с какой скоростью выполняется программа.

И как ты себе представляешь обмен с памятью? Как он может быть оптимальными или неоптимальным при равных условиях (одинаковая память, контроллер или в мосте, или встроенный)?

ты как видишь «недозагруженный» конвеер?

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

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

>И что?

В условиях нынешнего рынка AMD должна делать не просто хорошие вещи, а ОЧЕНЬ хорошие вещи. Иначе она вылетит с рынка. А это очень плохо для всех, так как у Intel не останется совсем никакой конкуренции.

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

>обрати внимаение — пентиум 4 на 1900 МГц рандомно читал память медленнее, чем Celeron A на 300 МГц !!!

Я дофигища сидел на всей старой линейке Celeron, начиная от 333МГц до 600(?), на второпнях от 600 до 800МГц, на третьепнях от 733(?) до 1200МГц, и на P4 от 2,4ГГц.

Так вот, может, удельная производительность систем на мегагерц и просаживалась, но абсолютная — росла всю дорогу :)

Если у тебя P4-1900 медленнее (считаем, что память лимитирует), чем Cel-300 (кстати, таких же не было!), то мой нынешний P4-3000 должен пахать медленнее, чем Cel-500.

Гон и наглое 4.2, даже мой последний P3-1200 был НЕСРАВНИМО медленнее этой машины :) На нём только-только DVD без просадок на быстрых сценах состоялся. А эта машинка, напрягаясь и пыхтя, но уже h264/1080p может тянуть, порой. Это не говоря уже про компиляцию в Gentoo — разница в скорости в разы :)

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

>Или так, или просто делать очень дешёвые процессоры.

Но при этом весьма производительные. Просто дешёвых процессоров — итак на рынке есть. Целероны и Семпроны на 2-3ГГц по 800+ рублей — куда уж дешевле-то? :)

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

>А что с ним не так?

Ну например работающий на удвоенный частоте, но 16-битный АЛУ.

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

> Если тебе не пофиг, то прочитай любую популярную книжку о работе компьютера.

Какую например?

Чтобы там и про префетчи, и про конвеер и про кэш-линейки было.

x4DA ★★★★★
()

>латентность кэшей 1, 2 и 3-го уровней повышена, и насколько!!!

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

Проблема у бульдозера одна: туева хуча приложений не умеет грамотно использовать предоставленные ресурсы. Но разве это проблема AMD?

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

>Но разве это проблема AMD?

Да, это их проблема. Сами же сделали архитектуру, не работающую как надо на реальных приложениях.

//Примерно как итаниумы или атомы

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

>Сами же сделали архитектуру, не работающую как надо на реальных приложениях.

Ну, микроархитектура не на год и не на два делается. И на улицу AMDшников может придет праздник.

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