Я читаю некоторые онлайн-материалы, пытаясь понять, как анализировать количество пропусков кэша для различных алгоритмов.На следующем фото показан анализ умножения матриц, когда вы используете технику «плиточного умножения».
На предыдущем слайде они говорили «Lтакое число коэффициентов на строку кэша ".
Может кто-нибудь помочь мне понять, откуда у них эти числа?В частности, что я хочу понять из этого слайда:
1) Когда они говорят: «L - это число коэффициентов на строку кэша», означает ли это просто количество записей, которые помещаются в строку кэша?
2) В нем говорится «Предположим, что все плитки имеют квадрат порядка B, а три помещаются в кэш», а затем говорится, что «загрузка трех блоков в кэш стоит 3B ^ 2 / L».Когда он говорит "затраты", это число операций или количество кеша пропускает?Я предполагаю, что это число пропущенных кешей, так как оно делится на L, но, поскольку они говорят, что «три [плитки] помещаются в кэш», число пропущенных кешей не будет просто 3B ^ 2 вместо 3B ^ 2 / L.так как все записи 3B ^ 2 будут помещаться в строку кэша?
3) Когда они говорят "... для 3B ^ 2
4) "O (n ^ 3 / ((sqrt (Z) * L))". Гдеони придумали это?
5) «если Б правильно выбран»: что это значит?
Если вы можете дать мне некоторое представление по любому из этих вопросов, я 'буду признателен.
Спасибо!