LINUX.ORG.RU

Производительность памяти.

 , ,


1

1

Вобщем такое дело: Я для дела и апгрейда решил заменить свой старый штеуд на новое железо, и потянуло меня что-то на амд, ибо разницы в перфомансе моего штеуда и новомодного i7 нет, но вёдра и более высокая ТТ, а так же нужные мне фичи - сподвигли меня купить что-то.

Вобщем выбрал я fx8350 и уже почти заказал, но братуха говорит, что бульдозер у него делает «буль-буль» и всё пичаль. Мы побенчили и пришли в выводу, что на штуеду по каким-то мистическим причинам память работает намного быстрее, хотя там и там 1600 дефолтные планки.

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

Кто хочет помочь - пожалуйста побенчите и выложите сюда результаты бенчей и свой проц/память - это будет всем интересно. http://www.alasir.com/software/ramspeed/ramsmp-3.5.0.tar.gz - бенч, собираем sh build.sh.

Мне интересные 10,11,(12),16,17,(18) - то, что в скобках не обязательно. Так же, попробуйте -p1,2,3,4,5,6,7,8, пожалуйста.

Так же, люди, кто юзал «новую» «стримовую запись», аля movnt* - как оно? Для многократного обхода данных, непомещающихся в кеш - кеш мне только мешает, поэтому nt запись через буферы меня спасает, но с чтением проблемы - поэтому я решил поверить в sse4.2 и купить себе новое железо.



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

Если хочешь узнать как проц в деле то запускай именно те программы с которыми будешь работать. На синтетике делать выводы я бы не стал. Просто потому что у АМД бывают неожиданные пики и провалы в бенчах.

true_admin ★★★★★
()

Да, непонятно как это дело запускать. Что такое «10,11,(12),16,17,(18)»? Если это номера бенчмарков то у меня их только 6.

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

На синтетике делать выводы я бы не стал

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

А интэл мог специально встроить в процессоры технологию обманного показа завышенных результатов. Они ведь уже такое делали, разве нет?

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

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

А интэл мог специально встроить в процессоры технологию обманного показа завышенных результатов. Они ведь уже такое делали, разве нет?

Честно говоря, мне это кажется очень сомнительным. Как процессор может такое сделать? Когда видяха рендерит она может схалтурить (что уже делали в дровах), пусть ценой ухудшения картинки. А когда исполняется код, то он не может быть исполнен «почти корректно». Либо программа исполняется, либо нет.

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

Что за ошибка? Можно ссылочку?

В любом случае, особенно для АМД, я бы проводил тщательные тесты под настоящей нагрузкой (к такому выводу пришёл долго медитируя на различные графики). Бывает что при задействовании бОльшего кол-ва ядер прирост совсем не такой как ожидаешь - то в шину упрётся, то расшареный кэш даёт о себе знать.

Причём, на производительность могут влиять настройки биоса. В том числе cache prefetching, dynamic overclocking, sleep states итп. Зачастую неожиданым образом. Плюс настройки ОС и даже версии компилятора и либ (только что тесты на форониксе шерстил на тему gcc 4.7 vs 4.8). Вот ещё пример курьёзов с производительностью: тормозит rsync

true_admin ★★★★★
()
Последнее исправление: true_admin (всего исправлений: 1)

AMD говно. Тру адмид дурак, хотя иногда говорит дельные вещи.

anonymous
()
Ответ на: комментарий от true_admin

Такая же фигня, только 6 вариантов теста. Хм, ТС явно хочет тестов с AMD камней, но сейчас сюда понабегут штеуды и чего сравнивать не понятно.

bhfq ★★★★★
()
Последнее исправление: bhfq (всего исправлений: 1)
Ответ на: комментарий от true_admin
#!/bin/bash

if [ ! -f rrs-result ]; then 
    touch rrs-result
else
    rm rrs-result
    touch rrs-result
fi


for i in {1..18}
do
    echo '--- test number '$i' begin ---' >> rrs-result
    ramsmp -p [тут вписать кол-во потоков] -b $i >> rrs-result
    echo '--- test number '$i' end ---' >> rrs-result
done
pekmop1024 ★★★★★
()
Ответ на: комментарий от pekmop1024

for i in {1..18}

krab@notebook:~/downloads/ramsmp-3.5.0$ ./ramsmp -b 18
RAMspeed/SMP (GENERIC) v3.5.0 by Rhett M. Hollander and Paul V. Bolotoff, 2002-09

8Gb per pass mode, 2 processes


