ビッグデータ時代にますます重要! ハードウェア・データ処理に挑戦

第 3 部 本物から学ぶ…スパコンの並列演算器の研究
第
6章
シミュレーションから!
FPGA ボードで超強力ソーティング
ご購入はこちら
ビッグデータ時代にますます重要!
ハードウェア・データ処理に挑戦
小林 諒平
実験1:PCでシミュレーション
実験2:FPGAに実装して
実機動作
PCI Express Gen2
×8
FPGA
FPGAボード
実験結果
10
9
8
7
…
…
1
2
3
昇順に 4
ソート
図 1 大容量データ時代のハードウェアの活躍どころ! ソーティ
ングを実験する
ここでは,ハードウェアでソーティングを行うこと
による効果について,実験で確認してみます(図 1).
シミュレーションと実機の 2 種類の実験を行いま
す.まず,PC で動作するシミュレータを使用して
ソーティング・アクセラレータの動作を確認します.
次に,ソーティング・アクセラレータを FPGA で実
際に動作させて,C プログラムによる実行性能と比べ
てみます.
実機編では,やや高価な FPGA ボードを使うので
敷居が高いのですが,もしボードを持っていれば,
ソーティング・アクセラレータを動作させ,ソフト
ウェア処理よりも 10 倍以上高速化することを手軽に
確認できます.
準備
実験を行うためのファイルは筆者が用意していま
す.
https://github.com/monotone-RK/
FACE/CQ
以下の方法で,あらかじめダウンロードしておいて
ください.
$ svn export https://github.com/
monotone-RK/FACE/trunk/CQ
72
表 1 実験で使用する設計データ
ディレクトリ名
(CQ/ 以下)
bit
driver
内 容
ソーティング・アクセラレータの回路情報
PCI Express 通信のためのドライバ
src
ソー ティ ング・ アクセラレー タのソー ス・
ファイル一式
test
シミュレーションを実行するためのテストベ
ンチ
util
実機での動作確認で利用するアプリケーション
Vivado
ソーティング・アクセラレータ回路を生成す
るための Vivado プロジェクト・ファイル
ディレクトリ構成を表 1 に示します.
実験を行うに当たって,ソーティング・アクセラ
レータのアルゴリズムは考えなくて構いません.詳し
くは Appendix 2 で解説しています.
参考までに概要のみ紹介すると,今回の実験では,
図 2 に示すようなソーティング・ネットワークとマー
ジ・ソート・ツリーを組み合わせたソーティング・ア
クセラレータのデザインを使用します.ソーティン
グ・ネットワークの幅は 16,マージ・ソート・ツリー
のウェイ数は 16,マージ・ソート・ツリーのスルー
プットは 4/ サイクルです.また,ソーティングの対
象となる値は 32 ビット整数型のキーのみとします.
実験 1:PC でシミュレーション
ここでは,RTL(Register Transfer Level)シミュ
レーションでソーティング・アクセラレータの動作を
確認します.
ソ ー テ ィ ン グ・ ア ク セ ラ レ ー タ の デ ザ イ ン は
Verilog HDL というハードウェア記述言語で設計され
ています.RTL シミュレーションは,
HDL(Hardware
Description Language;ハードウェア記述言語)で設
計されたデザインの挙動をレジスタ転送レベル(組み
合わせ回路とフリップフロップを単位とするレベル)
で模擬します.ハードウェアの設計では,設計者は
HDL で 記 述 後 に,RTL シ ミ ュ レ ー シ ョ ン で ハ ー ド
2016 年 12 月号