ФлеймФорумЖелезо

Просьба потестить скорость RAM программы С/С++ (завершено) (2 стр)

Страницы: 1 2 3 Следующая »
#15
17:45, 26 мая 2016

Zefick
Ты просто мне завидуешь.

#16
18:19, 26 мая 2016

Вот правильный тест:

+ Показать

  В результате половина времени, замерянная автором, это просто паразитные затраты на цикл. Если читать и писать по одному байту, то разница при записи с memcpy в семь раз, если с интами то в два.

#17
18:33, 26 мая 2016

Zefick
> В результате половина времени, замерянная автором, это просто паразитные
> затраты на цикл

Изображение
+ Показать
#18
18:42, 26 мая 2016

=A=L=X=
> GCC -O3 и никакого мошенничества
  У меня то же самое, первый вариант выдаёт 16, второй 2. В выхлопе вообще упоминания memcpy нет и код разный.

#19
18:52, 26 мая 2016

Zefick
> У меня то же самое, первый вариант выдаёт 16, второй 2.

Твои все варианты у меня медленее моих изначальных, кроме write, тот такой же.
Если ему не мешать, он всё векторизирует на ура. У меня еще опция -march=corei7 задействована.

Кстати, я же сегодня его обновил до 4.9.3. Если у тебя по другому попробуй обновится.

#20
18:53, 26 мая 2016

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

#21
19:31, 26 мая 2016

У меня Intel Compiler 10 генерирует код, который выполняется почти в два раза медленнее, чем msvc2005

+ msvc
+ icc
#22
19:59, 26 мая 2016

entryway
  Лучше мой код попробуй, с этой шляпой всё понятно, она работает от компилятора к компилятору по разному.

=A=L=X=
> Кстати, я же сегодня его обновил до 4.9.3.
  Ну ты резкий хлопчик, ещё и года не прошло. А я слышал, что только 6.1 вышел. Там, правда, список одних только серьёзных регрессий в багтрекере на несколько экранов.

=A=L=X=
> Если у тебя по другому попробуй обновится.
  Похоже, что у меня даже memset заинлайнился (одинаково на 4.9.2 x86 и 5.1 x64):

  movl  $1073741824, %ecx
  movq  %rdx, %rdi
  rep stosb

Так что теперь вопросы к твоему компилятору.

#23
20:12, 26 мая 2016

Zefick
> Лучше мой код попробуй

+ Показать
#24
20:20, 26 мая 2016

entryway
> > Лучше мой код попробуй

+ Показать

Видимо древний интел компилер (лет десять десятой версии уже) не распознал мой проц и отдал самую медленную версию.

#25
20:22, 26 мая 2016

entryway

Можешь скинуть свои exe-шники? (моего теста)

#26
20:33, 26 мая 2016

=A=L=X=
> Можешь скинуть свои exe-шники? (моего теста)
https://dl.dropboxusercontent.com/u/235592644/files/mem.zip

А ты мне от компилятора поновее 2005 года? Может как-то умнее завекторизирует memset. Статик версию только.

#27
20:50, 26 мая 2016

entryway

Хм, у меня они обе более-менее ровно пошли:

D:\Misc\mem>"=a=l=x=_intel.exe"
init write time: 0.438 sec => 2.28311 Gb/sec
write time: 0.242 sec => 4.13223 Gb/sec
read time: 0.23 sec => 4.34783 Gb/sec
write time: 0.243 sec => 4.11523 Gb/sec
read time: 0.241 sec => 4.14938 Gb/sec
write time: 0.288 sec => 3.47222 Gb/sec
read time: 0.236 sec => 4.23729 Gb/sec


D:\Misc\mem>"=a=l=x=_msvc.exe"
init write time: 0.47 sec => 2.12766 Gb/sec
write time: 0.245 sec => 4.08163 Gb/sec
read time: 0.206 sec => 4.85437 Gb/sec
write time: 0.239 sec => 4.1841 Gb/sec
read time: 0.206 sec => 4.85437 Gb/sec
write time: 0.233 sec => 4.29185 Gb/sec
read time: 0.204 sec => 4.90196 Gb/sec

Но и тот же потолок, 4-5 Гб/с опять таки. Хмммм...

мой mingw32 [file=117429] слинковал со -static чтобы не просил своих dll-ек

#28
20:51, 26 мая 2016

В общем планки то я попереставлял врозь и по отдельности, но свои результаты смог только ухудшить.
При том что DDR3-1333 и должно быть по всем спекам, заявлениям от материнки и процессора быть больше.
Мдя уж... Наверное так и останется покрыто мраком до следующего апгрейда.

#29
21:01, 26 мая 2016

=A=L=X=
> мой mingw32 Mingw test static слинковал со -static чтобы не просил своих dll-ек
На запись такое же медленное как мой старый icc (14 против 25 у msvc), а на чтение быстрее чем "даже" msvc2005 (18 против 14)

+ Показать

Глянул asm записи в msvc — тупой rep stos. Умом не давил и помогло.

+ cpuz
Страницы: 1 2 3 Следующая »
ФлеймФорумЖелезо

Тема в архиве.