-
- Народ, который занимается этим профессионально делает по другому. =AlexD=(627 знак., 21.01.2008 14:25)
- Есть алгоритм. Большой. Например, обсчет кадра. Внутри кучка подалгоритмиков, каждый можно оптимизировать по своему. if мерять время большого куска, и потроха подбирать перебором - быстро устанешь. Так что мелкая гранулярность полезна. Все, завязал с Evgeny_CD(24 знак., 21.01.2008 14:50)
- Если нужно померить вклад каждого из подалгоритмов в %, то профайлер сделает это сам автоматом (если порезать на ф-ии). А вот при оптимизации кусков с точностью до тактов делают так как я сказал. - =AlexD=(21.01.2008 15:26)
- Немного не понял. AlexandrY(243 знак., 21.01.2008 16:38)
- Профайлер - это такая либа, которая прилинковывается к проекту и точки входа в которую размещаются =AlexD=(756 знак., 21.01.2008 20:28, ссылка)
- Немного не понял. AlexandrY(243 знак., 21.01.2008 16:38)
- Если нужно померить вклад каждого из подалгоритмов в %, то профайлер сделает это сам автоматом (если порезать на ф-ии). А вот при оптимизации кусков с точностью до тактов делают так как я сказал. - =AlexD=(21.01.2008 15:26)
- кстати, именно так работает в Питоне измерение времени выполнения коротких кусочков кода. - bialix_(21.01.2008 14:32)
- Есть алгоритм. Большой. Например, обсчет кадра. Внутри кучка подалгоритмиков, каждый можно оптимизировать по своему. if мерять время большого куска, и потроха подбирать перебором - быстро устанешь. Так что мелкая гранулярность полезна. Все, завязал с Evgeny_CD(24 знак., 21.01.2008 14:50)
- Ну в блекфине есть таймер ядра. - =AlexD=(21.01.2008 09:12)
- Похоже, проще считать от обратного - у кого его нет :) - Evgeny_CD(21.01.2008 11:07)
- В Cortex-M3 сделан таймер в ядре. Тактируется от его же частоты. У других таймеры сидят на периферийной шине. Т.е. от ядра отделены 1..2-мя мостами. - AlexandrY(20.01.2008 17:58)
- да ладно вам у других... у mips точно такой же таймер в ядре еще и с compare регистром, который может генерить прерывание - Gamma SPb(20.01.2008 23:32)
- Так! У PowerPC тоже вроде что-то похожее есть. Видать, это свойство всех настоящих архитектур. - Evgeny_CD(20.01.2008 23:36)
- И не только такой счётчик - у многих есть и performance counters - пару штук, считающих выбранный параметр. А параметром может быть число промахов, простоев кого-то из-за кого-то и т.д. Где-то табличка была по пням, альфам, мипсам - у кого какой ReAl(25 знак., 20.01.2008 23:53)
- Найти бы оную.... - Evgeny_CD(21.01.2008 00:01)
- я не понимаю зачем??? в очередной раз из спортивного интереса? даже если это аппаратный таймер с F/2 который запускается/стопорится одним битом (а в нормальных архитектурах - либо bit-bang области, либо set/clt/tgl теневые регистры, Gamma SPb(175 знак., 21.01.2008 00:05)
- Как раз в системе с кешами оно и нужно. Штоб мерять, как этот самый кеш отработает при разной оптимизации алг8оритма. Именно с нс разрешением! - Evgeny_CD(21.01.2008 00:08)
- Для х86 пользуйте интеловский компилятор. Всего-то делов. Рэйлвэй Каген(334 знак., 21.01.2008 13:58)
- Там есть толстые книги от Intel по оптимизации кодинга этого SSE. Мож там что описано. - Evgeny_CD(21.01.2008 14:51)
- понятно, измерение сферического коня в вакууме. ну-ну - Gamma SPb(21.01.2008 10:12)
- Для х86 пользуйте интеловский компилятор. Всего-то делов. Рэйлвэй Каген(334 знак., 21.01.2008 13:58)
- Как раз в системе с кешами оно и нужно. Штоб мерять, как этот самый кеш отработает при разной оптимизации алг8оритма. Именно с нс разрешением! - Evgeny_CD(21.01.2008 00:08)
- я не понимаю зачем??? в очередной раз из спортивного интереса? даже если это аппаратный таймер с F/2 который запускается/стопорится одним битом (а в нормальных архитектурах - либо bit-bang области, либо set/clt/tgl теневые регистры, Gamma SPb(175 знак., 21.01.2008 00:05)
- Найти бы оную.... - Evgeny_CD(21.01.2008 00:01)
- И не только такой счётчик - у многих есть и performance counters - пару штук, считающих выбранный параметр. А параметром может быть число промахов, простоев кого-то из-за кого-то и т.д. Где-то табличка была по пням, альфам, мипсам - у кого какой ReAl(25 знак., 20.01.2008 23:53)
- Так! У PowerPC тоже вроде что-то похожее есть. Видать, это свойство всех настоящих архитектур. - Evgeny_CD(20.01.2008 23:36)
- Еще у Пней вроде как какой-то таймер есть, который работает "рядом с ядром". - Evgeny_CD(20.01.2008 18:04)
- Нормальный мануал на хоть какой-нибудь пень я даже не пытаюсь искать. AlexandrY(44 знак., 20.01.2008 18:32)
- RDTSC—Read Time-Stamp Counter - есть у всех пней. ReAl(602 знак., 20.01.2008 20:25)
- Неплохо сказано. Типа "монотонно увеличивается по клоку" и отвалите. AlexandrY(429 знак., 20.01.2008 21:44)
- Ага, типа я и парни из интеля мыслим одинаково :))) Жаль, что про идею с записью они не додумались, дабы не портить содержимое регистров. - Evgeny_CD(20.01.2008 20:34)
- Этот таймер в книгах Касперского упоминается :) - Evgeny_CD(20.01.2008 18:34)
- Уверен, что сам Касперский о нем по наслышке только знает. - AlexandrY(20.01.2008 18:39)
- Думаю, он про него из хака чужого кода узнал. Использует он его довольно эффективно. В частности, он хорошо показал в своей книге эффект от выравнивания блока данных по границе кеш line. - Evgeny_CD(20.01.2008 18:46)
- Ага, хак этот MSDN называется :) QueryPerformanceFrequency & QueryPerformanceCounter - Рэйлвэй Каген(20.01.2008 18:56)
- Не зря есть не только QueryPerformanceCounter, но и QueryPerformanceFrequency. В зависимости от процессора/ОС встречалась частота этого таймера ReAl(191 знак., 20.01.2008 20:15)
- Ни разу не попадалась с частотой ядра :( Рэйлвэй Каген(219 знак., 20.01.2008 22:35)
- Вот сейчас у меня дома ReAl(325 знак., 20.01.2008 23:36)
- Теперь на работе ReAl(292 знак., 21.01.2008 13:25)
- Интересно, что все таки проц 500 тактов делает между проследовательными вызовами? Куда столько времени тратится? С таким разрешением тонкий бенчмаркинг не сделаешь.... - Evgeny_CD(21.01.2008 12:36)
- Да кто его знает. Как бы не оказалось, что RDTSC вкупе RDMSR/WRMSR и прочими отладочными командами в юзеровском кольце просто забанены. Я сильно не вникал, аж до такой степени мне их асм просто не нужен. А тогда ReAl(798 знак., 21.01.2008 13:49)
- Насчет переключения уровня привелегий - весьма похоже! Это объясняет величину задержки и ее постоянство. - Evgeny_CD(21.01.2008 14:53)
- Да кто его знает. Как бы не оказалось, что RDTSC вкупе RDMSR/WRMSR и прочими отладочными командами в юзеровском кольце просто забанены. Я сильно не вникал, аж до такой степени мне их асм просто не нужен. А тогда ReAl(798 знак., 21.01.2008 13:49)
- Понял. Пора менять кОней :) - Рэйлвэй Каген(21.01.2008 12:03)
- Странно! Именно на этом таймере и основан весь бенчмаркинг х86 кода, насколько я понимаю. - Evgeny_CD(20.01.2008 22:44)
- Вот сейчас у меня дома ReAl(325 знак., 20.01.2008 23:36)
- Ни разу не попадалась с частотой ядра :( Рэйлвэй Каген(219 знак., 20.01.2008 22:35)
- Не зря есть не только QueryPerformanceCounter, но и QueryPerformanceFrequency. В зависимости от процессора/ОС встречалась частота этого таймера ReAl(191 знак., 20.01.2008 20:15)
- Ага, хак этот MSDN называется :) QueryPerformanceFrequency & QueryPerformanceCounter - Рэйлвэй Каген(20.01.2008 18:56)
- Думаю, он про него из хака чужого кода узнал. Использует он его довольно эффективно. В частности, он хорошо показал в своей книге эффект от выравнивания блока данных по границе кеш line. - Evgeny_CD(20.01.2008 18:46)
- Уверен, что сам Касперский о нем по наслышке только знает. - AlexandrY(20.01.2008 18:39)
- RDTSC—Read Time-Stamp Counter - есть у всех пней. ReAl(602 знак., 20.01.2008 20:25)
- Нормальный мануал на хоть какой-нибудь пень я даже не пытаюсь искать. AlexandrY(44 знак., 20.01.2008 18:32)
- да ладно вам у других... у mips точно такой же таймер в ядре еще и с compare регистром, который может генерить прерывание - Gamma SPb(20.01.2008 23:32)
- Народ, который занимается этим профессионально делает по другому. =AlexD=(627 знак., 21.01.2008 14:25)