RECONF @ Hiyoshi : Day 2

[ 443 ]飯田先生複数のデータユニットがデータを投げるわけだけど、データユニット間の通信はない?… 今後もっと大きなモデルがシミュレーションしたい、という時代になってきたら、そのときに考えたい。

今日は(今日も)激しく寝坊しましたすいません。
[ 443さん ]
飯田先生
複数のデータユニットがデータを投げるわけだけど、データユニット間の通信はない?
– ありません。独立したシミュレーションタスクになります
ツリーを分割して複数の DU にわけたりとか
– 難しそうだけど、以前の構成と違うので、できることはできそう。今後もっと大きなモデルがシミュレーションしたい、という時代になってきたら、そのときに考えたい。
[ にしかわさん ]
パラメータスキャンの説明が変なんじゃ…?
Solver Core が µP 比で 100 倍速いってマジですか。ぬぅ。
パイプラインピッチとパイプラインの深さ(遅延)は違うですよ。
飯田先生
– Phase 1 と Phase 2 のパイプラインって直結できないんですか
連立微分方程式なので…
[ おさな ]
まあいろいろありましたとさ。
最適なビット幅とか自動で求められないかなー。

RECONF @ Hiyoshi

中里さん@理研井口先生@北陸先端演算精度を部分毎にかえたりとかはしないの? – 原理的にはできて、それで回路を小さくすることはできるんだけど、あんまり大変なのでいまはやっていない。

[ 中里さん@理研 ]
井口先生@北陸先端
演算精度を部分毎にかえたりとかはしないの?
– 原理的にはできて、それで回路を小さくすることはできるんだけど、あんまり大変なのでいまはやっていない。GRAPE の (ASIC 版では) ほうではやっている
– 誤差は浮動小数点演算のそれよりも SPH 法の誤差のほうが大きいので、問題ではないです
IPFlex の佐藤さん?
フィードバックが入ってきたりする場合にうまくパイプラインが流れるようにソフトウェア (PGR) でサポートするの?
– 特にしません。SPH 法にはそういうところがないので、今回は問題になってない
森先生
4チップ載っているけど、あれ使ってるの? チップ間にまたがるところはどうしてる?
– 4パラでやってます。チップ間でのデータのやりとりはしていない。これは本家 GRAPE と同じ
理研で 16bit 使って FLOPS っていって怒られませんか?
– いいえ(笑い)。倍精度じゃないと supercomputing じゃないといけない、という人もいるけれど、倍精度が必要じゃないシミュレーションも世の中いっぱいあるわけで、必要な精度が充分速く計算できればいいのではないかと思っている (そうだそうだ!)
[ 永山さん@広島市立大 ]
あー!これって、回路規模が区間の分割数に依存するから、精度が上がってもあんまり回路規模(メモリ含む)増えないのか。
中里さん
浮動小数点とかに拡張はできるんでしょか?
– いけると思います。
sin, cos みたいな周期関数でも、1周期分を定義すれば使える (自動的に定義域を削減できる)?
– ううむ、range reduction まだはっきりとは申し上げられないです。
[ かつらくん ]
井口先生@北陸先端大
DRP はあと2倍くらい、FPGA はあと5倍くらい並列性が上げられるけど?
– ええ。でも、特にそういうことはしていない。並列性をあげればそれだけ性能は出ます。
神戸先生@近畿大
デバイスもツールも違うのをいっぺんに評価してるのでどうかと思うんですが。DK は並列性をユーザが自分で書く方針、Cyber はツールがデザイン空間探索をやる方針なので、こりゃデバイスの比較というより、ツールの比較になっちゃってるんではないですか
– はい…
末吉先生
貴重なデータではあるが、プロセスもなにも違うので、消費電力とか、そのまま評価するのは不公平では?クロックネットワークの shutdown をちゃんと使うとか、合成を XST じゃなくて Synplify でやるとか、考えてみてくださいな。
井口先生
2VP50 って、製品レンジの中間にあるわけですが、使ってる DRP はどのくらいの位置づけ?
– わすれました
っておい、DRP-1 はまだチップ一種類しかないだろ!

RECONF2005 65-68 (Dec.01: Architecture II)

意図せずして最初のをサボってしまいましたあうあう。

意図せずして最初のをサボってしまいましたあうあう。
日立の動的再構成なデバイスに関するセッション。

構成情報の階層記憶制御による再構成型プロセッサ FE-GAの性能・面積比の向上

