Сейчас на форуме: tyns777, zds, JustLife (+4 невидимых)

 eXeL@B —› Программирование —› самый быстрый memcpy - 2
Посл.ответ Сообщение

Ранг: 50.0 (постоянный), 31thx
Активность: 0.090.1
Статус: Участник

Создано: 19 февраля 2010 22:22
· Личное сообщение · #1

Сори, не успел высказаться в предыдущей теме. В продолжение пара комментов:
"Ну так мы работаем с реальным железом и софтом, и хотелось бы всегда получать корректные результаты."
Готов ставить 2 против 1 - если код работает быстрей в идеальных условиях(одно ядро, без ОС) - то по статистике на том же ядре и с той же памятью/чипсетом он будет работать быстрей и в условиях реальных. Это не сферический конь.Я еще раз повторю - на одной машине, при прочих равных условиях, замеры тактов будут самым реальным показателем быстодействия. Другое дело что на другой машине, на другой архитектуре цифры будут другие. Но они будут другими и при любой другой методике замера быстродействия(влияние частоты памяти/проца + чипсет). Мегабайты в секунду идут лесом точно так же как и rdtsc.



Ранг: 50.0 (постоянный), 31thx
Активность: 0.090.1
Статус: Участник

Создано: 19 февраля 2010 22:36 · Поправил: spinz
· Личное сообщение · #2

"Поэтому я меряю такты только для кода, который позволяет все свои данные целиком разместить в кэше."
Ну это же как минимум наивно. Я говорил о коде другого ядра, который часто промахивается мимо кэша.
Что имеем? Линейку кэша надо заполнить, очередной цикл шины, первый проц пока курит. Если таких промахов много, то чтение из памяти первым процом/ядром тормознется весьма надолго. Здесь курит и rdtsc и Мб/сек
ЗЫ
"важно знать сколько данных можно скопировать за определенное время, а это мб/сек"
это пиз...ц. На разных машинах эти цифры будут разными. Похоже ранги на этом форуме мало влияют на адекватность ;)



Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 19 февраля 2010 22:43
· Личное сообщение · #3

Мемспай хорош, когда он не свопится

-----
Я медленно снимаю с неё UPX... *FF_User*




Ранг: 369.8 (мудрец), 400thx
Активность: 0.390
Статус: Участник

Создано: 20 февраля 2010 04:43
· Личное сообщение · #4

spinz пишет:
Готов ставить 2 против 1 - если код работает быстрей в идеальных условиях(одно ядро, без ОС) - то по статистике на том же ядре и с той же памятью/чипсетом он будет работать быстрей и в условиях реальных.

С этим согласен. Но зачем нам напрягаться и мерять на одном ядре без ОС. Куда информативнее бенчмарк работающий в ОС, его можно выложить на форуме и получить результаты на разном железе.

spinz пишет:
Ну это же как минимум наивно. Я говорил о коде другого ядра, который часто промахивается мимо кэша.

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

spinz пишет:
Мегабайты в секунду идут лесом точно так же как и rdtsc.

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

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

-----
PGP key <0x1B6A24550F33E44A>



 eXeL@B —› Программирование —› самый быстрый memcpy - 2
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати