71201010
|
sudoer
|
|
|
|
Рег.: 12.10.2012
|
Сообщений: 739
|
|
Рейтинг: 937
|
|
[computerscience] оценка "качества" бенчмарка
25.03.2016 13:45
|
|
|
А есть ли какие-то эмпирические метрики для оценки "качества" ассемблерного кода теста производительности процессора? В идеале такая метрика должна стремится оценить количество внутренних состояний процессора, которые были покрыты при исполнении этого кода.
|
random: nonblocking pool is initialized |
|
Fireguard
|
Carpal Tunnel
|
|
|
|
Рег.: 25.10.2002
|
Сообщений: 3315
|
|
Рейтинг: 142
|
|
Re: [computerscience] оценка "качества" бенчмарка
[re: 71201010]
26.03.2016 16:20
|
|
|
Какое отношение имеет "количество внутренних состояний процессора" к производительности?
Качество бенчмарка может характеризовать приближение к покрытию какого-то объема реальных задач. Совершенно неважно, какие состояния при этом может иметь процессор.
|
|
blind
|
still alive
|
|
|
|
Рег.: 16.01.2004
|
Сообщений: 23129
|
Из: Хамовники
|
Рейтинг: 16483
|
|
Re: [computerscience] оценка "качества" бенчмарка
[re: 71201010]
27.03.2016 09:41
|
|
|
|
71201010
|
sudoer
|
|
|
|
Рег.: 12.10.2012
|
Сообщений: 739
|
|
Рейтинг: 937
|
|
Re: [computerscience] оценка "качества" бенчмарка
[re: Fireguard]
27.03.2016 16:51
|
|
|
В ответ на:
Какое отношение имеет "количество внутренних состояний процессора" к производительности?
В данном случае тест производительности используется для выявления ошибок в процессоре. Соответственно, хочется иметь некую численную оценку "качества" такого тестирования для конкретного теста. Правильнее всего было бы дать эту оценку путем моделирования исполнения теста процессором и вычисления "покрытия возможных ситуаций" тестом. Однако, это ресурсоемкая задача. Поэтому хочется иметь способ эмпирической оценки "качества" теста по его ассемблерному коду.
|
random: nonblocking pool is initialized |
|
blind
|
still alive
|
|
|
|
Рег.: 16.01.2004
|
Сообщений: 23129
|
Из: Хамовники
|
Рейтинг: 16483
|
|
Re: [computerscience] оценка "качества" бенчмарка
[re: 71201010]
27.03.2016 18:12
|
|
|
Современный x86? Можешь забыть о покрытии состояний. Сотня лет уйдет на анализ возможных комбинаций. Даже у интел регулярно отдельные экземпляры весьма дорогих процессоров проходят все тесты но иногда ошибаются.
Разве что можно посчитать покрытие по инструкциям и например прогнать в эмуляторе и посчитать покрытие его кода.
|
13/37 =) |
|
71201010
|
sudoer
|
|
|
|
Рег.: 12.10.2012
|
Сообщений: 739
|
|
Рейтинг: 937
|
|
Re: [computerscience] оценка "качества" бенчмарка
[re: blind]
27.03.2016 19:34
|
|
|
В ответ на:
Современный x86? Можешь забыть о покрытии состояний.
Нет, не x86. Речь идет о некоем гипотетическом процессоре. Да, все состояния покрыть невозможно. Но для практических нужд люди придумывают эмпирические метрики, оценивающие функциональное (или какое еще) покрытие ISA тестом. Вот про эти метрики и хочется услышать. Типа, какая твоя любимая метрика и почему все остальные отстойные. Как-то так.
|
random: nonblocking pool is initialized |
|
Fireguard
|
Carpal Tunnel
|
|
|
|
Рег.: 25.10.2002
|
Сообщений: 3315
|
|
Рейтинг: 142
|
|
Re: [computerscience] оценка "качества" бенчмарка
[re: 71201010]
28.03.2016 15:11
|
|
|
С практической стороны наблюдал использование проверок на верное выполнение операций. Затем просто большой массив задач с проверкой выхода. В результате все равно просачиваются ошибки.
Ассемблер вам даст набор кодировок инструкций, причем, он может быть и не упорядочен в случае "out of order" машины. Покрытие чего дальше считать? Состояний получаемых на каких-то задачах? Или покрытие всех состояний процессора (выглядит совсем печально)?
|
|
71201010
|
sudoer
|
|
|
|
Рег.: 12.10.2012
|
Сообщений: 739
|
|
Рейтинг: 937
|
|
Re: [computerscience] оценка "качества" бенчмарка
[re: Fireguard]
29.03.2016 02:00
|
|
|
В ответ на:
Покрытие чего дальше считать? Состояний получаемых на каких-то задачах? Или покрытие всех состояний процессора (выглядит совсем печально)?
Про покрытие состояний процессора я написал, т.к. это понятная метрика. Но посчитать ее невозможно.
Давайте говорить про "функциональное покрытие", что бы это ни значило =)
Так вот нужна эмпирическая метрика, которая решает такую задачу: есть два теста A и B, надо проанализировать их код и найти пересечение их покрытий и не совпадающие области покрытия. Этим областям надо сопоставить фрагменты ассемблерного кода этих тестов.
Такие метрики вобщем-то известны, но они не универсальны. Интересно было бы обсудить подходы к выбору/выдумыванию таких метрик.
|
random: nonblocking pool is initialized |
|