Ale vždyť já povahu výpočtu v úvahu beru: ve svém prvním příspěvku tvrdím, že 99 až 99,9 % dat se natáhne z cache! Jenže aby se využil výkon naplno, muselo by se natáhnout z cache 99,999 %, při nesekvenčním přístupu pak dost možná až 99,9999 %, což - nezlobte se na mne - nepovažuji za realistické s výjimkou opravdu úzce specializovaných úloh (typu bruteforce nějaké šifry apod.).
Údaje o celkové propustnosti paměti jsem bral z místní nedávné bleskovky.
Nesekvenčních 5 GB/s u dnešních pamětí je nesmysl jak hrom! Uvědomte si, že zatímco frekvence procesoru za posledních 10-15 let šla nahoru o dva řády, přístupová doba se zlepšila z 20 ns na 10 ns, čili jen dvakrát! Všechno ostatní je záležitost synchronního krmení cache po co největších blocích dat co největší rychlostí. Ale náhodný byte prostě z dnešní paměti dostanu plus mínus stomilionkrát za vteřinu. Ať nežeru, dvěstěmilionkrát. Půjde sice o naprosto nerealistickou hodnotu, ale počítejme s ní. Data budu potřebovat řekněme po slovech velikých 4B, přeci jen přístup na úrovni jednotlivých bytů, či dokonce bitů by byl už dost pošahaný předpoklad. Dostaneme nějakých 800 MB/s náhodně přistupovaných dat, a to máme u tohoto čísla jistotu, že jde o odhad značně nadsazený! Jasně, jakmile paměť DRAM dodá první slovo, je schopná ostatní data stejné řádky dodat burstem opravdu zatraceně svižně!... takže když si nadefinuji jako náhodný přístup čtení po 64B, pak ano, pak se opravdu na těch 5 GB/s asi dostanu. Ale to se myslím nedá považovat za náhodný přístup...
Poznámka pod čarou: uvědomuji si, že do L2 cache se z DRAM data nepřesouvají po bytech, ale po celých řádkách, takže dostat z paměti "pouhé" 4B není ani možné (totéž platí i o přesunu do L1). Ale to přeci není argument pro zadefinování si náhodného přístupu jako přístupu, který čte bloky po 32 či 64 bytech!
Jinak vývoj rychlosti náhodného přístupu v nanosekundách lze najít např. zde:
http://en.wikipedia.org/wiki/Memory_latency...
Mimochodem, když jsem na světěhardware četl (tuším Eaglův, zdravím!) popis, kolik cyklů "prostojů" stojí jeden L1 cache miss, a kolik pak L2 cache miss (kdy se musí do samotné RAM), točila se mi z těch údajů hlava. Stovky cyklů?! Je to vůbec možné? Odpověď je jasná: ano, možné to je, současná DRAM je prostě "úplně ta samá" DRAM jako před 10+ lety, jen je holt v ní více řádek a více sloupců, a pak trochu jiná ovládací logika. Pořád ale je nutné nejdříve prechargovat, pak... a tak dále...
Jinak pokud byla řeč náhodou o nějaké SRAM apod., pak ano, tam se asi 5 GB/s náhodných dat docílit bude dát, ale nakoupit místo DRAM do superpočítačů SRAM, to by - s trochou nadsázky - zruinovalo i miliardáře.
P.S. Jestli chápu správně způsob fungování DRAM, pak přístupová doba 10 ns navíc neznamená, že jsem schopen 100 milionů náhodných přístupů za vteřinu, ale reálně o mnoho méně. 10 ns mi prostě říká jen to, že když je RAM v nějakém "příznivém" stavu, dostanu náhodně zvolený byte po 10 ns času. Už to ale nic neříká o nutnosti data ze zvolené řádky uzavřít/zapsat zpátky apod. Jde ale jen o mé dohady, tak mne za případnou nesprávnost tohoto odstavce prosím nekamenujte.