Является ли слишком большой кеш плохой идеей?

1610
oneat

Я собираюсь упаковать новый компьютер для себя, и я подумал о серии Xeon в качестве основного процессора. Xeons, как правило, имеют очень большие кэши, даже до 32 МБ. И вот вопрос:

Большим преимуществом является наличие большого кеша в повседневных приложениях? Как это влияет на игры, чертежи САПР, браузеры и т. Д.?

0
См. Также: [Является ли размер кэша или количество ядер более важными при оценке производительности процессора?] (Http://superuser.com/questions/317771/is-the-cache-size-or-number-of-cores-more -Важно-когда взвешивание-CPU-ЭКСПЛУАТАЦИОННЫЕ? RQ = 1). Запросы рекомендаций по оборудованию не по теме для SU. Ƭᴇcʜιᴇ007 9 лет назад 0
Просто не используйте больший кэш вместо более общих улучшений, таких как увеличение объема оперативной памяти или увеличение скорости жесткого диска. Michael Kohne 9 лет назад 0

4 ответа на вопрос

3
Sobrique

There's not really a downside to having a large cache. At worst, it'll be populated by stale data which didn't get used.

однако я слышал, что хранение данных в кеше может занять много времени. Это правда? oneat 9 лет назад 0
На самом деле, нет. Кэши содержат только подмножество данных, а содержимое управляется алгоритмически. Вещи будут вставлены / удалены из кэша по мере необходимости. Единственная реальная разница будет в некотором кеше против отсутствия кеша. (И никакой кеш действительно не повредит). Sobrique 9 лет назад 0
Кэш быстрее, чем любая другая форма хранения, и заполняется по мере загрузки данных, так что нет, не совсем. Frank Thomas 9 лет назад 6
1
kutschkem

TL;DR It depends on the program.


Let's take a look first at pro's and con's of big caches:

Pro's:

Bigger cache means less cache misses. Cache misses are expensive, time-wise.

Con's:

Bigger caches are slower per access, because. (more transistors, more has to be transferred on cache miss etc.) That is why there even are caches, and multiple levels of them. (Otherwise, why not just use the RAM directly, right ;-) )


In essence, it depends on your program, but programs tend to use lots of data nowadays, so bigger cache may be better.

For example, I am into Data Mining. Training models often means repeatedly iterating over big datasets. I imagine a bigger cache might help here, if it means I get significantly less cache misses.

While I don't know about CAD programs, I would imagine modern ones transfer a lot of work load onto the graphics card. The cache size doesn't make a difference here (I think).

Имейте в виду, что в этом случае OP запрашивает о кеше ЦП (L1, L2, L3), а не о кеше ввода-вывода. Кэш ЦП используется для собственной механики ЦП, такой как выделение времени / переключение контекста, неупорядоченное выполнение, спекулятивное ветвление и выполнение и т. Д. То, что вы описываете, - это кэширование ввода-вывода в довольно большом масштабе, так что они представляют собой совершенно разные сценарии использования. Frank Thomas 9 лет назад 0
@FrankThomas Но разве для этого не используется кэш процессора? kutschkem 9 лет назад 0
нет, просто не хватает места, потому что кеш очень дорогой, так как работает в масштабе наносекунд. Я действительно имею в виду только ваши утверждения об анализе данных. данные контента слишком велики и обычно не перечитываются достаточно часто, пока они все еще находятся в кеше, чтобы сделать небольшой недолговечный кеш благотворным. Однако кеширование ОЗУ отлично подходит для ваших действий, поскольку фокусируется на наибольшем узком месте (времени доступа к внешнему хранилищу) и имеет много места для хранения даже больших наборов данных. Frank Thomas 9 лет назад 0
1
Kamil

You will not get huge performance improvement relatively to Core i7 processor with same amount of cores and similar clock.

Xeon CPUs are have advantages like these:

  • ECC memory controller
  • PAE - more memory support (like 768GB instead of 64GB)
  • more cores in some models
  • more cache in some models
  • more PCI express lanes in some models
  • support for multiple CPU configurations

Some applications can use higher L3 cache efficiently, but it depends on how application was written. In 3D applications you will not see difference between 8MB and 20MB cache.

0
Art Badger

It is not a huge advantage, but it is typically a rule of thumb that the more cache, the better the performance. Go ahead and max out the available cache.

Похожие вопросы