USAGE: ramsmp -b ID [-g size] [-m size] [-l runs] [-p processes]
-b  runs a specified benchmark (by an ID number):
     1 -- INTmark [writing]          4 -- FLOATmark [writing]
     2 -- INTmark [reading]          5 -- FLOATmark [reading]
     3 -- INTmem                     6 -- FLOATmem
-g  specifies a # of Gbytes per pass (default is 8)
-m  specifies a # of Mbytes per array (default is 32)
-l  enables the BatchRun mode (for *mem benchmarks only),
    and specifies a # of runs (suggested is 5)
-p  specifies a # of processes to spawn (default is 2)
-r  displays speeds in real megabytes per second (default: decimal)


ERROR: unknown benchmark ID
bhfq ★★★★★
()
Ответ на: комментарий от pekmop1024

Ясно, сейчас придут гентушники и пособирают его с другими ключами конпеляторов и здесь будет фороникс-style.

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

у меня 64бита, тестов мало. Но при сборке ругнулось что неизвестная система, хе-хе. Завтра, может, посмотрю, вдруг в ауре есть патчи.

true_admin ★★★★★
()

Так же, люди, кто юзал «новую» «стримовую запись», аля movnt* - как оно?

Чем она новая? И чё «как оно»? Вопрос в чём, епт?

panfutij
()

А вообще, я беру только AMD из принципа. Нафиг доплачивать за этот штеуд из-за каких-то там супер-пупер убыстрений, когда через несколько месяцев AMD будет ничем не хуже.

panfutij
()
Ответ на: комментарий от true_admin

А бенчь и есть то дело, которое мне нужно - моя задача упирается в память. Вот у меня есть массивчик на 15мегабайт - мне надо его обойти много-много раз, и как бы ты не читерил - всё упрётся в этот бенч. Можно попробовать первые Nметров массивчика запихнуть в кеш, а к остальному куску юзать movnt* запись и чтение, вот я и спрашиваю.

Сам бульдозер от штеуда, да и сами штеуды ничем не отличаются особо, только новые фишки в simd, не более. А вот судя по тестам - основное их отличие - это скорость памяти( у меня на моём штеуде скорость памяти уже упирается в шину - коре2), а чем меньше у тебя задержка на кешлайн - тем быстрее у тебя работает всё, что непомещается в кеш.

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

Честно говоря, мне это кажется очень сомнительным. Как процессор может такое сделать?

не знаю как, но я читал статью о том, почему AMD отделилась от интела. Интел потребовал от программистов разработать технологию, которыя будет обманом показывать преувеличенную производительность. Но те отказались идти на такое, ушли из интела и создали свою фирму. (статья на лурке. сейчас не нашёл, может кто даст ссылку, или ссылку на другую статью об этом. в той статье рассказывается и о других обманах интеля, например о какой-то заявленной фиче в пнях (или в пнях2, не помню), которой там на самом деле вовсе не было; даже первое время отказывались делать возврат, но потом поняли, что лучше сделать возврат - репутация ведь дороже).

Что за ошибка? Можно ссылочку?

об этом пишет Таненбаум в "Архитектура компьютера", где-то в первых главах книги, страницу не помню. Но там вроде как не больше информации про этот бвг, чем я упамянул.

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

Новая тем, что чтение появилось в sse4.x, а разницу в годах посчитай сам.

Иди погугли в чём смысл movnt*. Авось кто-то бенчил и делал какой-нибудь мемкопи на ней - вот я и спрашиваю: «как оно».

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

Погляди скриптик, авось у тебя «uname -m» даёт выхлоп, которые нет в скриптике.

