狠狠撸

狠狠撸Share a Scribd company logo
Altera SDK for OpenCL勉強会
プロファイラGUIを用いたコード分析
@h_suzuki
? 「プロファイラGUIを用いたコード分析」というタ
イトルを最初に決めたものの、Altera SDK for
OpenCL の開発フロー全体像がないとイメー
ジできないのでは…
? という事で全体にも簡単に触れます。
目次
? OpenCL 実装モデルと BSP
? Guaranteed タイミングフロー
? カーネル?プログラム開発フロー
? エミュレータ
? オプティマイゼーション?レポート
? エリア?レポート
? プロファイラ
? 処理データサイズの違いによるパイプライン稼働率の確認
? まとめ
? 参照資料
? Tips
Altera SDK for OpenCL
OpenCL モデル < StratixV の PCIeカード?モデル >
4
Host Code
main() {
read_data( … );
manipulate( … );
clEnqueueWriteBuffer( … );
clEnqueueNDRange(…,sum,…);
clEnqueueReadBuffer( … );
display_result( … );
} Standard
gcc
Compiler
EXE
Altera
Offline
Compiler
AOCX
__kernel void sum
(__global float *a,
__global float *b,
__global float *y)
{
int gid = get_global_id(0);
y[gid] = a[gid] + b[gid];
}
Verilog
Quartus II
OpenCL Accelerator Code
PCIe カードタイプでは、 clEnqueueWriteBuffer I の実行によりホスト( PC ) のメインメモリ
から、PCIe 経由でターゲット (FPGA )のメインメモリへデータを転送
OpenCL 開発の仕組み : BSP
5
PCIe gen2x8
Host Interface
インターコネクト
DDR3 メモリ
インターフェース
10Gb MAC/UOE
Data Interface
10Gb MAC/UOE
Data Interface
DDR3 メモリ
インターフェース
QDRII メモリ
インターフェース
QDRII メモリ
インターフェース
OpenCL
Kernels
OpenCL
Kernels
DDR
DDR
QDR
QDR
10G
ネット
ワーク
ホスト
OpenCL開発するには BSP が必要。
全ての評価ボードで OpenCL 開発できるわけではないので注意
標準のFPGA 開発ツールで
BSP を設計
OpenCL コンパイラで
ビルドしたモジュールが
BSP
OpenCLコンパイル手法
Guaranteed タイミングフロー
6
kernel.cl
AOC
Synthesis / P&R / STA on the
OpencL Kernels ONLY
Reconfig kernel PLL
DONE!
Post-fit QXP partition (PCIe,
UniPHY, DMA, …)Boardspec.xml
Re-run STA with the new
PLL value
Meet
Timin
g
No
Yes
タイミングがメットしたら
PLL の値を ROM に保持
Altera SDK for OpenCL
OpenCL カーネル?プログラム開発フロー
7
OpenCL カーネル?プログラムの作成
○ PC 上での検証
?x86 エミュレータ
?オプティマイゼーションレポート
?Visualizer
( コンパイル時間 : sec ~ min )
○ 実機検証
?プロファイラ GUI
( コンパイル時間 : hours )
要求性能を
満たせていない場合
DONE!
?基本デバッグ(文法/機能)
?パイプラインのストール多
?消費リソース多
エミュレータ
? カーネル?プログラムを x86 用にコンパイル するオプション
? 生成される aocx は x86 の実行体
? カーネルプログラム内で printf を使用したデバッグ
? 適用方法
? コンパイル時に -march=emulator を追加
? $ aoc -v --report -march=emulator vector_add.cl -o vector_add.aocx --board s5phq
オプティマイゼーション?レポート
? ループ文におけるキャリーの依存やループ展開など性能に影響を与える
要因となる項目の解析を行う
? -g はコンパイル時間やメモリにあまり影響しないため常にONを推奨
? レポートは下記のコマンド例では、tdfir/tdfir.log として生成される
? 適用方法
? コンパイル時に -g を追加
? $ aoc -v -g --report -c device/tdfir.cl -o tdfir.aocx --board s5phq
エリア?レポート
? 消費リソースのマッピングを解析、表示するツール
? どの行でどの程度のリソース消費するかを確認
? 適用方法
? コンパイル時に -g を追加し、生成される aoco/aocx に対して以下を実行
? HTML ファイルが生成される
? $ aocl analyze-area <kernel_name>.aoco
? $ aocl analyze-area <kernel_name>.aocx
プロファイラ
ボトルネックが
? 外部メモリ転送にあるのか
? ホスト?デバイス間の通信にあるのか
? カーネル?プログラムにあるのか
? チャネル転送にあるのか
を実機を使って確認するツール
※アルテラのベンダ拡張機能。
OpenCL コードと Qsys IP を Avalone-ST で
通信する I/O チャネル 、カーネル?プログラム間を
通信するデータチャネルの2種類のチャネル転送がある
カーネルA
BittWare社の Arria 10 GX 搭載ボード、A10PL4
プロファイラの仕組み
? Altera SDK for OpenCL では、 カーネル?プログラムのコード が ハード
ウェア化されてパイプラインが構築される
? 生成した パイプラインに パフォーマンス?カウンタ と プロファイリングロ
ジック を実装し、実機実行時に統計情報を取得
プロファイラの仕組み
? 物理的にカウンタを実装するため
? リソースへの影響:有り
? 性能への影響:有り
Profiler ALUTs Registers Logic utilization DSP Memory bits RAM blocks fmax
vector_add No 41795 59902 40628 0 1686880 351 288
vector_add Yes 43718 61915 41690 0 1686880 351 279
channelizer No 138616 221048 113430 196 8477664 729 276
channelizer Yes 144324 226809 116827 196 8477664 729 271
tdfir No 228931 353738 176046 512 2213954 352 263
tdfir Yes 229290 356544 275054 512 2213954 352 261
jpeg_decoder No 101077 176700 94906 160 5334304 751 182
jpeg_decoder Yes 138790 214375 115218 160 5334304 751 180
プロファイラを適用時の消費リソース差分及び fmax 差分
( ツール : Quartus Prime Standard v16.0.0 b211、ターゲットボード : BittWare S5PHQ D8 )
プロファイラの利用方法
? 適用方法
? コンパイル時に --profile を追加
? $ aoc -v --report --profile vector_add.cl -o vector_add.aocx --board s5phq
? 使用方法
? 実機実行完了後、統計情報がファイル( profile.mon )に書き出されるのでユー
ティリティ?ツール、aocl を使用してプロファイラ起動する
? $ aocl report vector_add.aocx profile.mon
プロファイラ GUI の見方
Source Code タブ
? Altera SDK for OpenCL で構築したパイプラインにおいて、ストールが
発生している箇所、メモリ転送の効率を確認できる
タブ名 説明
Attributes メモリ転送やチャネル転送の属性を表す
メモリタイプ: ローカル、グローバル
対象のメモリ: DDR、QDR
転送の種類 : リードやライトなど
Stall% メモリ及びチャネルアクセスによりパイプラインがストールしている割合
Occupancy% カーネルプログラムがメモリ転送及びチャネル転送を実行している割合
Bandwidth 平均のメモリ?アクセス速度及び効率
転送サイズとロード、ストアユニットの数によって効率が変わる
プロファイラ GUI の見方
Source Code タブ
? Occupancy% が低い
? パイプラインの稼働率が低い
? カーネル実行していない期間が長いこととなり性能低下の要因となる
? Stall% が高い
? メモリアクセス、チャネル通信が競合
? アクセス?パターンがよくない
? チャネル通信においてリードとライトが大きく不均衡になっている
? Bandwidth の Efficiency が低い
? 有効なデータを得るのに帯域が多く必要
? アクセス?パターンがよくない
? 扱うデータ量が少なくオーバーヘッドが大きい
プロファイラ GUI の見方
Kernel Execution タブ
? カーネル?プログラム全体の実行プロセスをグラフィカルに表示
? 各カーネル?プログラムの実行時間及び相互関係を表示
? ホスト?プロセッサ上のデータを PCIe 経由で デバイスのグローバル?メモ
リに転送
? デフォルトでは表示されないため、ホスト?プログラム実行前に環境変数、
ACL_PROFILE_TIMER を 1 に設定すること
? $ export ACL_PROFILE_TIMER=1
プロファイラ GUI の見方
<Kernel 名> タブ
? カーネル?プログラムの動作周波数 ( fmax )
? パイプラインが使用しているメモリの帯域
処理データサイズの違いによる
パイプライン稼働率の確認
使用するプログラム: vector_add
? 浮動小数点の足し算のサンプル?プログラム
? 問題数を増減させてパイプラインの稼働率とプロファイラの表示を確認
// ホストアプリケーション main.cpp
// Problem data.
unsigned N = 1000000; // problem size
scoped_array<scoped_aligned_ptr<float> > input_a, input_b; // num_devices elements
scoped_array<scoped_aligned_ptr<float> > output; // num_devices elements
// OpenCL カーネル?プログラム
__kernel void vector_add(__global const float *x,
__global const float *y,
__global float *restrict z)
{
// get index of the work item
int index = get_global_id(0);
// add the vector elements
z[index] = x[index] + y[index];
}
N=1
? Bandwidth / Efficiency が低く、濃い赤で表示される
? Occupancy% は 1.1% …
N Stall% Occupancy% Bandwidth[MB/s] Efficiency[%] Turnaround Time[ms] Kernel Time[ms] Thoughput[MB/s]
1 0 1.1 196.4 6.3 0.532 0.029 32.9
N=10
? Bandwidth / Efficiency が依然として低く、赤で表示される
? Occupancy% は 9.9%
N Stall% Occupancy% Bandwidth[MB/s] Efficiency[%] Turnaround Time[ms] Kernel Time[ms] Thoughput[MB/s]
10 0 9.9 180.8 62.5 0.351 0.014 681.2
N=100
? Bandwidth / Efficiency があがったが薄い赤で表示される
? Occupancy% は 50.6%
N Stall% Occupancy% Bandwidth[MB/s] Efficiency[%] Turnaround Time[ms] Kernel Time[ms] Thoughput[MB/s]
100 0 50.6 651.2 89.3 0.553 0.024 3973.6
N=1000
? Bandwidth / Efficiency が通常の色になった
? Occupancy% は 88.5%
N Stall% Occupancy% Bandwidth[MB/s] Efficiency[%] Turnaround Time[ms] Kernel Time[ms] Thoughput[MB/s]
1000 0 88.5 1026.0 99.2 0.903 0.042 22706.5
N=10000
? Efficiency は 100%。
N Stall% Occupancy% Bandwidth[MB/s] Efficiency[%] Turnaround Time[ms] Kernel Time[ms] Thoughput[MB/s]
10000 0 98.9 1136.6 100.0 0.876 0.066 144496.1
N=100000
N Stall% Occupancy% Bandwidth[MB/s] Efficiency[%] Turnaround Time[ms] Kernel Time[ms] Thoughput[MB/s]
100000 0 99.9 1148.0 100.0 2.036 0.415 229801.0
N=1000000
? vector_add のサンプルにおけるデフォルト値
N Stall% Occupancy% Bandwidth[MB/s] Efficiency[%] Turnaround Time[ms] Kernel Time[ms] Thoughput[MB/s]
1000000 0 100.0 1150.0 100.0 9.368 3.531 270086.2
N=10000000
? N=1000000 の時とスループットは同等
N Stall% Occupancy% Bandwidth[MB/s] Efficiency[%] Turnaround Time[ms] Kernel Time[ms] Thoughput[MB/s]
10000000 0 100.0 1150.0 100.0 81.121 34.806 273997.1
データサイズの違いによる効率の差
N Stall% Occupancy% Bandwidth[MB/s] Efficiency[%] Turnaround Time[ms] Kernel Time[ms] Thoughput[MB/s]
1 0 1.1 196.4 6.3 0.532 0.029 32.9
10 0 9.9 180.8 62.5 0.351 0.014 681.2
100 0 50.6 651.2 89.3 0.553 0.024 3973.6
1000 0 88.5 1026.0 99.2 0.903 0.042 22706.5
10000 0 98.9 1136.6 100.0 0.876 0.066 144496.1
100000 0 99.9 1148.0 100.0 2.036 0.415 229801.0
1000000 0 100.0 1150.0 100.0 9.368 3.531 270086.2
10000000 0 100.0 1150.0 100.0 81.121 34.806 273997.1
N=10000
N=1000000
おまけ
? Multithread Vector Operation Design Example ( NEW !! )
? コマンド?キューを 2個用意して マルチスレッドで複数カーネルを動作
? C=A x B と C=A + B
↑ デフォルトのコードを実行した際のプロファイラ表示
↑ ベリファイのコード削除
まとめ
? カーネルの実行時間、パイプラインの稼働率、メモリ
アクセスの効率をグラフィカルに表示できるプロファイ
ラはボトルネック解析に便利
? エミュレータ、オプティマイゼーション?レポートによる
PC上での検証とあわせてそれぞれのツールをうまく
使う事で開発効率向上が期待できる
参照資料
? Altera SDK for OpenCL Programming Guide (2016.05.02)
? https://www.altera.com/en_US/pdfs/literature/hb/opencl-
sdk/aocl_programming_guide.pdf
? Altera SDK for OpenCL Best Practices Guide (2016.05.02)
? https://www.altera.com/en_US/pdfs/literature/hb/opencl-sdk/aocl-best-practices-
guide.pdf
? OpenCL Vector Addition Design Example ( v16.0 )
? https://www.altera.com/support/support-resources/design-
examples/design-software/opencl/vector-addition.html
? Multithread Vector Operation Design Example( v16.0 )
? https://www.altera.com/support/support-resources/design-
examples/design-software/opencl/multithreaded-vector-operation.html
ご清聴ありがとうございました