演算セルアレイ(ALUセル、MLT(乗算/MAC)セル、基本的に16bit) はクロスバを介してLoad/Store セル・ローカルメモリに接続。コンフィギュレーションマネージャを外部(といってもチップ内部)に持ち、セルの類似性を利用して構成情報を圧縮することで構成情報のサイズを 1/5 くらいまで落とすことができる。圧縮しないと構成情報の転送がボトルネックになってしまう。構成情報はバックグラウンドでロード可能。

Q & A

IPFlex 佐藤さん: 構成情報のサイズはどれくらい?公表できれば教えてください
→ALU, MLT セルの構成情報は 96bit とか。予稿にでています
久我先生@熊本大: 16エントリくらいが面積効率的な落としどころなのか、増やすとどうなるか
→階層化することでそれくらいでも性能が出せるようになった、と

再構成プロセッサ FE-GA のオーディオ処理への応用

AAC 128kbps, 2ch, 44.1kHz のエンコードをシミュレータ上で実行。シミュレータの演算のところは cycle level accurate、制御系は functional level.
102MHz で 8 倍速AACエンコードを実現。FIR とか DCT で、組み込み向け single MAC DSP の 10 倍くらい?
configuration を preload することで、4.8M cycle くらいかかるのが 32k cycle に。さらに圧縮することで、2k 回くらい入れ替えなきゃいけないのを1回にすることができた。
今後は開発環境も整備していく予定。

Q & A

NEC の梶原さん: ALUとMULのブロックが 3:1 で入ってますが、どんな感じで決めたかというのと、今回の実装でのリソース消費状況を教えてください。
→ ALU-MUL-ALU-ALU が8列ある構成は、ALUx4 7列 + MULx4 1列よりだいぶ使用効率が上がる感じでした。
早稲田の木村先生: Cのリファレンスコードからマッピングをされたようですが、loop unrolling とか、そういうtuningはどんな感じでやりましたか?
→ FFT はバタフライまで広げてから mapping. その他のアプリケーションでは 2、3重くらいのループをまんなかまであけて、あとはデータアクセスの順番をチューニングしたりとか
コンパイラを作る上で従来型のプロセッサと違うところは?
→ interconnection の制約のある 2 次元のアレイに、命令列を流し込むと 3 次元になるわけで、そのへんが難しいかも
末吉先生: VLIW の一種みたいなものですよね。接続が限られているうえにしかも non-uniform ですし、大変。アプリケーションひとつにどれくらいかかりました?
→ ふたりくらいで半年とか。ツールほしいです。
佐藤さん@日立: non-uniform なところに DFG をマップするのが大変。C のプログラムをうまくマップするのもやっぱり大変。その 2 点くらいと、configuration / data のロードを演算を止めることなく行えるようにするところのスケジューリングが難しいかな。ポインタを使って圧縮制御をするところも、静的にプログラムを眺められないような場合には、また大変です。
IPFlex の芝さん: Loop unrolling で carry dependency とかがあるとやばいと思うんですが、フィードバックとかの機構はあるんでしょうか?
→ DSP 関係では依存関係が複雑だったりするので、HPC な場合と違ってコンパイラ的には難しいかな。小さなループで依存関係がある場合は、チップの上でなんとかできるが、大きい場合には一度ローカルメモリに吐き出してから処理する必要があります。

再構成プロセッサ FE-GA 上への FFT へのマッピング

日立の佐藤さん。数学のご出身なのですね(かっこいい!)。
ALU-MUL-ALU-ALUな構成だが、右からも左からもデータが流せたりするので、MUL-ALU-ALU-ALU とか、MUL が3つめ4つめにあるような構成を取ることもできる。
基数2の Cooley-Tukey 型を、4×4 cell に入れて、FE-GA にふたつ載せる。
セル利用率 90.5% でサイクル数オーバーヘッドは 3.5%。

Q & A

トヨタITの方: FFTを効率よくするためにクロスバを導入したりしているようなのだが、アプリケーションを載せてみてアーキテクチャにフィードバックしたのはどんな点?
→ クロスバは最初から載せようか、という感じだったのだけれど、MUL をどの列に置くかをわりと自由にとれるような機構 (FFT では最初の行に置きたかった) とかを入れてもらった。あと、メモリから ALU に転送するときの遅延を自由にとれる仕掛けとか。
1k point とか 2k point の場合、基数を4とか8にすると思うのだが、基数が上がった場合に同じような実装で対応できるのでしょうか?
→ まあ、同じバタフライなので、なんとかなるんでないかと。途中で分割する必要はあるけれど。
飯田先生@熊本大: 4×8 というサイズはアプリケーションを作ってみて最適だとわかったのか、大きくしたり小さくする必要はどうなのか。
→ コアを複数接続することによるスケーラビリティはあるので大丈夫だと思う。ただ、いまのところマルチメディアな小さいものしかやっていないので、WLAN のようなのをやると難しいかも。

