OpenMPハードウェア動作合成システムの検証(Ⅰ)

Slides:



Advertisements
Similar presentations
計算理工学基礎 「ハイパフォーマンスコンピューティングの基礎」
Advertisements

Chapter11-4(前半) 加藤健.
VLSI設計論第4回 アキュムレータマシンと 仮遅延シミュレーション
LZ圧縮回路の設計とハード・ソフト 最適分割の検討 電子情報デザイン学科 高性能計算研究室 4回生 中山 和也 2009/2/27.
Capter9 Creating an Embedded Test Bench ( )
LMNtalからC言語への変換の設計と実装
計算機システムⅡ 主記憶装置とALU,レジスタの制御
計算機アーキテクチャ特論Chapter.6.6~6.9
5.3 各種カウンタ 平木.
PCクラスタにおける2個体分散遺伝的アルゴリズムの高速化
Handel-C基礎 および 7セグとマウスのハンドリング
Verilog HDL 12月21日(月).
テープ(メモリ)と状態で何をするか決める
コンピュータの主役はCPU(Central Processing Unit)
P,Q比が変更可能なScaLAPACKの コスト見積もり関数の開発
オリジナルなCPUの開発 指導教授:笠原 宏 05IE063 戸塚 雄太 05IE074 橋本 将平 05IE089 牧野 政道
4.2.2 4to1セレクタ.
プロセッサ設計教育のための 命令セット・スーパースカラシミュレータの試作と評価
  【事例演習6】  数式インタプリタ      解 説     “インタプリタの基本的な仕組み”.
