G ゼミ 2010/5/14 渡辺健人. パフォーマンスの測定 CUDA Visual Profiler CUDA の SDK に標準でついているパフォーマン ス測定用のツール 使い方: exe ファイルのパスと作業ディレクトリ指定して実 行するだけ 注意点 : GPU のコード実行後にプログラム終了前に,

Slides:



Advertisements
Similar presentations
1 広島大学 理学研究科 尾崎 裕介 石川 健一. 1. Graphic Processing Unit (GPU) とは? 2. Nvidia CUDA programming model 3. GPU の高速化 4. QCD with CUDA 5. 結果 6. まとめ 2.
Advertisements

P2P 技術を応用した 分散システムの排他制御機構の試作 九州工業大学 情報科学センター 山之上 卓.
あみだくじを数え上げる 省領域アルゴリズム ◯中嶋章裕,斎藤寿樹,山口一章,増田澄男 (神戸大学) 1.
CPU設計と パイプライン.
在庫管理問題の動的計画法による 解法とCUDA を用いた高速化
区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム
連続系アルゴリズム演習 第2回 OpenMPによる課題.
CPUとGPUの 性能比較 -行列計算およびN体問題を用いて-
コンパイラ 第13回 最適化 38号館4階N-411 内線5459
Pose Tracking from Natural Features on Mobile Phones
プログラミング基礎I(再) 山元進.
Ex7. Search for Vacuum Problem
スレッドの同期と、スレッドの使用例 スレッドの同期 Lockオブジェクト: lockオブジェクトの生成
計算機システムⅡ 主記憶装置とALU,レジスタの制御
Ex8. Search for Vacuum Problem(2)
分散コンピューティング環境上の Webリンク収集システムの実装
DNASシステム上のアプリケーション起動シーケンスのための基盤であるdsh部分の性能評価
実行時のメモリ構造(1) Jasminの基礎とフレーム内動作
プログラミング基礎I(再) 山元進.
第四回 VB講座 画像とタイマー.
神奈川大学大学院工学研究科 電気電子情報工学専攻
Handel-Cによる       エアホッケー.
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
多数の遊休PC上での 分散ゲーム木探索 導入 ゲーム木探索 ⇒遊休PCを利用して高速化 例)コンピュータ将棋における次手の計算
整数計画法を用いた ペグソリティアの解法 ver. 2.1
第5回 CPUの役割と仕組み3 割り込み、パイプライン、並列処理
同期的にアドバイスを活性化できる分散動的アスペクト指向システム
階層的境界ボリュームを用いた 陰関数曲面の高速なレイトレーシング法
ML 演習 第 7 回 新井淳也、中村宇佑、前田俊行 2011/05/31.
第7回 条件による繰り返し.
文献名 “Performance Tuning of a CFD Code on the Earth Simulator”
情報処理3 第5回目講義         担当 鶴貝 達政 11/8/2018.
型付きアセンブリ言語を用いた安全なカーネル拡張
過負荷時の分散ソフトウェアの 性能劣化を改善する スケジューリングの提案
第9章 例外処理,パッケージ 9.1 例外処理 9.2 ガーベッジコレクション.
第10回関数 Ⅱ (ローカル変数とスコープ).
最適化の方法 中田育男著 コンパイラの構成と最適化 朝倉書店, 1999年 第11章.
梅澤威志 隣の芝は茶色いか 梅澤威志
ユーザ毎にカスタマイズ可能な Webアプリケーションの 効率の良い実装方法
アルゴリズムとプログラミング (Algorithms and Programming)
第7回 条件による繰り返し.
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
コンピュータの基本構成について 1E16M001-1 秋田梨紗 1E16M010-2 梅山桃香 1E16M013-3 大津智紗子
通信機構合わせた最適化をおこなう並列化ンパイラ
実行時情報を用いて通信を最適化するPCクラスタ上の並列化コンパイラ
計算機構成 第3回 データパス:計算をするところ テキスト14‐19、29‐35
Webコミュニティ概念を用いた Webマイニングについての研究 A study on Web Mining Based on Web Communities 清水 洋志.
プログラミング 4 整列アルゴリズム.
階層的境界ボリュームを用いた 陰関数曲面の高速なレイトレーシング法
アスペクト指向言語のための 独立性の高いパッケージシステム
バイトコードを単位とするJavaスライスシステムの試作
GPUを用いた疎行列の格納形式による行列ベクトル積の評価
Ex7. Search for Vacuum Problem
コーパス言語学 ~バッチ処理~ 2013.10. 28.
ソフトウェア保守のための コードクローン情報検索ツール
プログラムの基本構造と 構造化チャート(PAD)
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
JAVAバイトコードにおける データ依存解析手法の提案と実装
ファイルの読み込み #!/usr/bin/env perl #Perlスクリプトの指定 open(FILE, "food.txt");
第5回 メモリ管理(2) オーバレイ方式 論理アドレスとプログラムの再配置 静的再配置と動的再配置 仮想記憶とメモリ階層 セグメンテーション
オペレーティングシステム (プロセススケジューリング)
プログラミングⅡ 第2回.
全体ミーティング (5/23) 村田雅之.
同期処理のモジュール化を 可能にする アスペクト指向言語
Mondriaan Memory Protection の調査
ネットワーク・プログラミング デバイスドライバと環境変数.
第4回 CPUの役割と仕組み2 命令の解析と実行、クロック、レジスタ
SMP/マルチコアに対応した 型付きアセンブリ言語
参考:大きい要素の処理.
分散メモリ型並列計算機上での行列演算の並列化
Presentation transcript:

G ゼミ 2010/5/14 渡辺健人

パフォーマンスの測定 CUDA Visual Profiler CUDA の SDK に標準でついているパフォーマン ス測定用のツール 使い方: exe ファイルのパスと作業ディレクトリ指定して実 行するだけ 注意点 : GPU のコード実行後にプログラム終了前に, cudaThreadExit() などで終了処理をきちんと入れて ないと結果がでない

CUDA Visual Profiler の出力 出力内容 各カーネルの実行時間 メモリの store,load の回数 分岐の回数 命令数 命令のスループットなど

実行結果

CUDA の処理 CUDA は GPU を扱えるように C を拡張したも の 各スレッドで処理する内容を記述する 実行は32スレッドを 1 warp として warp 単 位で実行する

パフォーマンスチューニング レジスタ数 1スレッド単位ではレジスタ数が多い方がよい が多くなると同時に走るスレッドが減る ー>メモリのアクセスのレイテンシを隠すため にはある程度レジスタを少なくした方が良い スレッドの割り振り 32 スレッドまとめて処理するので1スレッドと 1ピクセルを対応付けした場合なるべく warp で 処理する範囲は正方形に近いほうがよい

結果 10万個のメタボールのレイキャスティング で計測 CPU:0.272 sec GPU:0.543 sec( 初期状態) レジスタ数: 32 個、 16 個、 8 個で実験 実行時間 (sec) は 0.543, 0.450, スレッドの割り当て: x 方向を 16,8,4 で実験 実行時間 (sec) は 0.450, 0.433, 0.417

BVH の構築のチューニング BVH の最大深さ、最大プリミティブ数は CPU で速くなるようにしていたので GPU で早く なるようにした CPU では最大深さ 33, 最大プリミティブ数 6 GPU は演算処理が速い + 葉ノード内での処理す るデータはメモリ上で連続に配置してある ー>深さを少し浅くして、葉ノード内での処理 するプリミティブ数を増やす 深さを 15, プリミティブ数 80 で (0.417 sec -> sec)

GPU での分岐の処理 GPU では warp 単位で実行する 例えば、 if (e) s1 else s2 があったとすると 32 thread で並列に e の真偽値を評価 true のスレッドで s1 を実行 次に、 false のスレッドで s2 を実行 提案法では分岐先で処理時間が長いところ があるので、その部分は同時に処理した方 が効率が良い

warp 単位で分岐をそろえる GPU では warp 単位で真偽値を調べる方法と して2つの方法がある(今回は1つ目が使 える) __all(bool): 全てのスレッドが真の場合のみ真 __any(bool): 1つでも真の値があれば真 _all(bool) を使った結果 sec -> sec

CUDAレイトレの参考文献 Ray Tracing on a GPU with CUDA-Comparative Study with Three Algorithm[Zlatuska] Uniform grid, kd-tree, bvh のパフォーマンス評価 Understanding with Efficiency of Ray Traversal on GPUs[Aila] 空間データ構造のトラバーサルとプリミティブの交差判定 のGPU向けの実装方法についての考察 Real-Time Ray Tracing with CUDA[Shih] スライド Optimizing ray tracing for CUDA[Saransaari] Cuda で実装するときの簡単な最適化