RECONF2005 62-64 (Dec.01: Security & Dependability)

動的再構成プロセッサに搭載した異常通信の探知機能ルータなどで行う DDoS をはじめとする攻撃からのプロテクション。 FPGA なんかでやると、ルールの更新などに時間がかかってしまうため、動的再構成デバイスがよさそう。

動的再構成プロセッサに搭載した異常通信の探知機能

日立中央研究所の方。
ルータなどで行う DDoS をはじめとする攻撃からのプロテクション。
FPGA なんかでやると、ルールの更新などに時間がかかってしまうため、動的再構成デバイスがよさそう。防御方式(アルゴリズム)も新しく提案しており、面積を削減しつつスループット向上と異常通信遮断までの時間短縮を図っている。汎用のマイクロプロセッサを使う場合と比べると、あまり大きなメモリが使えないところが難しいが、うまいことやっている模様。

Q & A

井口先生: アルゴリズムが変わるってどれくらい変わるのか?
→1パケット毎に configuration が変わるのが理想的なので、FPGA だとちょっとしんどいかも。いまはまだそこまで行ってないのだけれど。
DDoS のは DDoS の人とか、P2P は P2P の人とか、それぞれの攻撃の種類によって新しい開発者が必要?
→C 言語でいうところの数十行程度の変更なのだけれど、ハードウェアにすると(判定部分を作ったりするのが)大変
飯田先生: 再構成するのはどのタイミング?
→1500octet なパケットがきたときに、判定に使うのはほんの一部なので、使わない部分が到着している間に再構成すればよい。64octet な packet とか、短いのが連続してくるとだいぶキビシイ
NEC 梶原さん: 検出するときに、テーブル参照だけすればよいのであれば、データパスそのものは書き換えなくて済むわけで、reconfigurable である必要はないと思うのだが
→アルゴリズムそのものが変わらないと対応できないので、そういう構成はちょっとムリです

FPGAを用いたウィルスチェックシステムの提案

東邦大学のひと。
802.3 (Ethernet) のレベルでパケットをがーっと読んでウィルスチェックしてくれるシステム。set top box 用みたいな感じ。ClamAV で使われている、Virus の signature から HDL を自動生成するところがカッコイイと思う。ていうか、10Gbps ですかマジですか。FPGA は Stratix で、33MHz で動かしております。
複数の Ethernet フレームに分割された virus が原状だと検出できませぬ。あと、検出後にどうするかが問題だ。こっちは実装云々というより、アイデアの問題かもな。
なんかこれすごいですよ。質疑応答も大盛り上がり。
トヨタITの方: データベースだけを更新するやり方で OK?
→ワイヤのつなぎ方でマッチングをしているので、回路の構成そのものを変更する必要がある。
データベースだけ更新する方法だとどうよ?
→そうするとメモリの読み出しとかが問題になってしまう (そりゃそうだ)
FPGAの構成データもネットワークで転送するわけだが、それが安全であることはどうやって保証する?
→FPGAの暗号化機能があるので、構成情報を暗号化して送信すればOKでないかな
お名前失念しました: signature の長さと数を教えてください
→SW で使っているものだと数百ビット程度のものが多い。FPGA 実装では 64bit でマッチングして、256 種類の signature を処理している。antivirus なソフトウェアは数万とか対応してるわけだが、現実に同時に流行ってるやつは100種類くらいなので、意外に充分かも
松下の前田さん: パターンが更新される前にやられちゃったら終わりだと思うんですが、けっきょく PC のほうに対策用の何かを入れなきゃいけない?
→まあ、なんでも2重3重にやらないとダメですよね。あとは、ネットワークの入り口においておくことで、スループットを落とさずにネットワーク全体を守ることができる。ディジタル家電とかも含めてな。
これ、antivirus software のデータベースを更新するときにパケットが捨てられちゃうことってないのか? とか思うんだけど、本質的じゃないし、ま、いっか。

Reconfiguration による FPGA の固定故障検出