More Related Content

What's hot (20)

増え続ける情报に対応するための贵笔骋础基础知识
増え続ける情报に対応するための贵笔骋础基础知识増え続ける情报に対応するための贵笔骋础基础知识
増え続ける情报に対応するための贵笔骋础基础知识
なおき きしだ
?
FPGAで作るOpenFlow Switch (FPGAエクストリーム?コンピューティング 第6回) FPGAX#6
FPGAで作るOpenFlow Switch (FPGAエクストリーム?コンピューティング 第6回) FPGAX#6FPGAで作るOpenFlow Switch (FPGAエクストリーム?コンピューティング 第6回) FPGAX#6
FPGAで作るOpenFlow Switch (FPGAエクストリーム?コンピューティング 第6回) FPGAX#6
Kentaro Ebisawa
?
笔测颁辞搁础惭を用いたグラフ処理贵笔骋础アクセラレータ
笔测颁辞搁础惭を用いたグラフ処理贵笔骋础アクセラレータ笔测颁辞搁础惭を用いたグラフ処理贵笔骋础アクセラレータ
笔测颁辞搁础惭を用いたグラフ処理贵笔骋础アクセラレータ
Shinya Takamaeda-Y
?
笔测迟丑辞苍による高位设计フレームワーク笔测颁辞搁础惭で贵笔骋础システムを开発してみよう
笔测迟丑辞苍による高位设计フレームワーク笔测颁辞搁础惭で贵笔骋础システムを开発してみよう笔测迟丑辞苍による高位设计フレームワーク笔测颁辞搁础惭で贵笔骋础システムを开発してみよう
笔测迟丑辞苍による高位设计フレームワーク笔测颁辞搁础惭で贵笔骋础システムを开発してみよう
Shinya Takamaeda-Y
?
20140310 fpgax
20140310 fpgax20140310 fpgax
20140310 fpgax
funadasatoshi
?
なにわ罢别肠丑20160827
なにわ罢别肠丑20160827なにわ罢别肠丑20160827
なにわ罢别肠丑20160827
Natsutani Minoru
?
マルチパラダイム型高水準ハードウェア设计环境の検讨
マルチパラダイム型高水準ハードウェア设计环境の検讨マルチパラダイム型高水準ハードウェア设计环境の検讨
マルチパラダイム型高水準ハードウェア设计环境の検讨
Shinya Takamaeda-Y
?
メモリ抽象化フレームワーク笔测颁辞搁础惭を用いたソフトプロセッサ混载贵笔骋础アクセラレータの开発
メモリ抽象化フレームワーク笔测颁辞搁础惭を用いたソフトプロセッサ混载贵笔骋础アクセラレータの开発メモリ抽象化フレームワーク笔测颁辞搁础惭を用いたソフトプロセッサ混载贵笔骋础アクセラレータの开発
メモリ抽象化フレームワーク笔测颁辞搁础惭を用いたソフトプロセッサ混载贵笔骋础アクセラレータの开発
Shinya Takamaeda-Y
?
贵笔骋础のトレンドをまとめてみた
贵笔骋础のトレンドをまとめてみた贵笔骋础のトレンドをまとめてみた
贵笔骋础のトレンドをまとめてみた
Takefumi MIYOSHI
?
FPGA
FPGAFPGA
FPGA
firewood
?
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
Shinya Takamaeda-Y
?
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
Shinya Takamaeda-Y
?
贵笔骋础?リコンフィギャラブルシステム研究の最新动向
贵笔骋础?リコンフィギャラブルシステム研究の最新动向贵笔骋础?リコンフィギャラブルシステム研究の最新动向
贵笔骋础?リコンフィギャラブルシステム研究の最新动向
Shinya Takamaeda-Y
?
贵笔骋础+厂辞颁+尝颈苍耻虫実践勉强会资料
贵笔骋础+厂辞颁+尝颈苍耻虫実践勉强会资料贵笔骋础+厂辞颁+尝颈苍耻虫実践勉强会资料
贵笔骋础+厂辞颁+尝颈苍耻虫実践勉强会资料
一路 川染
?
コンピュータアーキテクチャ研究の最新動向?ISCA2015参加報告? @FPGAエクストリーム?コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向?ISCA2015参加報告? @FPGAエクストリーム?コンピューティング 第7回 (#fpgax #7)コンピュータアーキテクチャ研究の最新動向?ISCA2015参加報告? @FPGAエクストリーム?コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向?ISCA2015参加報告? @FPGAエクストリーム?コンピューティング 第7回 (#fpgax #7)
Shinya Takamaeda-Y
?
20161120冲贬笔颁で贵笔骋础を使ってみたい冲蹿辫驳补蝉迟补谤迟耻辫
20161120冲贬笔颁で贵笔骋础を使ってみたい冲蹿辫驳补蝉迟补谤迟耻辫20161120冲贬笔颁で贵笔骋础を使ってみたい冲蹿辫驳补蝉迟补谤迟耻辫
20161120冲贬笔颁で贵笔骋础を使ってみたい冲蹿辫驳补蝉迟补谤迟耻辫
贬笔颁システムズ株式会社
?
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
Shinya Takamaeda-Y
?
贵笔骋础ことはじめ
贵笔骋础ことはじめ贵笔骋础ことはじめ
贵笔骋础ことはじめ
Takahiro Nakayama
?
増え続ける情报に対応するための贵笔骋础基础知识
増え続ける情报に対応するための贵笔骋础基础知识増え続ける情报に対応するための贵笔骋础基础知识
増え続ける情报に対応するための贵笔骋础基础知识
なおき きしだ
?
FPGAで作るOpenFlow Switch (FPGAエクストリーム?コンピューティング 第6回) FPGAX#6
FPGAで作るOpenFlow Switch (FPGAエクストリーム?コンピューティング 第6回) FPGAX#6FPGAで作るOpenFlow Switch (FPGAエクストリーム?コンピューティング 第6回) FPGAX#6
FPGAで作るOpenFlow Switch (FPGAエクストリーム?コンピューティング 第6回) FPGAX#6
Kentaro Ebisawa
?
笔测颁辞搁础惭を用いたグラフ処理贵笔骋础アクセラレータ
笔测颁辞搁础惭を用いたグラフ処理贵笔骋础アクセラレータ笔测颁辞搁础惭を用いたグラフ処理贵笔骋础アクセラレータ
笔测颁辞搁础惭を用いたグラフ処理贵笔骋础アクセラレータ
Shinya Takamaeda-Y
?
笔测迟丑辞苍による高位设计フレームワーク笔测颁辞搁础惭で贵笔骋础システムを开発してみよう
笔测迟丑辞苍による高位设计フレームワーク笔测颁辞搁础惭で贵笔骋础システムを开発してみよう笔测迟丑辞苍による高位设计フレームワーク笔测颁辞搁础惭で贵笔骋础システムを开発してみよう
笔测迟丑辞苍による高位设计フレームワーク笔测颁辞搁础惭で贵笔骋础システムを开発してみよう
Shinya Takamaeda-Y
?
なにわ罢别肠丑20160827
なにわ罢别肠丑20160827なにわ罢别肠丑20160827
なにわ罢别肠丑20160827
Natsutani Minoru
?
マルチパラダイム型高水準ハードウェア设计环境の検讨
マルチパラダイム型高水準ハードウェア设计环境の検讨マルチパラダイム型高水準ハードウェア设计环境の検讨
マルチパラダイム型高水準ハードウェア设计环境の検讨
Shinya Takamaeda-Y
?
メモリ抽象化フレームワーク笔测颁辞搁础惭を用いたソフトプロセッサ混载贵笔骋础アクセラレータの开発
メモリ抽象化フレームワーク笔测颁辞搁础惭を用いたソフトプロセッサ混载贵笔骋础アクセラレータの开発メモリ抽象化フレームワーク笔测颁辞搁础惭を用いたソフトプロセッサ混载贵笔骋础アクセラレータの开発
メモリ抽象化フレームワーク笔测颁辞搁础惭を用いたソフトプロセッサ混载贵笔骋础アクセラレータの开発
Shinya Takamaeda-Y
?
贵笔骋础のトレンドをまとめてみた
贵笔骋础のトレンドをまとめてみた贵笔骋础のトレンドをまとめてみた
贵笔骋础のトレンドをまとめてみた
Takefumi MIYOSHI
?
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
Shinya Takamaeda-Y
?
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
Shinya Takamaeda-Y
?
贵笔骋础?リコンフィギャラブルシステム研究の最新动向
贵笔骋础?リコンフィギャラブルシステム研究の最新动向贵笔骋础?リコンフィギャラブルシステム研究の最新动向
贵笔骋础?リコンフィギャラブルシステム研究の最新动向
Shinya Takamaeda-Y
?
贵笔骋础+厂辞颁+尝颈苍耻虫実践勉强会资料
贵笔骋础+厂辞颁+尝颈苍耻虫実践勉强会资料贵笔骋础+厂辞颁+尝颈苍耻虫実践勉强会资料
贵笔骋础+厂辞颁+尝颈苍耻虫実践勉强会资料
一路 川染
?
コンピュータアーキテクチャ研究の最新動向?ISCA2015参加報告? @FPGAエクストリーム?コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向?ISCA2015参加報告? @FPGAエクストリーム?コンピューティング 第7回 (#fpgax #7)コンピュータアーキテクチャ研究の最新動向?ISCA2015参加報告? @FPGAエクストリーム?コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向?ISCA2015参加報告? @FPGAエクストリーム?コンピューティング 第7回 (#fpgax #7)
Shinya Takamaeda-Y
?
20161120冲贬笔颁で贵笔骋础を使ってみたい冲蹿辫驳补蝉迟补谤迟耻辫
20161120冲贬笔颁で贵笔骋础を使ってみたい冲蹿辫驳补蝉迟补谤迟耻辫20161120冲贬笔颁で贵笔骋础を使ってみたい冲蹿辫驳补蝉迟补谤迟耻辫
20161120冲贬笔颁で贵笔骋础を使ってみたい冲蹿辫驳补蝉迟补谤迟耻辫
贬笔颁システムズ株式会社
?
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
Shinya Takamaeda-Y
?

Viewers also liked (6)

Altera SDK for OpenCL解体新書 : ホストとデバイスの関係
Altera SDK for OpenCL解体新書 : ホストとデバイスの関係Altera SDK for OpenCL解体新書 : ホストとデバイスの関係
Altera SDK for OpenCL解体新書 : ホストとデバイスの関係
Mr. Vengineer
?
Altera SDK for OpenCL解体新書 perlスクリプト編
Altera SDK for OpenCL解体新書 perlスクリプト編Altera SDK for OpenCL解体新書 perlスクリプト編
Altera SDK for OpenCL解体新書 perlスクリプト編
Mr. Vengineer
?
SDSoC解体新書2016.2版ソフトウェア編 (チラ見) : Inside SDSoC v2016.2 (Software short edtion)
SDSoC解体新書2016.2版ソフトウェア編 (チラ見) : Inside SDSoC v2016.2 (Software short edtion)SDSoC解体新書2016.2版ソフトウェア編 (チラ見) : Inside SDSoC v2016.2 (Software short edtion)
SDSoC解体新書2016.2版ソフトウェア編 (チラ見) : Inside SDSoC v2016.2 (Software short edtion)
Mr. Vengineer
?
贵笔骋础アクセラレータの作り方
贵笔骋础アクセラレータの作り方贵笔骋础アクセラレータの作り方
贵笔骋础アクセラレータの作り方
Mr. Vengineer
?
Intel Nervana Graph とは?
Intel Nervana Graph とは?Intel Nervana Graph とは?
Intel Nervana Graph とは?
Mr. Vengineer
?
TensorFlow XLA とハードウェア
TensorFlow XLA とハードウェアTensorFlow XLA とハードウェア
TensorFlow XLA とハードウェア
Mr. Vengineer
?
Altera SDK for OpenCL解体新書 : ホストとデバイスの関係
Altera SDK for OpenCL解体新書 : ホストとデバイスの関係Altera SDK for OpenCL解体新書 : ホストとデバイスの関係
Altera SDK for OpenCL解体新書 : ホストとデバイスの関係
Mr. Vengineer
?
Altera SDK for OpenCL解体新書 perlスクリプト編
Altera SDK for OpenCL解体新書 perlスクリプト編Altera SDK for OpenCL解体新書 perlスクリプト編
Altera SDK for OpenCL解体新書 perlスクリプト編
Mr. Vengineer
?
SDSoC解体新書2016.2版ソフトウェア編 (チラ見) : Inside SDSoC v2016.2 (Software short edtion)
SDSoC解体新書2016.2版ソフトウェア編 (チラ見) : Inside SDSoC v2016.2 (Software short edtion)SDSoC解体新書2016.2版ソフトウェア編 (チラ見) : Inside SDSoC v2016.2 (Software short edtion)
SDSoC解体新書2016.2版ソフトウェア編 (チラ見) : Inside SDSoC v2016.2 (Software short edtion)
Mr. Vengineer
?
贵笔骋础アクセラレータの作り方
贵笔骋础アクセラレータの作り方贵笔骋础アクセラレータの作り方
贵笔骋础アクセラレータの作り方
Mr. Vengineer
?
Intel Nervana Graph とは?
Intel Nervana Graph とは?Intel Nervana Graph とは?
Intel Nervana Graph とは?
Mr. Vengineer
?
TensorFlow XLA とハードウェア
TensorFlow XLA とハードウェアTensorFlow XLA とハードウェア
TensorFlow XLA とハードウェア
Mr. Vengineer
?

Similar to プロファイラGuiを用いたコード分析 20160610 (20)

SIGMOD 2022 Amazon Redshift Re-invented を読んで
SIGMOD 2022Amazon Redshift Re-invented を読んでSIGMOD 2022Amazon Redshift Re-invented を読んで
SIGMOD 2022 Amazon Redshift Re-invented を読んで
Yohei Azekatsu
?
アドテク×厂肠补濒补×パフォーマンスチューニング
アドテク×厂肠补濒补×パフォーマンスチューニングアドテク×厂肠补濒补×パフォーマンスチューニング
アドテク×厂肠补濒补×パフォーマンスチューニング
Yosuke Mizutani
?
実践!顿叠ベンチマークツールの使い方
実践!顿叠ベンチマークツールの使い方実践!顿叠ベンチマークツールの使い方
実践!顿叠ベンチマークツールの使い方
Fujishiro Takuya
?
Java でつくる 低レイテンシ実装の技巧
Java でつくる低レイテンシ実装の技巧Java でつくる低レイテンシ実装の技巧
Java でつくる 低レイテンシ実装の技巧
Ryosuke Yamazaki
?
20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会
samemoon
?
文献紹介:SegFormer: Simple and Efficient Design for Semantic Segmentation with Tr...
文献紹介:SegFormer: Simple and Efficient Design for Semantic Segmentation with Tr...文献紹介:SegFormer: Simple and Efficient Design for Semantic Segmentation with Tr...
文献紹介:SegFormer: Simple and Efficient Design for Semantic Segmentation with Tr...
Toru Tamaki
?
Zabbixでvmc statsの情報など監視
Zabbixでvmc statsの情報など監視Zabbixでvmc statsの情報など監視
Zabbixでvmc statsの情報など監視
Shota Onishi
?
公司における厂辫谤颈苍驳蔼日本蝉辫谤颈苍驳ユーザー会20090624
公司における厂辫谤颈苍驳蔼日本蝉辫谤颈苍驳ユーザー会20090624公司における厂辫谤颈苍驳蔼日本蝉辫谤颈苍驳ユーザー会20090624
公司における厂辫谤颈苍驳蔼日本蝉辫谤颈苍驳ユーザー会20090624
Yusuke Suzuki
?
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
VirtualTech Japan Inc.
?
サイボウズ?ラボユース成果発表会资料
サイボウズ?ラボユース成果発表会资料サイボウズ?ラボユース成果発表会资料
サイボウズ?ラボユース成果発表会资料
masahiro13
?
Qlik TECH TALK 20210706 厂础笔データ分析を加速する蚕濒颈办のアクセレレーターパッケージご绍介
Qlik TECH TALK 20210706 厂础笔データ分析を加速する蚕濒颈办のアクセレレーターパッケージご绍介Qlik TECH TALK 20210706 厂础笔データ分析を加速する蚕濒颈办のアクセレレーターパッケージご绍介
Qlik TECH TALK 20210706 厂础笔データ分析を加速する蚕濒颈办のアクセレレーターパッケージご绍介
QlikPresalesJapan
?
Maatkit で MySQL チューニング
Maatkit で MySQL チューニングMaatkit で MySQL チューニング
Maatkit で MySQL チューニング
Kensuke Nagae
?
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsPL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
Kohei KaiGai
?
Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用
Yukio Kumazawa
?
2015-07-27 Docker Introduction ?Dockerの基礎とユースケースに関する考察?
2015-07-27 Docker Introduction ?Dockerの基礎とユースケースに関する考察?2015-07-27 Docker Introduction ?Dockerの基礎とユースケースに関する考察?
2015-07-27 Docker Introduction ?Dockerの基礎とユースケースに関する考察?
Shuji Yamada
?
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQLHandlerSocket plugin for MySQL
HandlerSocket plugin for MySQL
akirahiguchi
?
20160728 hyperscale #03
20160728 hyperscale #0320160728 hyperscale #03
20160728 hyperscale #03
ManaMurakami1
?
骋碍贰で半年运用してみた
骋碍贰で半年运用してみた骋碍贰で半年运用してみた
骋碍贰で半年运用してみた
Katsutoshi Nagaoka
?
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Takamasa Maejima
?
KubeFlow MeetUp #1 Katibよもやま話
KubeFlow MeetUp #1 Katibよもやま話KubeFlow MeetUp #1 Katibよもやま話
KubeFlow MeetUp #1 Katibよもやま話
Yuji Oshima
?
SIGMOD 2022 Amazon Redshift Re-invented を読んで
SIGMOD 2022Amazon Redshift Re-invented を読んでSIGMOD 2022Amazon Redshift Re-invented を読んで
SIGMOD 2022 Amazon Redshift Re-invented を読んで
Yohei Azekatsu
?
アドテク×厂肠补濒补×パフォーマンスチューニング
アドテク×厂肠补濒补×パフォーマンスチューニングアドテク×厂肠补濒补×パフォーマンスチューニング
アドテク×厂肠补濒补×パフォーマンスチューニング
Yosuke Mizutani
?
実践!顿叠ベンチマークツールの使い方
実践!顿叠ベンチマークツールの使い方実践!顿叠ベンチマークツールの使い方
実践!顿叠ベンチマークツールの使い方
Fujishiro Takuya
?
Java でつくる 低レイテンシ実装の技巧
Java でつくる低レイテンシ実装の技巧Java でつくる低レイテンシ実装の技巧
Java でつくる 低レイテンシ実装の技巧
Ryosuke Yamazaki
?
20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会
samemoon
?
文献紹介:SegFormer: Simple and Efficient Design for Semantic Segmentation with Tr...
文献紹介:SegFormer: Simple and Efficient Design for Semantic Segmentation with Tr...文献紹介:SegFormer: Simple and Efficient Design for Semantic Segmentation with Tr...
文献紹介:SegFormer: Simple and Efficient Design for Semantic Segmentation with Tr...
Toru Tamaki
?
Zabbixでvmc statsの情報など監視
Zabbixでvmc statsの情報など監視Zabbixでvmc statsの情報など監視
Zabbixでvmc statsの情報など監視
Shota Onishi
?
公司における厂辫谤颈苍驳蔼日本蝉辫谤颈苍驳ユーザー会20090624
公司における厂辫谤颈苍驳蔼日本蝉辫谤颈苍驳ユーザー会20090624公司における厂辫谤颈苍驳蔼日本蝉辫谤颈苍驳ユーザー会20090624
公司における厂辫谤颈苍驳蔼日本蝉辫谤颈苍驳ユーザー会20090624
Yusuke Suzuki
?
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
VirtualTech Japan Inc.
?
サイボウズ?ラボユース成果発表会资料
サイボウズ?ラボユース成果発表会资料サイボウズ?ラボユース成果発表会资料
サイボウズ?ラボユース成果発表会资料
masahiro13
?
Qlik TECH TALK 20210706 厂础笔データ分析を加速する蚕濒颈办のアクセレレーターパッケージご绍介
Qlik TECH TALK 20210706 厂础笔データ分析を加速する蚕濒颈办のアクセレレーターパッケージご绍介Qlik TECH TALK 20210706 厂础笔データ分析を加速する蚕濒颈办のアクセレレーターパッケージご绍介
Qlik TECH TALK 20210706 厂础笔データ分析を加速する蚕濒颈办のアクセレレーターパッケージご绍介
QlikPresalesJapan
?
Maatkit で MySQL チューニング
Maatkit で MySQL チューニングMaatkit で MySQL チューニング
Maatkit で MySQL チューニング
Kensuke Nagae
?
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsPL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
Kohei KaiGai
?
Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用
Yukio Kumazawa
?
2015-07-27 Docker Introduction ?Dockerの基礎とユースケースに関する考察?
2015-07-27 Docker Introduction ?Dockerの基礎とユースケースに関する考察?2015-07-27 Docker Introduction ?Dockerの基礎とユースケースに関する考察?
2015-07-27 Docker Introduction ?Dockerの基礎とユースケースに関する考察?
Shuji Yamada
?
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQLHandlerSocket plugin for MySQL
HandlerSocket plugin for MySQL
akirahiguchi
?
20160728 hyperscale #03
20160728 hyperscale #0320160728 hyperscale #03
20160728 hyperscale #03
ManaMurakami1
?
骋碍贰で半年运用してみた
骋碍贰で半年运用してみた骋碍贰で半年运用してみた
骋碍贰で半年运用してみた
Katsutoshi Nagaoka
?
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Takamasa Maejima
?
KubeFlow MeetUp #1 Katibよもやま話
KubeFlow MeetUp #1 Katibよもやま話KubeFlow MeetUp #1 Katibよもやま話
KubeFlow MeetUp #1 Katibよもやま話
Yuji Oshima
?

Recently uploaded (15)

狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
Matsushita Laboratory
?
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
?
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
Matsushita Laboratory
?
LoRaWANプッシュボタン PB05-L カタログ A4サイズ Draginoカタログ両面
LoRaWANプッシュボタン PB05-L カタログ A4サイズ Draginoカタログ両面LoRaWANプッシュボタン PB05-L カタログ A4サイズ Draginoカタログ両面
LoRaWANプッシュボタン PB05-L カタログ A4サイズ Draginoカタログ両面
CRI Japan, Inc.
?
顿贰滨惭2025冲厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援.辫诲蹿
顿贰滨惭2025冲厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援.辫诲蹿顿贰滨惭2025冲厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援.辫诲蹿
顿贰滨惭2025冲厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援.辫诲蹿
Matsushita Laboratory
?
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
?
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
harmonylab
?
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
sugiuralab
?
顿贰滨惭2025冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲厂丑颈苍办补飞补.辫诲蹿
顿贰滨惭2025冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲厂丑颈苍办补飞补.辫诲蹿顿贰滨惭2025冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲厂丑颈苍办补飞补.辫诲蹿
顿贰滨惭2025冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲厂丑颈苍办补飞补.辫诲蹿
Matsushita Laboratory
?
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
Matsushita Laboratory
?
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
sugiuralab
?
LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3
LFDT Tokyo Meetup
?
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
?
自宅でも出来る!!VCF構築-概要編-JapanVMUG Spring Meeting with NEC
自宅でも出来る!!VCF構築-概要編-JapanVMUG Spring Meeting with NEC自宅でも出来る!!VCF構築-概要編-JapanVMUG Spring Meeting with NEC
自宅でも出来る!!VCF構築-概要編-JapanVMUG Spring Meeting with NEC
shomayama0221
?
田中瑠彗,东冈秀树,松下光范「手技疗法指导における动作指示の违いが指圧动作に及ぼす影响」
田中瑠彗,东冈秀树,松下光范「手技疗法指导における动作指示の违いが指圧动作に及ぼす影响」田中瑠彗,东冈秀树,松下光范「手技疗法指导における动作指示の违いが指圧动作に及ぼす影响」
田中瑠彗,东冈秀树,松下光范「手技疗法指导における动作指示の违いが指圧动作に及ぼす影响」
Matsushita Laboratory
?
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
Matsushita Laboratory
?
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
?
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
Matsushita Laboratory
?
LoRaWANプッシュボタン PB05-L カタログ A4サイズ Draginoカタログ両面
LoRaWANプッシュボタン PB05-L カタログ A4サイズ Draginoカタログ両面LoRaWANプッシュボタン PB05-L カタログ A4サイズ Draginoカタログ両面
LoRaWANプッシュボタン PB05-L カタログ A4サイズ Draginoカタログ両面
CRI Japan, Inc.
?
顿贰滨惭2025冲厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援.辫诲蹿
顿贰滨惭2025冲厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援.辫诲蹿顿贰滨惭2025冲厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援.辫诲蹿
顿贰滨惭2025冲厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援.辫诲蹿
Matsushita Laboratory
?
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
?
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
harmonylab
?
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
sugiuralab
?
顿贰滨惭2025冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲厂丑颈苍办补飞补.辫诲蹿
顿贰滨惭2025冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲厂丑颈苍办补飞补.辫诲蹿顿贰滨惭2025冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲厂丑颈苍办补飞补.辫诲蹿
顿贰滨惭2025冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲厂丑颈苍办补飞补.辫诲蹿
Matsushita Laboratory
?
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
Matsushita Laboratory
?
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
sugiuralab
?
LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3
LFDT Tokyo Meetup
?
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
?
自宅でも出来る!!VCF構築-概要編-JapanVMUG Spring Meeting with NEC
自宅でも出来る!!VCF構築-概要編-JapanVMUG Spring Meeting with NEC自宅でも出来る!!VCF構築-概要編-JapanVMUG Spring Meeting with NEC
自宅でも出来る!!VCF構築-概要編-JapanVMUG Spring Meeting with NEC
shomayama0221
?
田中瑠彗,东冈秀树,松下光范「手技疗法指导における动作指示の违いが指圧动作に及ぼす影响」
田中瑠彗,东冈秀树,松下光范「手技疗法指导における动作指示の违いが指圧动作に及ぼす影响」田中瑠彗,东冈秀树,松下光范「手技疗法指导における动作指示の违いが指圧动作に及ぼす影响」
田中瑠彗,东冈秀树,松下光范「手技疗法指导における动作指示の违いが指圧动作に及ぼす影响」
Matsushita Laboratory
?

プロファイラGuiを用いたコード分析 20160610

  • 1. Altera SDK for OpenCL勉強会 プロファイラGUIを用いたコード分析 @h_suzuki
  • 2. ? 「プロファイラGUIを用いたコード分析」というタ イトルを最初に決めたものの、Altera SDK for OpenCL の開発フロー全体像がないとイメー ジできないのでは… ? という事で全体にも簡単に触れます。
  • 3. 目次 ? OpenCL 実装モデルと BSP ? Guaranteed タイミングフロー ? カーネル?プログラム開発フロー ? エミュレータ ? オプティマイゼーション?レポート ? エリア?レポート ? プロファイラ ? 処理データサイズの違いによるパイプライン稼働率の確認 ? まとめ ? 参照資料 ? Tips
  • 4. Altera SDK for OpenCL OpenCL モデル < StratixV の PCIeカード?モデル > 4 Host Code main() { read_data( … ); manipulate( … ); clEnqueueWriteBuffer( … ); clEnqueueNDRange(…,sum,…); clEnqueueReadBuffer( … ); display_result( … ); } Standard gcc Compiler EXE Altera Offline Compiler AOCX __kernel void sum (__global float *a, __global float *b, __global float *y) { int gid = get_global_id(0); y[gid] = a[gid] + b[gid]; } Verilog Quartus II OpenCL Accelerator Code PCIe カードタイプでは、 clEnqueueWriteBuffer I の実行によりホスト( PC ) のメインメモリ から、PCIe 経由でターゲット (FPGA )のメインメモリへデータを転送
  • 5. OpenCL 開発の仕組み : BSP 5 PCIe gen2x8 Host Interface インターコネクト DDR3 メモリ インターフェース 10Gb MAC/UOE Data Interface 10Gb MAC/UOE Data Interface DDR3 メモリ インターフェース QDRII メモリ インターフェース QDRII メモリ インターフェース OpenCL Kernels OpenCL Kernels DDR DDR QDR QDR 10G ネット ワーク ホスト OpenCL開発するには BSP が必要。 全ての評価ボードで OpenCL 開発できるわけではないので注意 標準のFPGA 開発ツールで BSP を設計 OpenCL コンパイラで ビルドしたモジュールが BSP
  • 6. OpenCLコンパイル手法 Guaranteed タイミングフロー 6 kernel.cl AOC Synthesis / P&R / STA on the OpencL Kernels ONLY Reconfig kernel PLL DONE! Post-fit QXP partition (PCIe, UniPHY, DMA, …)Boardspec.xml Re-run STA with the new PLL value Meet Timin g No Yes タイミングがメットしたら PLL の値を ROM に保持
  • 7. Altera SDK for OpenCL OpenCL カーネル?プログラム開発フロー 7 OpenCL カーネル?プログラムの作成 ○ PC 上での検証 ?x86 エミュレータ ?オプティマイゼーションレポート ?Visualizer ( コンパイル時間 : sec ~ min ) ○ 実機検証 ?プロファイラ GUI ( コンパイル時間 : hours ) 要求性能を 満たせていない場合 DONE! ?基本デバッグ(文法/機能) ?パイプラインのストール多 ?消費リソース多
  • 8. エミュレータ ? カーネル?プログラムを x86 用にコンパイル するオプション ? 生成される aocx は x86 の実行体 ? カーネルプログラム内で printf を使用したデバッグ ? 適用方法 ? コンパイル時に -march=emulator を追加 ? $ aoc -v --report -march=emulator vector_add.cl -o vector_add.aocx --board s5phq
  • 9. オプティマイゼーション?レポート ? ループ文におけるキャリーの依存やループ展開など性能に影響を与える 要因となる項目の解析を行う ? -g はコンパイル時間やメモリにあまり影響しないため常にONを推奨 ? レポートは下記のコマンド例では、tdfir/tdfir.log として生成される ? 適用方法 ? コンパイル時に -g を追加 ? $ aoc -v -g --report -c device/tdfir.cl -o tdfir.aocx --board s5phq
  • 10. エリア?レポート ? 消費リソースのマッピングを解析、表示するツール ? どの行でどの程度のリソース消費するかを確認 ? 適用方法 ? コンパイル時に -g を追加し、生成される aoco/aocx に対して以下を実行 ? HTML ファイルが生成される ? $ aocl analyze-area <kernel_name>.aoco ? $ aocl analyze-area <kernel_name>.aocx
  • 11. プロファイラ ボトルネックが ? 外部メモリ転送にあるのか ? ホスト?デバイス間の通信にあるのか ? カーネル?プログラムにあるのか ? チャネル転送にあるのか を実機を使って確認するツール ※アルテラのベンダ拡張機能。 OpenCL コードと Qsys IP を Avalone-ST で 通信する I/O チャネル 、カーネル?プログラム間を 通信するデータチャネルの2種類のチャネル転送がある カーネルA BittWare社の Arria 10 GX 搭載ボード、A10PL4
  • 12. プロファイラの仕組み ? Altera SDK for OpenCL では、 カーネル?プログラムのコード が ハード ウェア化されてパイプラインが構築される ? 生成した パイプラインに パフォーマンス?カウンタ と プロファイリングロ ジック を実装し、実機実行時に統計情報を取得
  • 13. プロファイラの仕組み ? 物理的にカウンタを実装するため ? リソースへの影響:有り ? 性能への影響:有り Profiler ALUTs Registers Logic utilization DSP Memory bits RAM blocks fmax vector_add No 41795 59902 40628 0 1686880 351 288 vector_add Yes 43718 61915 41690 0 1686880 351 279 channelizer No 138616 221048 113430 196 8477664 729 276 channelizer Yes 144324 226809 116827 196 8477664 729 271 tdfir No 228931 353738 176046 512 2213954 352 263 tdfir Yes 229290 356544 275054 512 2213954 352 261 jpeg_decoder No 101077 176700 94906 160 5334304 751 182 jpeg_decoder Yes 138790 214375 115218 160 5334304 751 180 プロファイラを適用時の消費リソース差分及び fmax 差分 ( ツール : Quartus Prime Standard v16.0.0 b211、ターゲットボード : BittWare S5PHQ D8 )
  • 14. プロファイラの利用方法 ? 適用方法 ? コンパイル時に --profile を追加 ? $ aoc -v --report --profile vector_add.cl -o vector_add.aocx --board s5phq ? 使用方法 ? 実機実行完了後、統計情報がファイル( profile.mon )に書き出されるのでユー ティリティ?ツール、aocl を使用してプロファイラ起動する ? $ aocl report vector_add.aocx profile.mon
  • 15. プロファイラ GUI の見方 Source Code タブ ? Altera SDK for OpenCL で構築したパイプラインにおいて、ストールが 発生している箇所、メモリ転送の効率を確認できる タブ名 説明 Attributes メモリ転送やチャネル転送の属性を表す メモリタイプ: ローカル、グローバル 対象のメモリ: DDR、QDR 転送の種類 : リードやライトなど Stall% メモリ及びチャネルアクセスによりパイプラインがストールしている割合 Occupancy% カーネルプログラムがメモリ転送及びチャネル転送を実行している割合 Bandwidth 平均のメモリ?アクセス速度及び効率 転送サイズとロード、ストアユニットの数によって効率が変わる
  • 16. プロファイラ GUI の見方 Source Code タブ ? Occupancy% が低い ? パイプラインの稼働率が低い ? カーネル実行していない期間が長いこととなり性能低下の要因となる ? Stall% が高い ? メモリアクセス、チャネル通信が競合 ? アクセス?パターンがよくない ? チャネル通信においてリードとライトが大きく不均衡になっている ? Bandwidth の Efficiency が低い ? 有効なデータを得るのに帯域が多く必要 ? アクセス?パターンがよくない ? 扱うデータ量が少なくオーバーヘッドが大きい
  • 17. プロファイラ GUI の見方 Kernel Execution タブ ? カーネル?プログラム全体の実行プロセスをグラフィカルに表示 ? 各カーネル?プログラムの実行時間及び相互関係を表示 ? ホスト?プロセッサ上のデータを PCIe 経由で デバイスのグローバル?メモ リに転送 ? デフォルトでは表示されないため、ホスト?プログラム実行前に環境変数、 ACL_PROFILE_TIMER を 1 に設定すること ? $ export ACL_PROFILE_TIMER=1
  • 18. プロファイラ GUI の見方 <Kernel 名> タブ ? カーネル?プログラムの動作周波数 ( fmax ) ? パイプラインが使用しているメモリの帯域
  • 20. 使用するプログラム: vector_add ? 浮動小数点の足し算のサンプル?プログラム ? 問題数を増減させてパイプラインの稼働率とプロファイラの表示を確認 // ホストアプリケーション main.cpp // Problem data. unsigned N = 1000000; // problem size scoped_array<scoped_aligned_ptr<float> > input_a, input_b; // num_devices elements scoped_array<scoped_aligned_ptr<float> > output; // num_devices elements // OpenCL カーネル?プログラム __kernel void vector_add(__global const float *x, __global const float *y, __global float *restrict z) { // get index of the work item int index = get_global_id(0); // add the vector elements z[index] = x[index] + y[index]; }
  • 21. N=1 ? Bandwidth / Efficiency が低く、濃い赤で表示される ? Occupancy% は 1.1% … N Stall% Occupancy% Bandwidth[MB/s] Efficiency[%] Turnaround Time[ms] Kernel Time[ms] Thoughput[MB/s] 1 0 1.1 196.4 6.3 0.532 0.029 32.9
  • 22. N=10 ? Bandwidth / Efficiency が依然として低く、赤で表示される ? Occupancy% は 9.9% N Stall% Occupancy% Bandwidth[MB/s] Efficiency[%] Turnaround Time[ms] Kernel Time[ms] Thoughput[MB/s] 10 0 9.9 180.8 62.5 0.351 0.014 681.2
  • 23. N=100 ? Bandwidth / Efficiency があがったが薄い赤で表示される ? Occupancy% は 50.6% N Stall% Occupancy% Bandwidth[MB/s] Efficiency[%] Turnaround Time[ms] Kernel Time[ms] Thoughput[MB/s] 100 0 50.6 651.2 89.3 0.553 0.024 3973.6
  • 24. N=1000 ? Bandwidth / Efficiency が通常の色になった ? Occupancy% は 88.5% N Stall% Occupancy% Bandwidth[MB/s] Efficiency[%] Turnaround Time[ms] Kernel Time[ms] Thoughput[MB/s] 1000 0 88.5 1026.0 99.2 0.903 0.042 22706.5
  • 25. N=10000 ? Efficiency は 100%。 N Stall% Occupancy% Bandwidth[MB/s] Efficiency[%] Turnaround Time[ms] Kernel Time[ms] Thoughput[MB/s] 10000 0 98.9 1136.6 100.0 0.876 0.066 144496.1
  • 26. N=100000 N Stall% Occupancy% Bandwidth[MB/s] Efficiency[%] Turnaround Time[ms] Kernel Time[ms] Thoughput[MB/s] 100000 0 99.9 1148.0 100.0 2.036 0.415 229801.0
  • 27. N=1000000 ? vector_add のサンプルにおけるデフォルト値 N Stall% Occupancy% Bandwidth[MB/s] Efficiency[%] Turnaround Time[ms] Kernel Time[ms] Thoughput[MB/s] 1000000 0 100.0 1150.0 100.0 9.368 3.531 270086.2
  • 28. N=10000000 ? N=1000000 の時とスループットは同等 N Stall% Occupancy% Bandwidth[MB/s] Efficiency[%] Turnaround Time[ms] Kernel Time[ms] Thoughput[MB/s] 10000000 0 100.0 1150.0 100.0 81.121 34.806 273997.1
  • 29. データサイズの違いによる効率の差 N Stall% Occupancy% Bandwidth[MB/s] Efficiency[%] Turnaround Time[ms] Kernel Time[ms] Thoughput[MB/s] 1 0 1.1 196.4 6.3 0.532 0.029 32.9 10 0 9.9 180.8 62.5 0.351 0.014 681.2 100 0 50.6 651.2 89.3 0.553 0.024 3973.6 1000 0 88.5 1026.0 99.2 0.903 0.042 22706.5 10000 0 98.9 1136.6 100.0 0.876 0.066 144496.1 100000 0 99.9 1148.0 100.0 2.036 0.415 229801.0 1000000 0 100.0 1150.0 100.0 9.368 3.531 270086.2 10000000 0 100.0 1150.0 100.0 81.121 34.806 273997.1 N=10000 N=1000000
  • 30. おまけ ? Multithread Vector Operation Design Example ( NEW !! ) ? コマンド?キューを 2個用意して マルチスレッドで複数カーネルを動作 ? C=A x B と C=A + B ↑ デフォルトのコードを実行した際のプロファイラ表示 ↑ ベリファイのコード削除
  • 32. 参照資料 ? Altera SDK for OpenCL Programming Guide (2016.05.02) ? https://www.altera.com/en_US/pdfs/literature/hb/opencl- sdk/aocl_programming_guide.pdf ? Altera SDK for OpenCL Best Practices Guide (2016.05.02) ? https://www.altera.com/en_US/pdfs/literature/hb/opencl-sdk/aocl-best-practices- guide.pdf ? OpenCL Vector Addition Design Example ( v16.0 ) ? https://www.altera.com/support/support-resources/design- examples/design-software/opencl/vector-addition.html ? Multithread Vector Operation Design Example( v16.0 ) ? https://www.altera.com/support/support-resources/design- examples/design-software/opencl/multithreaded-vector-operation.html