Soumettre la recherche
Mettre en ligne
ACRiウェビナー:岩渕様ご講演資料
•
0 j'aime
•
378 vues
直
直久 住川
Suivre
第8回ACRiウェビナー:岩渕様ご講演資料 「ACRiルームで高速画像処理」
Lire moins
Lire la suite
Ingénierie
Affichage du diaporama
Signaler
Partager
Affichage du diaporama
Signaler
Partager
1 sur 32
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
ACRiウェビナー:小野様ご講演資料
ACRiウェビナー:小野様ご講演資料
直久 住川
Vivado hlsのシミュレーションとhlsストリーム
Vivado hlsのシミュレーションとhlsストリーム
marsee101
Vivado hls勉強会5(axi4 stream)
Vivado hls勉強会5(axi4 stream)
marsee101
FPGAのトレンドをまとめてみた
FPGAのトレンドをまとめてみた
Takefumi MIYOSHI
第9回ACRiウェビナー_セック/岩渕様ご講演資料
第9回ACRiウェビナー_セック/岩渕様ご講演資料
直久 住川
「FPGA 開発入門:FPGA を用いたエッジ AI の高速化手法を学ぶ」
「FPGA 開発入門:FPGA を用いたエッジ AI の高速化手法を学ぶ」
直久 住川
Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)
marsee101
高位合成でDeep learning
高位合成でDeep learning
Mori Labo.
Recommandé
ACRiウェビナー:小野様ご講演資料
ACRiウェビナー:小野様ご講演資料
直久 住川
Vivado hlsのシミュレーションとhlsストリーム
Vivado hlsのシミュレーションとhlsストリーム
marsee101
Vivado hls勉強会5(axi4 stream)
Vivado hls勉強会5(axi4 stream)
marsee101
FPGAのトレンドをまとめてみた
FPGAのトレンドをまとめてみた
Takefumi MIYOSHI
第9回ACRiウェビナー_セック/岩渕様ご講演資料
第9回ACRiウェビナー_セック/岩渕様ご講演資料
直久 住川
「FPGA 開発入門:FPGA を用いたエッジ AI の高速化手法を学ぶ」
「FPGA 開発入門:FPGA を用いたエッジ AI の高速化手法を学ぶ」
直久 住川
Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)
marsee101
高位合成でDeep learning
高位合成でDeep learning
Mori Labo.
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)
marsee101
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
Shinya Takamaeda-Y
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門
Fixstars Corporation
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門
ryos36
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
Vivado hls勉強会4(axi4 master)
Vivado hls勉強会4(axi4 master)
marsee101
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
marsee101
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
一路 川染
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
Mr. Vengineer
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
Zynq + Vivado HLS入門
Zynq + Vivado HLS入門
narusugimoto
ACRi HLSチャレンジ 高速化テクニック紹介
ACRi HLSチャレンジ 高速化テクニック紹介
Jun Ando
FPGAスタートアップ資料
FPGAスタートアップ資料
marsee101
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
Shinya Takamaeda-Y
Vivado hls勉強会3(axi4 lite slave)
Vivado hls勉強会3(axi4 lite slave)
marsee101
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
MITSUNARI Shigeo
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
MITSUNARI Shigeo
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
Ryosuke839
Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)
Hiroki Nakahara
Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)
Fixstars Corporation
C base design methodology with s dx and xilinx ml
C base design methodology with s dx and xilinx ml
ssuser3a4b8c
Contenu connexe
Tendances
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)
marsee101
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
Shinya Takamaeda-Y
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門
Fixstars Corporation
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門
ryos36
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
Vivado hls勉強会4(axi4 master)
Vivado hls勉強会4(axi4 master)
marsee101
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
marsee101
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
一路 川染
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
Mr. Vengineer
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
Zynq + Vivado HLS入門
Zynq + Vivado HLS入門
narusugimoto
ACRi HLSチャレンジ 高速化テクニック紹介
ACRi HLSチャレンジ 高速化テクニック紹介
Jun Ando
FPGAスタートアップ資料
FPGAスタートアップ資料
marsee101
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
Shinya Takamaeda-Y
Vivado hls勉強会3(axi4 lite slave)
Vivado hls勉強会3(axi4 lite slave)
marsee101
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
MITSUNARI Shigeo
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
MITSUNARI Shigeo
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
Ryosuke839
Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)
Hiroki Nakahara
Tendances
(20)
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Vivado hls勉強会4(axi4 master)
Vivado hls勉強会4(axi4 master)
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
Zynq + Vivado HLS入門
Zynq + Vivado HLS入門
ACRi HLSチャレンジ 高速化テクニック紹介
ACRi HLSチャレンジ 高速化テクニック紹介
FPGAスタートアップ資料
FPGAスタートアップ資料
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
Vivado hls勉強会3(axi4 lite slave)
Vivado hls勉強会3(axi4 lite slave)
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)
Similaire à ACRiウェビナー:岩渕様ご講演資料
Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)
Fixstars Corporation
C base design methodology with s dx and xilinx ml
C base design methodology with s dx and xilinx ml
ssuser3a4b8c
高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応
marsee101
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
Hiroshi SHIBATA
T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門
伸男 伊藤
なにわテック20180127
なにわテック20180127
Natsutani Minoru
DAS_202109
DAS_202109
Takefumi MIYOSHI
Hbstudy41 auto scaling
Hbstudy41 auto scaling
Fujishiro Takuya
Zynq VIPを利用したテストベンチ
Zynq VIPを利用したテストベンチ
Mr. Vengineer
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
inaz2
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
Iwana Chan
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
marsee101
20160728 hyperscale #03
20160728 hyperscale #03
ManaMurakami1
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
Takahito Tejima
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
Computational Materials Science Initiative
高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと
MITSUNARI Shigeo
Klocwork C/C++解析チューニング 概要
Klocwork C/C++解析チューニング 概要
Masaru Horioka
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorp
Masahito Zembutsu
Kobe.R #15 - Incanter チョットシッテル
Kobe.R #15 - Incanter チョットシッテル
tnoda
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU
Takuro Iizuka
Similaire à ACRiウェビナー:岩渕様ご講演資料
(20)
Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)
C base design methodology with s dx and xilinx ml
C base design methodology with s dx and xilinx ml
高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門
なにわテック20180127
なにわテック20180127
DAS_202109
DAS_202109
Hbstudy41 auto scaling
Hbstudy41 auto scaling
Zynq VIPを利用したテストベンチ
Zynq VIPを利用したテストベンチ
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
20160728 hyperscale #03
20160728 hyperscale #03
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと
Klocwork C/C++解析チューニング 概要
Klocwork C/C++解析チューニング 概要
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorp
Kobe.R #15 - Incanter チョットシッテル
Kobe.R #15 - Incanter チョットシッテル
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU
Plus de 直久 住川
公開用_講演資料_SCSK.pdf
公開用_講演資料_SCSK.pdf
直久 住川
ACRi-Webinar_Feb2023_agenda_20230225.pdf
ACRi-Webinar_Feb2023_agenda_20230225.pdf
直久 住川
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
直久 住川
第11回ACRiウェビナー_インテル/竹村様ご講演資料
第11回ACRiウェビナー_インテル/竹村様ご講演資料
直久 住川
2022-12-17-room.pdf
2022-12-17-room.pdf
直久 住川
ACRiルーム副室長_安藤様_講演資料
ACRiルーム副室長_安藤様_講演資料
直久 住川
DSF実行委員長_酒井様_講演資料
DSF実行委員長_酒井様_講演資料
直久 住川
ACRi事務局_住川_講演資料
ACRi事務局_住川_講演資料
直久 住川
VCK5000_Webiner_GIGABYTE様ご講演資料
VCK5000_Webiner_GIGABYTE様ご講演資料
直久 住川
AMD_Xilinx_AI_VCK5000_20220602R1.pdf
AMD_Xilinx_AI_VCK5000_20220602R1.pdf
直久 住川
VCK5000_Webiner_Fixstars様ご講演資料
VCK5000_Webiner_Fixstars様ご講演資料
直久 住川
第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料
直久 住川
20220525_kobayashi.pdf
20220525_kobayashi.pdf
直久 住川
220526_ACRi_Ando01r.pdf
220526_ACRi_Ando01r.pdf
直久 住川
2205ACRi_jinguji.pdf
2205ACRi_jinguji.pdf
直久 住川
ACRiポジショントーク_山科.pdf
ACRiポジショントーク_山科.pdf
直久 住川
ACRiウェビナー:アジェンダ
ACRiウェビナー:アジェンダ
直久 住川
Noriyuki Aibe, "High Efficiency Connection Method on Electric Signal Lines be...
Noriyuki Aibe, "High Efficiency Connection Method on Electric Signal Lines be...
直久 住川
ACRiウェビナー_GIGABYTE様ご講演資料
ACRiウェビナー_GIGABYTE様ご講演資料
直久 住川
ACRiウェビナー_ジーデップ・アドバンス様ご講演資料
ACRiウェビナー_ジーデップ・アドバンス様ご講演資料
直久 住川
Plus de 直久 住川
(20)
公開用_講演資料_SCSK.pdf
公開用_講演資料_SCSK.pdf
ACRi-Webinar_Feb2023_agenda_20230225.pdf
ACRi-Webinar_Feb2023_agenda_20230225.pdf
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_インテル/竹村様ご講演資料
第11回ACRiウェビナー_インテル/竹村様ご講演資料
2022-12-17-room.pdf
2022-12-17-room.pdf
ACRiルーム副室長_安藤様_講演資料
ACRiルーム副室長_安藤様_講演資料
DSF実行委員長_酒井様_講演資料
DSF実行委員長_酒井様_講演資料
ACRi事務局_住川_講演資料
ACRi事務局_住川_講演資料
VCK5000_Webiner_GIGABYTE様ご講演資料
VCK5000_Webiner_GIGABYTE様ご講演資料
AMD_Xilinx_AI_VCK5000_20220602R1.pdf
AMD_Xilinx_AI_VCK5000_20220602R1.pdf
VCK5000_Webiner_Fixstars様ご講演資料
VCK5000_Webiner_Fixstars様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料
20220525_kobayashi.pdf
20220525_kobayashi.pdf
220526_ACRi_Ando01r.pdf
220526_ACRi_Ando01r.pdf
2205ACRi_jinguji.pdf
2205ACRi_jinguji.pdf
ACRiポジショントーク_山科.pdf
ACRiポジショントーク_山科.pdf
ACRiウェビナー:アジェンダ
ACRiウェビナー:アジェンダ
Noriyuki Aibe, "High Efficiency Connection Method on Electric Signal Lines be...
Noriyuki Aibe, "High Efficiency Connection Method on Electric Signal Lines be...
ACRiウェビナー_GIGABYTE様ご講演資料
ACRiウェビナー_GIGABYTE様ご講演資料
ACRiウェビナー_ジーデップ・アドバンス様ご講演資料
ACRiウェビナー_ジーデップ・アドバンス様ご講演資料
ACRiウェビナー:岩渕様ご講演資料
1.
ACRiルームで高速画像処理 2022/03/15 岩渕 甲誠
2.
自己紹介 岩渕 甲誠(いわぶち
こうせい) システムエンジニア ◼ 2003年4月 株式会社セック入社 ◼ 主に組み込みソフトウェア開発に従事 ✓ 人工衛星 ✓ ロボット 2017年 FPGA研究プロジェクト開始 2 https://www.jaxa.jp/projects/sas/hayabusa2/index_j.html
3.
目的 FPGAの初心者、HDLでFPGA開発されている方に高 位合成を試していただきたい ACRiルームの開発環境を使って手軽に試してみる
FPGAにOpenCVのフィルタを実装し、画像処理を行う 3
4.
目次 4 ACRiルームとは Vitisとは
Vitis-Libraryとは 画像処理を実装してみる ◼ Gaussianフィルタ ◼ プロジェクト新規作成からビルド、実行まで ◼ 合成レポートとログ
5.
ACRiルームとは ACRi ルームは、100枚を超える
FPGA ボードや FPGA StarterBOX を含むサーバ計算機をリモートからアクセス して利用できる FPGA 利用環境です。 利用できるボード 5 ボード名 数量 Arty A7-35T 100 DE10-lite 10 Alveo 5 Arty A7-35T DE10-lite Alveo
6.
ACRiルームとは サーバースペック ◼ Arty
A7-35T / DE10-lite ◼ Alveo 6 項目 性能 CPU Intel Core i9-9900 (2スレッド) メモリ 6GB DDR4 OS Ubuntu 18.04 LTS 項目 性能(ag001) 性能(as001~4) CPU Intel Core i9-9940x (14コア 28スレッド) Intel Core i9-9900 (8コア 16スレッド) メモリ 128GB DDR4 128GB DDR4 OS Ubuntu 18.04 LTS Ubuntu 18.04 LTS
7.
ACRiルームとは ACRiルームの使い方 ◼ アカウント申請
ACRi登録ページから申請 https://gw.acri.c.titech.ac.jp/wp/registration アカウントは、ポータルサイトとLinuxサーバーの2つがある ので注意。 ◼ ACRiルームの予約・接続方法 https://gw.acri.c.titech.ac.jp/wp/manual/how-to-reserve ポータルサイトから予約 ビルドするだけならツール専用サーバーが便利(予約不要) ◼ ホスト名:as101~4 Windowsからは「リモートデスクトップ接続」 7
8.
Vitisとは AlveoやZynqで、CPU側のソフトウェアとFPGA側の 回路をまとめて開発する統合開発環境。 ◼ Xilinxの分類では「ソフトウェア開発ツール」
9.
Vitisとは FPGA処理を一つの関数として作成し、それを OpenCLで呼び出すだけ。CPU-FPGA間のインターフ ェース回路、デバイスドライバ、周辺回路などは全て高 位合成ツールが自動生成するか、用意されている。 9 CPU FPGA App Device Driver DMA I/O Hardware Function Clock Reset 自動生成部分 実装部分
10.
Vitis-Libraryとは Vitisで利用できる様々な機能を含むライブラリ。 ◼ Vision
and ImageにOpenCVを一部FPGA化した関数が 含まれている。 10 https://japan.xilinx.com/products/design-tools/vitis/vitis-libraries.html
11.
画像処理を実装 ACRiルームに接続 ◼ 今回は、as004のAlveo
U50を使う 環境設定 ◼ source /tools/Xilinx/Vitis/2021.1/settings64.sh ◼ source /opt/xilinx/xrt/setup.sh Vitisを起動 ◼ ワークスペースとなるディレクトリを作成 ◼ $ vitis で起動しワークスペースを選択 または、 $vitis –workspace=./ 11
12.
画像処理を実装 Alveoサーバーでのワークスペース https://gw.acri.c.titech.ac.jp/wp/manual/alveo-server ◼ ビルド出力ファイルが不要な場合は、作業完了時にFile
→ Exportでzipに圧縮してホームディレクトリに退避 12
13.
画像処理を実装 GaussianフィルタをVitis-Libraryを使って実装 ◼ Vitis-LibraryをGithubからダウンロード ◼
https://github.com/Xilinx/Vitis_Libraries ◼ ACRiルームから外部へ接続できないので、一旦自分のPC にダウンロードしてからSCP等でACRiルームに送る。 サンプルプロジェクトをコピー ◼ ACRiルームのLinuxサーバーに置かれます。 ◼ 場所は未定 13
14.
画像処理を実装 Vitisでプロジェクト新規作成 プラットフォーム選択 ◼
U50を選択 14
15.
画像処理を実装 プロジェクト名入力 15
16.
画像処理を実装 ソースコードのテンプレートを指定。 ◼ 今回はサンプルからコードを持ってくるので、Empty Applicationを選択。 16 “Vitis
IDE Examples”ボタン からテンプレートをダウンロード 可能。 ※ACRiルームからは不可 または直接ダウンロード https://github.com/Xilinx /Vitis_Accel_Examples
17.
画像処理を実装 Vitisのプロジェクト初期画面 17 FPGAのカーネ ルソースコード CPUのソフト ソースコード
18.
画像処理を実装 プロジェクトを作成すると、ワークスペース内に4つの ディレクトリが作成される。 ソースコードを配布サンプルからコピー ◼
ソースコードの配置 sample_gauss/src : CPU側ソフトウェア sample_gauss_kernel/src : FPGA側回路 Vitis 2020.1以前 ◼ xxx_kernelsとxxx_system_hw_linkは作られない ◼ ソースコードは全てxxx/src 18 u_iwabuchi@as004:~/webinar$ ls -l drwxr-xr-x 4 u_iwabuchi user2 108 3月 8 19:36 sample_gauss drwxr-xr-x 3 u_Iwabuchi user2 81 3月 8 19:36 sample_gauss_kernels drwxr-xr-x 2 u_Iwabuchi user2 88 3月 8 19:36 sample_gauss_system drwxr-xr-x 2 u_Iwabuchi user2 77 3月 8 19:36 sample_gauss_system_hw_link
19.
画像処理を実装 FPGA側の実装 19 void gaussiandiference(ap_uint<PTR_WIDTH>*
img_in, float sigma, ap_uint<PTR_WIDTH>* img_out, int rows, int cols) { #pragma HLS INTERFACE m_axi port=img_in offset=slave bundle=gmem0 #pragma HLS INTERFACE m_axi port=img_out offset=slave bundle=gmem1 #pragma HLS INTERFACE s_axilite port=sigma #pragma HLS INTERFACE s_axilite port=rows #pragma HLS INTERFACE s_axilite port=cols #pragma HLS INTERFACE s_axilite port=return xf::cv::Mat<TYPE, HEIGHT, WIDTH, NPC1> imgInput(rows, cols); xf::cv::Mat<TYPE, HEIGHT, WIDTH, NPC1> imgin1(rows, cols); #pragma HLS DATAFLOW // Retrieve xf::cv::Mat objects from img_in data: xf::cv::Array2xfMat<PTR_WIDTH, TYPE, HEIGHT, WIDTH, NPC1>(img_in, imgInput); // Run xfOpenCV kernel: xf::cv::GaussianBlur<FILTER_WIDTH, XF_BORDER_CONSTANT, TYPE, HEIGHT, WIDTH, NPC1>(imgInput, imgin1, sigma); // Convert output xf::cv::Mat object to output array: xf::cv::xfMat2Array<PTR_WIDTH, TYPE, HEIGHT, WIDTH, NPC1>(imgin1, img_out); return; } // End of kernel
20.
画像処理を実装 ビルド設定 ◼ ビルドターゲットをHardwareに設定 ◼
以降のビルドプロパティはターゲットごとに設定 ◼ 変更したら設定し直し。 20
21.
画像処理を実装 ビルド設定 ◼ CPU側ソフトウェアのビルドプロパティ ◼
Vitis_Libraryを展開したパスを設定 ◼ OpenCVのライブラリ設定 21
22.
画像処理を実装 ビルド設定 ◼ FPGA側回路 ◼
Vitis_Libraryを展開したパスを設定 22
23.
画像処理を実装 HW関数を指定 ◼ Vitisではソフトウェアの一部をFPGA化する
関数単位で指定 複数設定可能 ◼ HW関数単位でVitis_HLSが内部で動作しIPが生成される 23 ②“Add Hardware Function”ボタン ③追加するとここ に表示される ①xxx_kernels.prj を開く
24.
Vitisとは FPGA処理を一つの関数として作成し、それを OpenCLで呼び出すだけ。CPU-FPGA間のインターフ ェース回路、デバイスドライバ、周辺回路などは全て高 位合成ツールが自動生成するか、用意されている。 24 CPU FPGA App Device Driver DMA I/O Hardware Function Clock Reset 自動生成部分 実装部分
25.
画像処理を実装 面倒な人はZipで圧縮した配布サンプルプロジェクトを インポート 25 File →
Import Zipファイルを指定
26.
画像処理を実装 ビルド ◼ xxx_systemを選択 ◼
ビルドアイコンを押す ◼ ビルド時間:as004で約50分 ビルド結果 ◼ sample_gauss/Hardware sample_gauss : ソフトウェア実行ファイル binary_container_1.xclbin : bitstreamファイル 26
27.
画像処理を実装 ビルドの仕組み ◼ sample_gauss
CPU側のソフトウェアがコンパイルされる ◼ sample_gauss_kernels FPGAの回路がIP単位でビルドされる 内部でVitis_HLSが動作する 以下のディレクトリにVitis_HLSプロジェクトが生成される xxx_kernels/Hardware/build /<HW func> /<HW func> /<HW func>/ ◼ sample_gauss_system_hw_link FPGAの回路全体がビルドされる 内部でVivadoが動作する 以下のディレクトリにVivadoプロジェクトが生成される xxx_system_hw_link/Hardware/binary_container_1.build/link/vivado/vpl/prj 27
28.
画像処理を実装 実行 28 u_iwabuchi@as004:~/webinar/sample_gauss/Hardware$ ./sample_ gauss
../../image/golden.jpg in_gray.rows = 440 in_gray.cols = 660 in_gray.type() = 0 in_gray.depth() = 0 in_gray.channels() = 1 INFO: Running OpenCL section. Found Platform Platform Name: Xilinx INFO: Device found - xilinx_u50_gen3x16_xdma_201920_3 XCLBIN File Name: krnl_gaussiandifference INFO: Importing ./binary_container_1.xclbin Loading: './binary_container_1.xclbin' call enqueueTask Test Passed u_iwabuchi@as004:~/webinar/sample_gauss/Hardware$ ls binary_container_1.xclbin input_hls.png guidance.html makefile guidance.html.bak output_hls.png guidance.json sample_gauss guidance.pb sample_gauss_Hardware.build.ui.log guidance.pb.bak src input_hls.png output_hls.png
29.
画像処理を実装 ビルドログ、合成レポート確認 FPGA初心者にはHLSのログとレポートが重要 29 Vitis_HLS
ログ xxx_kernels/Hardware/build/logs レポート xxx_kernels/Hardware/build/reports Vivado ログ xxx_system_hw_link/Hardware/binary_container_1 .build/logs レポート xxx_system_hw_link/Hardware/binary_container_1 .build/reports
30.
他のサンプル 今回の実装は以下のサンプルを元に作成 Vitis_Libraries/vision/L3/examples/gaussiandifference ◼ 他にもサンプル多数
高位合成の基礎 https://github.com/Xilinx/Vitis_Accel_Examples ◼ 高位合成でのパイプライン化、並列化の実装方法 ◼ 主要なプラグマの使い方、高速化手法 など 資料 ◼ UG902:Vivado Design Suite ユーザーガイド 高位合成 ◼ UG1393:Vitis 統合ソフトウェア プラッ トフォームの資料 ◼ UG1399:Vitis 高位合成ユーザー ガイド ◼ ACRiブログ 30
31.
まとめ 高位合成開発環境の進化 ◼ 高位合成でのFPGA開発が現実的に ◼
高速化したいロジックのみに注力して周辺はツール任せ ソフト技術者にも扱えるように ハード技術者にとっては楽に?工数削減?性能は? ライブラリの拡充 ◼ OpenCV以外にも数学計算、統計、データベースなど ◼ AI 次回7月のウェビナーで講演予定 ◼ Vitis-AIを使ったMNIST ◼ 学習→量子化→AIコンパイル→実装→動作まで 31
32.
宣伝 高位合成の書籍を出版しました。 ◼ 「高位合成によるFPGA回路設計」
(森北出版) ◼ FPGA初心者、ソフトウェア技術者向け FPGAアーキテクチャの基礎 Vitisを使った高位合成の実装方法 Vitis-AIを使ったMNIST、YOLOv3 32
Télécharger maintenant