平木研の中村さん。
宇宙とか砂漠とか無人島で FPGA が壊れちゃうと交換しにいけないので、どこが壊れたかをリモートで検出できる仕掛けが必要。部分的にぶっ壊れている場合にそこを使わずになんとかする方法、というのはわりとみんなやっているわけだが、検出のほうはうぬぬぬ、という感じなわけで。
検査時間に効いてくるのは当然、検査対象のサイズとテストの回数なので、そこを小さくすることを目指す。
使っている回路だけをテストするとか、0/1 に固定されている場所はチェックしなくておっけいとか、そういったところで検査対象の回路規模を絞り込む。
Xilinx の ncd ファイルを ncdread でテキストにして、配置配線情報をテキストにして読んでいる。んで、そこから故障検出回路を作るわけだ。
広島市立大の井上先生: 入力を動かしたときに応答がトグルするかどうかだけチェックするだけじゃだめで、正しく動いていて出力に伝わるかをみないといけないと思うわけですが
→あ、ちゃんと、結果が正しいかはチェックしています
明治大学の井口先生: 検査というか、どこが壊れてるかを診断するところまで考えてるわけですよね?
→はい
そのほかの FPGA テストの手法との差を明確にするとよいのでは

RECONF2005 59-61 (Dec.01)

A Solution for perfect classified networksRoesener さん @ Nishi Lab.off-chip なデータはすべて encrypt する、physical layer encryption..

研究会の受け付けやってて最初の2つは聞けませんでした。

A Solution for perfect classified networks

Roesener さん @ Nishi Lab.
off-chip なデータはすべて encrypt する、physical layer encryption.
AES とか ECC (楕円) とか。
前のやり方(ってどれだ)よりも面積減らすことができた。1Gbps で動かせる。

Q & A

IPFlex 佐藤さん: Altera と Xilinx でずいぶん latency が違うが?
→ 使ったチップの性能が違うので。

RECONF2005 56-58 (Nov.30, Application I)

ダイナミックリコンフィギャラブルプロセッサ DAPDNA-2 による1次元・2次元FFTの実装変な仕事してて全然メモがとれないんですが、ポイント数が増えてもリニアな時間の増加で済む感じ。 爆発したりはしない。

ダイナミックリコンフィギャラブルプロセッサ DAPDNA-2 による1次元・2次元FFTの実装

変な仕事してて全然メモがとれないんですが、ポイント数が増えてもリニアな時間の増加で済む感じ。爆発したりはしない。

Q & A

濱田さん@理研: 浮動小数点なバタフライコアってどうしてますか?昔、SPRING-8用の単精度よりちょっと落とした奴を使うためのエミュレータを作ったんですが
→すいません、固定小数点でやっとります
→わしのエミュレータって全然つかえないですかね?
→あうあう、それ知らなかったです

動的リコンフィギャラブルプロセッサ DRP-1 におけるアダプティブコンピューティング

しょーへーさんよーへーさん。

Q & A

飯田先生: Viterbi ってけっこう効果的な感じのアプリだと思いますが、一般的な adaptive computing のやり方としてはどんなことを考えてますか?
→バッテリの残りとか環境とか
サムスンの方: 実際の無線システムではマルチレートをやるのに符号化レートを変えたりするので、拘束長をかえることはあまりしないと思うんですが、それをやめて拘束長をいじるのにどんなメリットが?
→無線での実用よりも、adaptive なハードウェアの一例としての実装なのです。
ターボ符号とかは?
→まあ、もう結論でちゃった感じなのでやらなくてもいいかなと

リアルタイム組み込みシステムの動的再構成可能プロセッサへの一実装方法の提案

この時間、内職の負荷がピークに達してまして、なにもきいてませんすみません。
リアルタイムな処理で動的再構成なデバイスを使う場合にどうコンテキストを分割したらコンテキスト切り替え時間がクリティカルにならずに済むか、みたいな話。ちゃんと解こうとすると NP 困難になってしまうので、ヒューリスティックに解決しようとする方向性。
最早実行可能条件とか最遅実行許容時間とか。
MPEG デコーダの処理フローをモデルとしてスケジューリングしてみた。分割してもしなくても同じ時間でできる=つまりハードウェア量だけ減ってウハウハ。
ひろなか先生:どんなデバイスをモデルとしてやっている?
→DRP みたいなやつ。全面切り替えな動的再構成で、状態を維持したまま追い出されたり戻ってきたり。
ふつうの OS (ソフトウェア)でやるのと似ているのだけれど、DR なデバイスと違うのはどこ?
→DR なデバイスで、面積が限られているような場合には、いままでは全部並列に動かせてたのを別のコンテキストに割り付けなきゃいけなくなって待ち時間が発生したりするわけだが、それで実行時間が守れなくなったりすると困るぜー、というのが大事なところです。つまり、スケジューリングにコンテキスト分割のところまで含まれるところが難しいぜ、ってことですな。並列度が変化したりするというところ。 (共著の木谷さん)
IPFlex の方(芝さん?): 特定の RTOS の上で制御をする、ということを考えているのか?
→このやり方を OS とかに組み込んでやるみたいな感じだ (ということを話していた)
→おっと、直接ハードウェアにこれを実装することを考えているんですよ(共著者の先生)
IPFlex の方(佐藤さん?): ハードウェアでやる場合に、外部の状況によってどうするかが変わってくること (電波状況で分岐のしかたが変わるとか) があると思うのだけれど、対応のさせ方のシナリオみたいなのはどうやって選択する?
→今回のは固定時間で処理が行われることしか考えてないので、今後の課題でございます