プログラムはなぜ動くのか.
CSP記述によるモデル設計と ツールによる検証
画像処理ボード上での 高速テンプレートマッチングの 実装と検証
2016年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
基本情報技術概論(第8回) 埼玉大学 理工学研究科 堀山 貴史
パソコンの歴史 ~1970年 1970年代 1980年代 1990年~ ▲1946 ENIAC(世界最初の計算機、1,900加算/秒, 18,000素子) ▲1947 UNIVACⅠ(最初の商用計算機) ▲1964 IBM System/360(5.1MHz, 1MB, 2億円) ▲1974 インテル8080(8.
8. 順序回路の簡単化,機能的な順序回路 五島 正裕.
演算/メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法
第7回 2006/6/12.
Yutaka Yasuda, 2004 spring term
計算機工学特論A 第4回 論理合成 山越研究室 増山 知東 2007年11月7日 .
VLSI設計論 慶應義塾大学 理工学部 情報工学科 山﨑 信行
ハードウェア記述言語による 論理回路設計とFPGAへの実装 2
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
型付きアセンブリ言語を用いた安全なカーネル拡張
プログラムの制御構造 選択・繰り返し.
高速剰余算アルゴリズムとそのハードウェア実装についての研究
独立大学法人・電気通信大学 大学院情報システム学研究科 情報ネットワーク学専攻・並列処理学講座
最適化の方法 中田育男著 コンパイラの構成と最適化 朝倉書店, 1999年 第11章.
MPIとOpenMPを用いた Nクイーン問題の並列化
アルゴリズムとプログラミング (Algorithms and Programming)
巡回冗長検査CRC32の ハード/ソフト最適分割の検討
通信機構合わせた最適化をおこなう並列化ンパイラ
動的データ依存関係解析を用いた Javaプログラムスライス手法
各種ソート回路のハードウェア化と ハード/ソフト最適分割化の検討
ディジタル回路の設計と CADによるシステム設計
計算機構成 第2回 ALUと組み合わせ回路の記述
4点FFT設計 ファイヤー和田 知久 琉球大学・工学部・情報工学科 教授
計算機構成 第3回 データパス:計算をするところ テキスト14‐19、29‐35
計算機構成 第4回 アキュムレータマシン テキスト第3章
VLSI設計論第3回 順序回路の記述と論理合成
計算機構成 第11回 マルチサイクルCPU 慶應大学 天野英晴.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
コンピュータアーキテクチャ 第 9 回.
Handel-Cを用いた パックマンの設計
計算機工学特論 スライド 電気電子工学専攻 修士1年 弓仲研究室 河西良介
2017年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
社会の情報インフラストラクチャとして、高性能コンピュータおよびネットワークの重要性はますます増大しています。本研究室では、コンピュータおよびネットワークの高速化を狙いとする並列・分散情報処理の科学と技術に関する研究に取り組んでいます。効率のよいシステムの実現を目指して、下記の項目を追求しています。 ◇コンピュータアーキテクチャ.
コンピュータアーキテクチャ 第 2 回.
コンピュータアーキテクチャ 第 5 回.
パイプラインとは何か? マイクロプロセッサ(MPU)の高速化手法の一つのこと。
Cソースコード解析による ハード/ソフト最適分割システムの構築
計算機アーキテクチャ1 (計算機構成論(再)) 第二回 命令の種類と形式
第4回 CPUの役割と仕組み2 命令の解析と実行、クロック、レジスタ
プロセッサ設計支援ツールを用いた 独自プロセッサの設計
コンピュータアーキテクチャ 第 9 回.
コンピュータアーキテクチャ 第 5 回.
MPIを用いた並列処理計算 情報論理工学研究室 金久 英之
2014年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
並列処理プロセッサへの 実数演算機構の開発
1.2 言語処理の諸観点 (1)言語処理の利用分野
Presentation transcript:

OpenMPハードウェア動作合成システムの検証(Ⅰ) 高性能計算研究室 4回生 金森 央樹  2008/2/6

研究背景と目的 背景 目的 LSI開発の大規模化・期間の短縮 動作合成における並列処理記述の課題 OpenMPを用いたハードウェア動作合成システム 目的 本システムを用いて生成した回路と手書きにより生成した回路との比較と評価 素数判定プログラム、ラプラシアンフィルタ 本システムの改良方法と検討

OpenMPを用いた動作合成システム 逐次プログラムからの段階的な設計 OpenMP トランスレータ コンパイラ 並列アルゴリズム 並列効果 ハードウェア制約 OpenMP プログラム (動作記述) 逐次プログラムからの段階的な設計 トランスレータ OpenMP コンパイラ 並列アルゴリズム 並列効果 並列動作HW中間表現 マルチスレッド プログラム 早期に並列化手法の検討 検証時間の短縮 コード ジェネレータ SMP環境 (PCクラスタ) シミュレーション OpenMP構文を 利用した動作合成 並列動作ハードウェア ハードウェア合成 アルゴリズム評価

素数判定とラプラシアンフィルタ 素数判定 ラプラシアンフィルタ 繰り返し、対象値以外で余剰がなければ素数ではないと判断する。コード   素数であるか判定したい対象値を決め、2から対象値まで順番に除算を 繰り返し、対象値以外で余剰がなければ素数ではないと判断する。コード ジェネレータが余剰に対応していないため、減算を繰り返すことで代用した。 ラプラシアンフィルタ  エッジ検出の一つで画像に対し二次微分を行うことで、色の輝度、変化を 強調しエッジを検出する。画像データを保存するため、メモリを使用。 HDL記述・・・手書き約40行  システム約140行  ラプラシアンフィルタ 変換 1 -8        1 HDL記述・・・手書き約260行  システム約1050行 

相違点・・・状態遷移方法(case文、if文) HDL記述~素数判定~ assign ADD1_RESULT = ADD1_A + ADD1_B; assign ADD1_A = (CurrentState==P_STATE13) ? i : i; assign ADD1_B = (CurrentState==P_STATE13) ? 32'd1 : i; case(CurrentState) P_INIT : oEND <= 1'b0; P_END : oEND <= 1'b1; P_STATE7 : ans <= ConstNum6; P_STATE9 : i <= iDATAstart; P_STATE13 : i <= ADD1_RESULT; P_STATE14 : m <= iDATA; P_STATE16 : REG16 <= SUB1_RESULT;  P_STATE17 : m <= REG16; ~~~~略 if(i==0&&m==0)begin i <= iDATAfor; m <= iDATA; end else if(i==iDATAend)begin oEND <=1'b1; end else begin if(m>i)begin m <= m-i; end else if(m==i) begin ans<=1; i <= i+1; end 手書きの生成回路 システムの生成回路 相違点・・・状態遷移方法(case文、if文) 演算の表記方法、演算器部の有無

oADDR・・・アクセスするメモリのアドレス 相違点・・・演算の表記方法、演算器部の有無 HDL記述~ラプラシアンフィルタ~ oADDR・・・アクセスするメモリのアドレス P_STATE45_ARRAY_R0 : REG45_R0 <= ADD1_RESULT; P_STATE45_ARRAY_R1 : REG45_R1 <= MUL1_RESULT; P_STATE45_ARRAY_R2 : REG45_R2 <= ADD1_RESULT; P_STATE45_ARRAY_R3 : begin oADDR <= REG45_R2; 32’d3:begin oADDR <= address + i +(j-1)*width; 手書きの生成回路 システムの生成回路 相違点・・・演算の表記方法、演算器部の有無

素数判定~シミュレーション時間~ SMP環境での実行時間は、回路シミュレーション時間より約千倍高速 void main(void){ int iDATA,i,m,ans; ans=0; #pragma omp parallel for for(i=2;i<iDATA/2;i++){ for(m=iDATA;m>=i;m=m-i){} if(m==0) ans=1; } ノード数 SMP環境 実行時間[ms] 1 19.4(1.0) 2 11.5(0.6) 4 8.2(0.4) ノード数 回路シミュレーション時間[s] 手書き システム 1 20.4(1.0) 70.5(1.0) 2 21.0(1.0) 78.4(1.1) 4 21.8(1.1) 99.2(1.4) OpenMPを用いた素数判定プログラム SMP環境での実行時間は、回路シミュレーション時間より約千倍高速

素数判定~論理合成~ 動作周波数・・・システム>手書き。 ー1状態1演算により、クロックの周期が小さくなったため ノード数 最大動作周波数[MHz] 動作クロック数[Mclocks] スライス数[slices] 手書き システム 1 162 188 1.06(1.0) 3.35(1.0) 129(1.0) 148(1.0) 2 0.98(0.9) 3.02(0.9) 272(2.1) 282(1.9) 4 161 0.90(0.8) 2.75(0.8) 589(4.5) 434(2.9) 動作周波数・・・システム>手書き。 ー1状態1演算により、クロックの周期が小さくなったため 動作クロック数・・・システムは手書きの約3倍 ー1状態で実行する演算量の違い スライス数・・・あまり大きな差無し

ラプラシアンフィルタ ~シミュレーション時間&論理合成~ ノード数 SMP環境 実行時間[ms] 1 40.4(1.0) 2 22.5(0.6) 4 14.6(0.4) ノード数 回路シミュレーション時間[s] 手書き システム 1 1828(1.0) 13018(1.0) 2 1251(0.7) 11449(0.9) 4 1809(1.0) 10741(0.8) ノード数 最大動作周波数[MHz] 動作クロック数[Mclocks] スライス数[kslices] 手書き システム 1 104 70 21.9(1.0) 110.8(1.0) 0.64(1.0) 2.44(1.0) 2 106 10.9(0.5) 55.4(0.5) 1.22(2.0) 4.83(2.0) 4 97 27.7(0.3) 2.32(3.6) 9.48(3.9) SMP環境での実行時間は、回路シミュレーション時間の約30万~70万倍高速 動作クロック数・・・クロック減少比は、ノードが増えるほどシステムが優秀 スライス数・・・システムではノード数に比例し回路規模が増加

考察と改良案 実行クロック数・・・システム側は1状態1演算で処理しているので、1クロックでの仕事量が少なく、手書きよりもクロック数がかかる。 スライス数・・・演算器部、状態遷移に必要なレジスタや配線が生成されるため、システム側が大きくなる。 A<=A+Bの演算回路 Aレジスタ Aレジスタ 値保持レジスタ + + Bレジスタ Bレジスタ CLK CLK システム改良前(現在)の生成回路 改良案の生成回路 レジスタ、配線の減少による、回路規模の縮小化 演算にかかるクロック数の減少による、回路全体の速度向上

まとめと課題 まとめ ・素数判定プログラムでのシステムの評価 →1状態1演算により、動作周波数においてシステム>手書き 今後の課題  ・ラプラシアンフィルタでのシステムの評価  →理想的な速度向上比  →ノード数に比例して回路面積の増加 ・考察  ・システム改良案・・・演算結果を保持するレジスタを必要とせず、1クロックで演算、代入を実行できる回路の自動生成  →回路の面積縮小化と速度向上 今後の課題 ・考察で提案した改良案の実現 ・クロックサイクル数と動作周波数とのトレードオフ