14 ポイント 投稿者 xguru 2021-01-08 | 5件のコメント | WhatsAppで共有

"M1のシングルコアは28段以上でメモリを並列処理"

  • メモリアクセスは計算処理よりコストが高い

  • 理論上、xにアクセスするとき近くの x+1 などはただ同然で読み込めるという素朴なモデルは一見もっともらしいが、性能予測はできない

  • では、どのようなときにこの性能予測は失敗するのか? CPUコアは同時に複数箇所のメモリアクセスを試みる

  • 7個のメモリアクセスを同時に行うなら、1個にアクセスするよりは遅いだろうが、7倍遅いのだろうか?

  • ベンチマークプログラムを通じて、いくつの同時アクセス(lane、独立したポインタ追跡ルーチン)が可能かをテスト

→ ある程度どこで同時アクセス性能が落ちるかを通じて、いくつの lane を持つかを予測

  • Apple M1のコア1つは28 laneを超えると性能が落ちることから、28だと推測したもの

→ そのため、高いレベルの並列処理によって、あの素朴なモデルのコスト予測は失敗する

5件のコメント

 
ffdd270 2021-01-09

CPUの話が出るたびに

https://ridibooks.com/books/443000037

この本がとても役に立っていますね。もし最初から追いかけていきたい方は、この本を読んでから読むと、少しはついていけると思います。

 
ffdd270 2021-01-09

リディブックスの宣伝防止の観点から(...)、本の名前は『プログラマーが知らなかったマルチコアCPUの話』です。なぜよりによってリディブックスなのかというと、紙の本は絶版になっていて、電子書籍は残っているストアがリディブックスしかないため、やむを得ず掲載しました。

 
galadbran 2021-01-09

キム・ミンジャンさんはこんな本も書いていたんですね……。もう10年だなんて、月日の流れはむなしいですね ^^;

 
godrm 2021-01-08

これは本当に難しい部分ですね。一般化しにくいですからね。ですが、最近のCPUアーキテクチャや並列処理が増えた状況では、かなり効果的であり得る気がします。それだけハードウェア構造の改善実験も多く行われているのだなと思います。

 
xguru 2021-01-08

計算機科学の教授が書いたからか、まさに自分が把握した事実だけを書き留めていたのですが..

該当記事のコメントと HN のコメントを組み合わせて見ると https://news.ycombinator.com/item?id=25659615

基本的には、M1 は 28 個以上の並列化や L1 キャッシュのサイズなどのおかげで、複数箇所をランダムアクセスしても優れた性能を示す、と理解すればよさそうです。