Propustnost pamětí
Memory bandwidth, Fabian Giesen
Tenhle článek ukazuje jaká je relativní propustnost pamětí vzhledem k CPU a GPU. I když absolutní propustnost stoupá, s tou relativní to není tak slavné.
- Prastarý MOS 6502 z roku 1975 má propustnost 4B / instrukci
- Nové Core i7 má propustnost kolem 1B / instrukci (detaily v článku)
- Pokud beru v potaz SIMD, má ono Core i7 propustnost 0.125B / skalární operaci v SIMD instrukci
- Grafická karta GeForce GTX 1080Ti má propustnost 0.09B / skalární operaci v SIMD instrukci
Jak je vidět, tak relativní propustnost pamětí klesá i přes všechny pokroky Moorova zákona.
Grafické karty mají paměti s obrovskou absolutní propustností, ale také mají obrovské množství výpočetních jednotek (v případě GPU jde o velice široké SIMD procesory, ale to je detail).
K tomu musíme přičíst, že absolutní latence DRAM klesla 4-5× od 80 let, ale takt procesorů se zvýšil o tři řády.
To je důvod, proč jsou cache paměti na straně hardwaru a lokalita přístupu k paměti na straně softwaru tak důležité. Procesory jsou (většinou) dostatečně rychlé, RAM představuje úzké hrdlo.
Relevantní čtení:
- Hořící křemík & násobení matic (optimalizace násobení matic spočívá hlavně v lepším využití procesorové cache)
- Lokalita v grafech a negrafech (lokalita je důležitá)
- Mýtus o O(1) paměti
- Úvod do podivností moderního hardwaru, které vás budou budit ze spaní
- What every programmer should know about memory
- Why do CPUs have multiple cache levels?