RECONF2005 53-55 (Nov.30: architecuture I)

粒度可変構造を持つ再構成論理セルアーキテクチャの提案熊本大の尼崎さん。 算術演算 (ALU) と論理演算 (LUT) の割合はアプリケーションによって違う。

粒度可変構造を持つ再構成論理セルアーキテクチャの提案

熊本大の尼崎さん。
算術演算 (ALU) と論理演算 (LUT) の割合はアプリケーションによって違う。ひとつもしくは複数のセルで両方を効率よく実現できたらうれしい。LUT のように論理の完全性をもち、加算器も表現できるようなセルの実現。
ハイブリッドセル (HC) を複数使うことで LUT もつくれるし、FA も作れる。キャリーパスとかを制御するために、HCの前に前置ロジックを置き、4個の HC をまとめた VGLC (Variable Grain Logic Cell) をひとつのロジックセルとして扱う感じ。RCA (Ripple Carry Adder) とか、LUT、MUX などになることができる。VGLC は 4HC, 20bit のメモリを持ち、18 入力 11 出力。
コンフィギュレーションビット数はたいていの場合、かなり減る。面積 (ROHM 0.35umで評価) もかなり。ロジックの面積効率なんかがかなり良くなる感じで、面白そう。チップ作ったりCAD作ったりする予定、だそうだ。

Q & A

NEC梶原さん: 論理表現能力の評価、n 変数の関数をいくつ HC 1 つで表現できるかでやってるんだけれども、実際にテクノロジマッピングをやってみたら、もっとかっこよくなるんでないか?
→次の人が乗算器とかのマッピング結果をしゃべります
→算術系じゃなくてランダムロジックもやるといいかもね
ふんがさん: 変数が多い場合とかは2変数に落とすんですか
→表現できない場合は演算器として使うのではなく、標準形に落としてやります。
→RCA だけど、32bit なんかの場合はだいじょうぶ?
→4bit RCA が最適かどうかはわからない。今後多ビットの構成についても考える。

粒度可変構造を持つ再構成論理セルを用いた基本演算回路の実装

乗算: 2次Booth
除算: 非回復法
VGLC へハンドマッピングして、VGLC の数 x VGLCひとつあたりの Tr 数とか、ASICで同じものを作った場合の Tr 数とかを比較。
Boothデコーダでは、3-LUT と Misc Logic (VGLC のゲートをうまいこと直接利用するやつ) で実現。

Q & A

ルネサスの方: 乗算器とか除算器で評価をとっているが、実際にはステートマシンの構成などで、配線の自由度がものをいうことになるのでは?
→ クラスタリングされていて内部の配線と外部の配線があるので、そのへんは分けて評価していかないといかんですね (飯田先生)
NECの梶原さん: Xilinx の比較的古いタイプの LUT と比較しておられるのだが、最近のクラスタ化されたものと比較するとどんな感じですか
→ 簡単にするために 4-LUT + D-FF ひとつのと比べたが、これからもっと詳しくやりたい

無線物理層のためのリコンフィギャラブルハードウェア構成法の一検討

無線物理層の構成はデータフロー型で、機能別に分けやすいし、なんとなく煮ている。FFT のポイント数とかがそれぞれ違ってくる感じなので、パラメータ設定でマルチモード端末を構成可能なハードウェア構成の検討ができそう。Reconfigurable というより、parameterizable かも。
FPGA を (たっくさん) 使ってプロトタイプを作っておりますです。Compact PCI で接続。

Q & A

ふんがさん: どれくらい専用化されてどれくらい汎用性がある?
→ バタフライ演算を丸ごとできるようなロジックユニットが必要。FPGA だと、スピードを上げるためにゲート使用率を下げなきゃいけなくて、性能的にしんどい。