3.11 本章のまとめ
出典: PS3 Linux Information Site / Cell/B.E.のパワーを体験しよう
本章では、SPEを利用したプログラミングをおこなうために、以下の5項目について解説しました。
(1) SPEプログラミングの概要
(2) 簡単なSPEプログラム
(3) DMA転送によるデータの受け渡し
(4) SPEにおけるSIMDプログラミング
(5) 複数SPEを利用した並列プログラミング
「第3.1節 SPEプログラミングの概要」では、SPEプログラムの実行の仕組みとSPEプログラミングに必要なライブラリについて解説しました。SPEを利用した基本的なプログラミング・モデルは、PPE上でメインプログラムを実行し、SPE上でサブプログラムを実行するモデルです。libspe2と呼ばれるライブラリを利用することで、SPE上でプログラムを実行することができます。
「第3.2節 簡単なSPEプログラム」では、SPE上でプログラムを実行する基本的な流れについて解説しました。Hello Worldプログラムを例に、libspe2によるSPEプログラムの実行手順と基本的なAPIの使用方法について解説しました。
「第3.3節 DMA転送によるデータの受け渡し」では、PPEプログラムとSPEプログラムとの間でのデータの受け渡し方法について解説しました。SPEは、SPE自身が所有するLS以外のメモリには直接アクセスできないため、DMA転送を用いてメインメモリとの間でデータを転送する必要があります。
「第3.4節 SPEにおけるSIMDプログラミング」では、第2章で解説したVMX命令との比較をおこないながらSPEでのSIMD演算方法について解説しました。SPEには、SPU SIMD命令と呼ばれるSIMD命令が用意されており、VMX命令と同じように使用できることを解説しました。
「第3.5節 複数SPEを利用した並列プログラミング」では、1基のSPEの使い方との比較をおこないながら複数のSPEの使い方について解説しました。複数のSPEを利用するためには、スレッドライブラリを利用して利用するSPE個の数だけスレッドを生成し、SPEプログラムを実行する必要があることを解説しました。
本章では、SPEを使ってプログラミングをおこなう上で基本となる項目を取り上げて解説してきました。解説した項目それぞれの内容を理解することで、基本的なSPEを利用したプログラミングをおこなうことができます。
以下、本章で紹介した参考資料について一覧を掲載します。さらにSPEプログラミングについて学習したい方は、これらの記事、ドキュメントおよびリファレンスを参照してください。
| ドキュメント名 | 解説 |
|---|---|
| SPE Runtime Management Library Version 2.0 | libspe2のAPIリファレンスです。 |
| SPUFS: The Cell Synergistic Processing Unit as a virtual file system | libspe2で利用するLinuxカーネルインタフェースに関するドキュメントです。 |
| Cell Broadband Engine Programming Tutorial | IBM社が公開しているCellに関するプログラミングチュートリアルです。 |
| Cell Broadband Engine Architecture | Cell Broadband Engineアーキテクチャに関するドキュメントです。 |
| C/C++ Language Extentions for Cell Broadband Engine Architecture | C/C++言語のCell用拡張APIに関するドキュメントです。 |
| 「演習問題 (3-5)」へ戻る | 「第3章目次」 | 「第4章」へ進む |
| 「チュートリアル目次」 |
