1. Memory hierarchy
1.1. Memory Wall
http://electronicdesign.com/analog/memory-wall-ending-multicore-scaling
http://dl.acm.org/citation.cfm?id=216588
https://www.youtube.com/watch?v=1_mjiQesgGI
Memory hierarchy https://en.wikipedia.org/wiki/Memory_hierarchy
1.2. clock
https://en.wikipedia.org/wiki/History_of_general-purpose_CPUs
https://twitter.com/piacere_ex/status/1086107767033614336
2003年以降、CPUクロック数が上昇していないことを、多くの方がご存知無いみたいだけど、 Intelを始めとするCPUメーカーは、「これ以上、周波数を上げられない」という限界を見越してて、 それでマルチコア化に舵を切った🙄 一方で、マルチコアをドライブするプログラミングは、全く浸透していない…😱
12:47 - 2019年1月18日 DxKg2G_UwAAceBE.jpg
VAX 11/780, THE FIRST VAX SYSTEM (OCTOBER 1977) http://www.old-computers.com/history/detail.asp?n=20&t=3
1.3. 行列乗算の高速化
TLBやキャッシュの活用が重要である。
- 隠れレジスタの数などの話はどうだろうか。
RISC超高速化プログラミング技法 単行本 – 1995/8 寒川 光 (著)
ブロック化についての知識がほとんど広まっていない。-- ToshinoriMaeno 2019-01-19 22:28:12
この講義の受講は必須でしょう。 http://www.abc-lib.org/MyHTML/Lectures/UTokyo/OpenLecture/IS20140624.pdf
http://unity-memo.hatenablog.com/entry/2015/03/04/053309
- プログラム例
http://www.lancarse.co.jp/blog/?p=1710
#pragma omp parallel forの一行を付け足すだけです。(これは並列化と複数キャッシュの効果か)
https://ci.nii.ac.jp/naid/10020867428/
https://ci.nii.ac.jp/naid/110002932223
https://ci.nii.ac.jp/naid/110002774752
https://ci.nii.ac.jp/naid/10020866748/
パイプラインとキャッシュを活用するためのプログラミング技術 情報処理学会,第35回プログラミング・シンポジウム報告集 pp. 31-42