目次
これは何?
この本は,東芝のストリーミング処理向けチップである SpursEngineに搭載されているSPE上で, (Linuxから) SPEプログラムを実行するための方法について解説した技術系同人誌です.
SpursEngineは,内部にH.264とMPEG2に対応したハードウェアコーデックと 4個のSPEを搭載しています. このハードウェアコーデックを利用することで, その辺の普通のPC上でソフトウェア処理した場合に比べて非常に高速に動画をエンコードしたりできるのですが, 本書ではそんな機能は気にせず, ある意味おまけである4個のSPEを利用して, 自分で書いたSPEプログラムを実行するための方法などを中心に延々解説します.
SpursEngineのSPEは,Cell/B.E.のSPEと機能的には同じですが, それを利用するためのSPHA/SPSAと呼ばれる枠組みは,Cell/B.E.上の Linuxで用いているlibspe2やMARSとはだいぶ異なります. また,PPEがなかったり,SPEから参照できるメモリをホストプログラム (Cell/B.E.におけるPPEプログラムに相当する,PC上で動作するプログラム) が透過的にアクセスできなかったりと, ハードウェア的な面でも様々な違いが存在します.
幸か不幸か,オフィシャルのドキュメントやサンプルが非常に微妙なデキなため, 「とりあえずSpursEngineのSPEでプログラムを動かしたいけど, どこから手をつければいいのかわからない!」 という人などに,手頃なガイドとなるのではないかと思います.
本の目次
タイトルからもわかるように,この本も完結編の 『外伝』という扱いから, SpursEngineのSPEに固有の話題を中心とした, 比較的軽めの内容となっています (B5判/96ページ).
目次は以下のようになっています.
- 第1章 はじめに
- 1.1 この本は何?
- 1.2 この本を読み進めるには何が必要?
- 1.3 本書の流れ
- 第2章 ハードウェアアーキテクチャとソフトウェアの構成
- 2.1 SpursEngineのアーキテクチャ
- 2.2 ソフトウェアの構成
- 第3章 環境構築
- 3.1 事前準備
- 3.2 ソフトウェアの入手
- 3.3 デバイスドライバのインストール
- 3.4 ライブラリとヘッダのインストール
- 3.5 SPEのクロス開発環境のインストール
- 3.6 ドキュメントの用意
- 第4章 SPHA/SPSAでSPEプログラムを動かす
- 4.1 SPHA/SPSAのAPI関数
- 4.2 SPEプログラムの実行の基本的な流れ
- 4.3 SpursEngineでHello World
- 4.4 SPEプログラムの実行などに関連するその他のAPI関数
- 第5章 ホストとSPEスレッドの間の同期機構
- 5.1 メッセージキュー
- 5.2 メッセージポート
- 5.3 セマフォ
- 5.4 複数の同期をまとめて待つ
- 5.5 同期機構を使用した例
- 第6章 Cell/B.E.のSPEとの違い
- 6.1 SpursEngineのSPEでできないこと
- 6.2 デクリメンタの違い
- 第7章 SpursEngineの性能評価
- 7.1 SPEの性能
- 7.2 ホストからのアクセス
- 7.3 SPHA/SPSAの同期機構の性能
- 7.4 ホストとSPEのデータ転送が相互におよぼす影響
なお,今回も表紙は しら「」氏 の趣味全開で,非常に萌え萌えな感じに仕上がっていますが, 中は完結編や すごいよ!! MARS編と同様に, ガチガチのてふてふです. くれぐれもお間違えのないよう,よろしくお願いします. 内容の雰囲気は,内容の紹介をご参照ください.
誰得?
こんな人にお勧め・・・かもしれない
- 投げ売りされていたSpursEngineを買ってはみたものの, 動画のエンコードとかしないので使い道がなくて困っている人
- SPEプログラミングをしたくてSpursEngineを導入してみたけど, 何から手をつければよいのかさっぱりな人
- SpursEngineを利用したSPEプログラムを始めてみたけど, ドキュメントの記述が実際の動きと全然一致せず, 気持ち悪くなって挫折してしまった人
なお,目次を見ればわかりますが,この本では, SpursEngineのハードウェアコーデックを利用した動画のエンコード・ デコードの方法や,ジェスチャ認識などの高度な機能といった話は一切扱っていません. この本は「SpursEngineの本」ではなく「SPEの本」ですので, くれぐれもお間違いのないよう,ご注意ください.
また,この本では,Cell/B.E.と共通のSPEプログラムの最適化技術などに関しては 扱っていませんので, その辺については 完結編を参照してください.
入手方法
内容の紹介
第2章から第7章までの各章で, どんな感じのことが書かれているのかを簡単に紹介します. 適当に抜き出した章のページの画像もあわせて掲載しますので, 雰囲気を感じ取ってください. なお,繰り返しになりますが, 完結編と同じく,こちらの本も中身は全編通してこんな具合です. (ごく一部の人を除いて) ちっとも萌えない ガチガチのてふてふな本ので,くれぐれもご注意ください.
まず,第2章では, SpursEngineのハードウェアアーキテクチャと, それを利用するためのソフトウェアの構成に関して解説します. 次の第3章では, Linux上でSpursEngineを利用するための環境構築の手順について紹介します.
第4章では,SpursEngine上で, SPHA/SPSAと呼ばれるライブラリを利用して SPEプログラムを実行する際の手順について紹介します. 前半では,SPHA/SPSAでSPEプログラムを実行する際の手順や, そこで用いるAPI関数の詳細などについて解説し, 実際に実行可能なプログラムの例として, Hello Worldを紹介します. また,後半では,SPHA/SPSAでSPEを制御するための様々な API関数を一通り紹介します.
第5章では, SPHA/SPSAの提供するキューやセマフォといった同期機構について紹介します. また,同期機構を利用した例として, 複数のSPEとホストのスレッドが並列動作する処理の例を示します.
第6章では, SpursEngineのSPEを利用する上で認識しておくべき Cell/B.E.のSPEとの違いについて,ごく簡単に紹介します. そして最後の第7章では,SpursEngineの基本的な性能を色々と評価して, 使用時に性能のボトルネックとなりそうな部分について考察しています. あ,もちろん今回も索引つきです.
サポート情報
ソースコード
この本に掲載されているソースコードおよびソースコード片のうち, 筆者オリジナルのものについては修正BSDライセンスに従うものとします.
- 第4章 SPHA/SPSAでSPEプログラムを動かす
- リスト4.1・4.2: hello.tar.bz2
- 第5章 ホストとSPEスレッドの間の同期機構
- リスト5.1・5.2: sync.tar.bz2
訂正表
- C79頒布版 (初版第1刷)
- p.85 あとがきの脚注の番号が1から始まっていない (前の章の番号を引き継いでいる)
更新情報
- 2024.08.18 入手方法を更新
- 2012.02.04 入手方法を更新
- 2011.01.05 サポート情報更新
- 2011.01.03 入手方法を更新
- 2010.12.19 ページ設置
nosuke: <sasugaanijaのgmail.com> (ここでいう「の」は「@」みたいなものです)
Copyright© 2003-2024 nosuke All rights reserved.