メニーコア
メニーコア(manycore; many-core)プロセッサとは、高度な並列処理を行うために設計された特殊なマルチコア・プロセッサのことで、多数のより単純で独立したプロセッサ・コア(数十コアから数千コア以上)を含んでいる。メニーコア・プロセッサは、組み込みコンピュータや高性能コンピューティングで広く使われている。
マルチコア・アーキテクチャとの対比
[編集]メニーコア・プロセッサは、マルチコア・プロセッサとは異なり、明示的な並列処理が可能なように最適化されており、レイテンシとシングルスレッド性能を犠牲にして、スループット(または低消費電力)を高めるよう最初から最適化されている。
対照的に、より広いカテゴリのマルチコア・プロセッサは、通常、並列コードと直列コードの両方を効率的に実行するように設計されているため、高いシングルスレッド性能 (例えば、より多くのシリコンをアウト・オブ・オーダー実行、より深いパイプライン、より多くのスーパースカラー実行ユニット、より大きな一般的なキャッシュに割り当てる) と共有メモリに重点を置いている。これらの技術は、単一スレッドで暗黙的な並列性を見つけることにランタイム・リソースを割いている。これらの技術は、シングルコア・プロセッサから(下位互換性を持って)継続的に進化してきたシステムで使用される。通常は「数個」のコア(例:2,4,8)を持ち、ヘテロジニアス・システム(異機種システム)では、GPUなどのマルチコア・アクセラレータで補完されることもある。
モチベーション
[編集]キャッシュ・コヒーレンシーは、マルチコア・プロセッサのスケーリングを制限する問題である。メニーコア・プロセッサは、メッセージパッシング[1]、スクラッチパッドメモリ、DMA[2]、パーティション化グローバルアドレス空間[3]、読み取り専用/非コヒーレントキャッシュなどの方法で、この問題を回避できる。チップ上ネットワークとローカルメモリを使用したメニーコア・プロセッサは、ソフトウェアにタスクの空間レイアウトを明示的に最適化する機会を与える(TrueNorth用に開発されたツールで見られるように)[4]。
メニーコア・プロセッサは、クラスタやベクトル・プロセッサなどの高性能コンピューティングに由来する技術と(概念的に)より多くの共通点を持つ可能性がある[5]。
GPUは、複数のシェーダ処理ユニット (英語版) を備えたメニーコア・プロセッサの一形態と考えられ、高度に並列化されたコード (高スループットだが、シングルスレッドの性能が極端に劣る) にのみ適している。
適切なプログラミングモデル
[編集]- メッセージ・パッシング・インタフェース
- OpenCL [6]または計算カーネルをサポートするその他のAPI
- パーティション化グローバルアドレス空間
- アクターモデル
- OpenMP [7]
- データフロー
メニーコア・システムのクラス
[編集]特定のメニーコア・アーキテクチャ
[編集]- ZettaScaler - 日本のPEZY Computing 2048コアモジュール
- Xeon Phiコ・プロセッサ[8] - MIC(Many Integrated Cores)アーキテクチャ
- Tilera
- Adapteva Epiphany Architecture - PGAS スクラッチパッドメモリを使用したメニーコアチップ
- Coherent Logix hx3100 Processor - HyperX Architecture をベースとした100コアDSP/GPPプロセッサ
- Movidius Myriad 2 - マシンビジョンのためのメニーコアAIアクセラレータ
- Kalray - データ集約型のタスクのためのメニーコアPCI-Eアクセラレータ
- Teraflops Research Chip - メッセージパッシングを使用したメニーコアプロセッサ
- TrueNorth - チップアーキテクチャ上にメニーコア・ネットワークを備えたAIアクセラレータ
- Green arrays - 低消費電力アプリケーション向けのメッセージパッシングを使用したメニーコアプロセッサ
- Eyeriss - 組み込みビジョンアプリケーション用の畳み込みニューラルネットを実行するために設計されたメニーコアプロセッサ[9]
100万以上のCPUコアを備えたメニーコア・コンピューター
[編集]マルチコア・プロセッサで構築された多くのコンピューターは、100万個以上の個別のCPUコアを持っている。例として次のようなものがある:
- Sunway TaihuLight - 超並列 (10M CPUコア) の中国製スーパーコンピュータ。1CPUあたり260コアのSW26010メニーコア・プロセッサを40,960個使用
- Gyokou (Japanese:暁光 Hepburn: gyōkō, dawn light) - ExaScalerとPEZY Computingによって開発されたスーパーコンピュータ
- SpiNNaker - Human Brain Projectの一部として構築された超並列 (1M CPUコア)メニーコア・プロセッサ
参照項目
[編集]- マルチコア
- ベクトルプロセッサ
- SIMD
- 高性能コンピューティング
- コンピュータークラスター
- チップ上マルチプロセッサシステム (英語版)
- 画像処理装置 (英語版)
- メモリアクセスパターン (英語版)
- キャッシュ・コヒーレンシ
- 驚異的並列 (英語版)
- 超並列
- CUDA
参考文献
[編集]- ^ Mattson, Tim (January 2010). “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 (June 11, 2015). “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)
- ^ 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 (May 2019). “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日閲覧。
外部リンク
[編集]- 2010年2月19日に公開された、Manycoreの将来に向けたソリューションの設計 (スライド内の複数のリンク切れ)
- Eyerissアーキテクチャ