Собери руками amd64/*.s и все *.c с -DAMD64_ASM.

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

Что за фигню я сейчас прочитал?
Ты хоть историю появления AMD почитай.
И возвраты пней по какой причине были.

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

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

Ты про http://ru.wikipedia.org/wiki/FDIV_bug ?

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

Ну да, таже двацаточка на зпись. Спасибо - остались тесты амдешников.

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

Там sse-тесты на ассемблере - бесполезно, ибо максимум 5-10%.

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

почему AMD отделилась от интела

facepalm.tar.xz
Из общих корней у них только работа отцов-основателей в Fairchild Semiconductors, основаны обе компании были практически одновременно.

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

Да не, тут не пиписькомерьство, ибо естественно штеуд сольёт амд.

Просто по бенчам братухи бульдозер сливает на чтении/записи почти в 2раза айседьмому. Да ладно там, даже вов в вайне с его патчиком работает на i737* в 2раза быстрее, чем на бульдозере с одинаковой ТТ.

Сейчас и надо выяснить - реально ли бульдозер так сливает и почему.

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

реально ли бульдозер так сливает и почему.

У буля хреновая производительность в однопотоке на legacy коде.
То есть чтоб дотянуть скорость до иви/хасвелла нужно иметь генту и желательно многопоточный софт.

devl547 ★★★★★
()

Memory Benchmarks: intel, amd

Например, Corsair CMZ16GX3M4A1866C9 4GB:

Latency:
    intel: 25 ns
    amd:   55 ns
Read Uncached
    intel: 13,434 MB/s 
    amd: 7,789 MB/s
Write
    intel: 9,917 MB/s
    amd: 6,417 MB/s

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

Да не в этом дело. Производительность на нормальном коде у него такаяже, как у ай7, коре2 и иже с ним, если не учитывать новых simd фич.

legacy-код мериет способность х86 переваривать трешак, не более.

Гента у меня есть, а -p бенчь тоже. Не в этом суть. Как работает бенчь - он берёт блок и гоняет его 8гб/длинна блока раз. Кроме mov'ов там ничего нет, поэтому тормазить нечему, будь хоть ядра бульдозера в 20раз слабее.

Всё упирается в пинанение контроллера памяти, а тот упирается в скорость ответа оперативы. И вот по каким-то мистическим причинам( хотя так быть не должно) бульдозер сливает тупо на чтении/записи в память не на 5-10-20% как должен, а на 100%. Почему?

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

Сам бульдозер от штеуда, да и сами штеуды ничем не отличаются особо

Возможно, если затачивать, то так и будет. А если просто брать pre-build бинари то у меня разница доходит до полутора раз.

Щас за продуктами схожу и прогоню на fx-8120 если ещё актуально.

true_admin ★★★★★
()

Вот так запустил:

for bench in 10 11 12 16 17 18; do
  for cores in 1 2 3 4 5 6 7 8 ; do
    echo "bench $bench, cores - $cores";
    ./ramsmp -b $bench -p $cores;
  done;
done > /tmp/ramsmp
true_admin ★★★★★
()
Ответ на: комментарий от Jurik_Phys

Я не верю в эту неведомую проприетарщину. Что такое задержка? Время получения кешлайна? Почему не в тактах? Что за дебелизм. Что мериет этот тест, как?

Мне не интересно бесполезное пиписькомерьство хрен знает на чём.

Ну и да, сливает в 2раза - почему?

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

Ну и да, сливает в 2раза - почему?

Процессоры закрытые, ответа на вопрос «почему?» не будет. Будет лишь констатация фактов, что с amd память работает медленее.

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

Возможно, если затачивать, то так и будет. А если просто брать pre-build бинари то у меня разница доходит до полутора раз.

Тут уже работает качество перевариваривания х86-м посредственного кода.

Актуально, какраз таки амд и нужен. Штеуд выдаёт в раоне 20гигов на r/w. Это похоже на многоканальный ддр3-1.8к

Теперь нужен бульдозер.

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

А ты не видишь тут противоречие здравому смыслу? Медленее/быстрее - да, но не в 2раза. Такого по определению быть не может. Значит что-то где-то нетак.

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

бульдозер сливает тупо на чтении/записи в память не на 5-10-20% как должен, а на 100%. Почему?

Хуже кэши, хуже контроллер памяти.
У оптеронов, кстати, с этим намного лучше.

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

Кеши там, имхо, непричём, но сейчас поглядим.

Хуже - хуже это слабее на 5-20%, а когда он слабее в 2раза - это гно, а не контроллер памяти. В чём смысл был вообще в переходе на ддр3? Штеуд бустанул в 2раза, как и должно было быть. Сменил шину на норм, впихнул контроллер куда надо и получил то, что должно было быть, а тут же тотальная пичаль.

Снова на штеуд, либо пощупать оптероны.

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

AMD FX(tm)-8350 Eight-Core Processor

Доступно только 6 тестов. Запускал так:

! /bin/bash
for bench in 1 2 3 4 5 6; do
    for cores in 1 2 3 4 5 6 7 8 ; do
        echo "bench $bench, cores - $cores";
        ./ramsmp -b $bench -p $cores;
    done;
done > ramsmp.out
Результат тут. Кое-где ошибки выдавал
ERROR: cannot spawn 3 processes
Не стал разбираться. Память DDR3 1600MHz 9-9-9-24.

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

Сток - это 3100 c турбо до 3600.
Хотя самое интересное, что его можно ставить 4000@1.275 - и быстрее, и температура немного ниже.

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