メニーコア (manycore; many-core)プロセッサとは、高度な並列処理 を行うために設計された特殊なマルチコア・プロセッサ のことで、多数のより単純で独立したプロセッサ・コア (数十コアから数千コア以上)を含んでいる。メニーコア・プロセッサは、組み込みコンピュータ や高性能コンピューティング で広く使われている。
メニーコア・プロセッサは、マルチコア・プロセッサ とは異なり、明示的な並列処理 (英語版 ) が可能なように最適化されており、レイテンシとシングルスレッド 性能を犠牲にして、スループット (または低消費電力 )を高めるよう最初から最適化されている。
対照的に、より広いカテゴリのマルチコア・プロセッサ は、通常、並列コードと直列コードの両方を効率的に実行するように設計されているため、高いシングルスレッド性能 (例えば、より多くのシリコンをアウト・オブ・オーダー実行 、より深いパイプライン 、より多くのスーパースカラー 実行ユニット、より大きな一般的なキャッシュに割り当てる) と共有メモリ に重点を置いている。これらの技術は、単一スレッドで暗黙的な並列性を見つけることにランタイム・リソースを割いている。これらの技術は、シングルコア・プロセッサから(下位互換性を持って)継続的に進化してきたシステムで使用される。通常は「数個」のコア(例:2,4,8)を持ち、ヘテロジニアス・システム(異機種システム) では、GPU などのマルチコア・アクセラレータ で補完されることもある。
キャッシュ・コヒーレンシー は、マルチコア・プロセッサのスケーリングを制限する問題である。メニーコア・プロセッサは、メッセージパッシング [ 1] 、スクラッチパッドメモリ 、DMA [ 2] 、パーティション化グローバルアドレス空間 [ 3] 、読み取り専用/非コヒーレントキャッシュなどの方法で、この問題を回避できる。チップ上ネットワーク (英語版 ) とローカルメモリを使用したメニーコア・プロセッサは、ソフトウェアにタスクの空間レイアウトを明示的に最適化する機会を与える(TrueNorth 用に開発されたツールで見られるように)[ 4] 。
メニーコア・プロセッサは、クラスタ やベクトル・プロセッサ などの高性能コンピューティング に由来する技術と(概念的に)より多くの共通点を持つ可能性がある[ 5] 。
GPUは、複数のシェーダ処理ユニット (英語版 ) を備えたメニーコア・プロセッサの一形態と考えられ、高度に並列化されたコード (高スループットだが、シングルスレッドの性能が極端に劣る) にのみ適している。
100万以上のCPUコアを備えたメニーコア・コンピューター[ 編集 ]
マルチコア・プロセッサで構築された多くのコンピューターは、100万個以上の個別のCPUコアを持っている。例として次のようなものがある:
^ Mattson, Tim (2010年1月). “The Future of Many Core Computing: A tale of two processors ”. 2020年7月24日 閲覧。
^ Hendry, Gilbert. “IBM Cell Processor ”. 2020年7月24日 閲覧。
^ Olofsson, Andreas; Nordström, Tomas; Ul-Abdin, Zain (2014). "Kickstarting High-performance Energy-efficient Manycore Architectures with Epiphany". arXiv :1412.5538 [cs.AR ]。
^ Amir, Arnon (2015年6月11日). “IBM SyNAPSE Deep Dive Part 3 ”. IBM Research. 2020年7月24日 閲覧。
^ “cell architecture ”. 2020年7月24日 閲覧。 "The Cell architecture is like nothing we have ever seen in commodity microprocessors, it is closer in design to multiprocessor vector supercomputers"
^ Rick Merritt (June 20, 2011), “OEMs show systems with Intel MIC chips” , www.eetimes.com (EE Times ), http://www.eetimes.com/electronics-news/4217092/OEMs-show-systems-with-Intel-MIC-chips
^ Barker, J; Bowden, J (2013). "Manycore Parallelism through OpenMP". OpenMP in the Era of Low Power Devices and Accelerators . IWOMP. Lecture Notes in Computer Science, vol 8122. Springer. doi :10.1007/978-3-642-40698-0_4 。
^ Mittal (2019年5月). “A Survey on Evaluating and Optimizing Performance of Intel Xeon Phi ”. 2020年7月24日 閲覧。
^ “Eyeriss: An Energy-Efficient Reconfigurable Accelerator for Deep Convolutional Neural Networks ”. IEEE International Solid-State Circuits Conference, ISSCC 2016, Digest of Technical Papers . pp. 262–263 (2016年). 2020年7月24日 閲覧。