Производительность кэша, улучшенное время выполнения - PullRequest
1 голос
/ 16 марта 2012

У меня следующая ситуация:

Машина выполняет в среднем c циклов на инструкцию без учета остановок памяти и имеет штраф за промах p за все пропуски.Пусть i и d будут соответственно частота ошибок кэша команд и частота ошибок кэша данных для программы с n инструкциями и f ссылками на память на инструкцию.Предположим, что время обращения не является фактором, определяющим производительность кэша.

Я выяснил, что число циклов, необходимых для запуска программы с учетом остановок памяти, равно n (c + ip +FDP).

Следующая часть говорит:

Если мы хотим улучшить время выполнения этой программы в k раз, насколько нам нужно уменьшить количество цикловчто каждая инструкция берет?Другой способ улучшить время выполнения - сократить время цикла машины.Если мы хотим улучшить время выполнения в k раз, насколько нам нужно улучшить время цикла?

Я получил n (c + ip + fdp) / k, поэтому я 'Я думаю, что ответ должен быть 1 / k для первой части, но это кажется слишком очевидным.И, конечно, если время цикла равно t, тогда n (c + ip + fdp) * t дает общее время выполнения, поэтому оно снова должно быть 1 / k?

Спасибо

1 Ответ

1 голос
/ 16 марта 2012

Что касается первой части, я не верю, что вам разрешено изменять что-либо, кроме c, чтобы получить желаемое ускорение;ваше решение предполагает, что вы также ускоряете ошибки кеша.

Вторая часть имеет аналогичную проблему: ускорение времени цикла не обязательно уменьшит штраф кеша, поэтому значение p будет расти по мере уменьшениявремя цикла (чтобы сохранить постоянное время, вам понадобится больше этих более коротких циклов).

Предполагается, что, как вам кажется, p измеряется в единицах циклов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...