SlideShare a Scribd company logo
ラプラシアンフィルタをZedBoardで実装
(ソフトウェアからハードウェアにオフロード)
@marsee101 こと 小野 雅晃
1
説明の流れ
 ラプラシアンフィルタ
 ZedBoard
 Zynq
 カメラ画像表示回路のハードウェア
 ZedBoard用のLinuxとフレームバッファ
 ラプラシアンフィルタのソフトウェア実装
 ソフトウェアの最適化
 Vivado HLSでラプラシアンフィルタ式のみをハードウェア化
 Vivado HLSでラプラシアンフィルタ回路全体をハードウェア化
 自作AXI Master IPによるラプラシアンフィルタのハードウェア化
 再度Vivado HLSでラプラシアンフィルタ回路全体をハードウェア化
 まとめ
2
ラプラシアンフィルタとは?
 画像処理フィルタ
 画像のエッジを検出(二次微分フィルタ)
 3x3, 5x5
 3x3
 5x5
画像
3
ラプラシアンフィルタ処理後の画像
4
ZedBoardとは?
 Digilent社のZynq搭載ボード
 Zynq-7000 AP SoC XC7Z020-CLG484
 Dual-core ARM Cortex A9 + FPGA
 Memory:
 512 MB DDR3
 256 Mb Quad-SPI Flash
 4 GB SD card
 Onboard USB-JTAG Programming
 10/100/1000 Ethernet
 USB OTG 2.0 and USB-UART
 PS & PL I/O expansion (FMC, Pmod™, XADC)
 Multiple displays (1080p HDMI, 12-bit VGA, 128 x 32
OLED)
 I2S Audio CODEC
5
ZedBoard用OS (Linuxなど)
 GitHubのDigilent / linux-digilent
 https://github.com/Digilent/linux-digilent
 Ubuntu
 Android
 PetaLinux(Xilinx社純正)
 Yocto
 Etc…
 ソフトウェアは不得意なので教えて下さい。。。
6
ZedBoardの写真
7
Zynq-7000について
 デュアル・ARMプロセッサ(PS) + FPGA(PL)
 28nm HPLプロセス
 ロジック部分は7シリーズ相当
 最大1GHz動作のDual Cortex-A9
 ZedBoardのZynq-7020は667MHz
 PS(Processing System)とPL(Programming Logic)は
AXIバスで接続
 PS部分にDDRコントローラ、豊富なI/Oペリフェラル
 FPGAはARMプロセッサのスレーブ
 ARMプロセッサがブートして、FPGAをコンフィグ
 FPGA単体ではブート出来ない
8
Zynq-7000の用途
 画像処理
 自動車関連
 自動運転、自動ブレーキなど
 医療機器
 CTなど?
 カメラ関係
 スマートカメラ、放送用カメラ
 プリンタ複合機
 産業用モーター制御
 ソフトウェア無線
 GPUが無いので、パソコンやAndroidになるのは不向き?
9
PSブロック図
Zynq-7000 All Programmable SoC テ ク ニカル リ
フ ァ レ ンス マニュ アル UG585 (v1.5) 2013 年 3
月 7 日 P27, 図1-1:Zynq-7000 AP SoC の概要を
引用
10
PSとPLのインターフェース
 AXIバスでPSとPLを接続
 AXI_HPスレーブ・インターフェース
 32ビット幅または64ビット幅のスレーブ4ポート
 FAXI_MAX 250MHz
 HPポート、200MHz x 64ビット = 1.6GB/s
 AXI_GPマスタ&スレーブ・インターフェース
 データバス32ビット幅のマスタ、スレーブそれぞれ2ポート
 AXI_ACPスレーブ・インターフェース
 64ビットAXIスレーブ1ポート
 SCUに接続されて、CPUとPL間でキャッシュ・コヒーレンシを維持
 キャッシュに読み書きできるのでCPUとのデータ交換のレイテンシ
が短い
11
これからの話の注意点
 ARM+FPGAのZynqデバイス
 ハードウェアとソフトウェア両方の話
 どっちの話をしているかご注意下さい
 ソフトウェアのスライドは青いタイトル
 ハードウェアのスライドは赤いタイトル
 両方含んでいるスライドのタイトルは黒
12
ラプラシアンフィルタの話なのだが、まだ先は
長い
 必要なハードウェアは?
 CMOSカメラをZedBoardに付ける
 カメラ付けないとリアルタイムに画像が入力できない
 PmodコネクタにMT9D111を付けた
 CMOSカメラを表示する回路も
 ZynqのPLに作った(IP)
 カメラ画像を表示する回路も
 ZynqのPLに作った(IP)
13
カメラ画像表示の概要
 Digilent Linux
 ペンギン2匹をHDMIに表示
 ZedBoard_OOB_Design
 Digilent LinuxのPL内のハードウェア
 AXI VDMAとHDMI制御回路でディスプレイに表示
 オーディオ回路
 CMOSカメラ・インターフェース回路
 mt9d111_inf_axi_master_0
 ディスプレイ表示回路
 bitmap_disp_cntrler_axi_master_0
 VGA出力とHDMI出力
 HDMIは接続無し
14
ZedBoard_OOB_Design
 Digilent社のサイトにあるLinux用のデザイン
 XilinxのXPSというツールを使用している
 XPS(Xilinx Platform Studio)は、IPをつないで回路を構成す
る
15
ZedBoard_OOB_Design(改)
16
mt9d111_inf_axi_master_0と
bitmap_disp_cntrler_axi_master_0
17
注:AXI Interconnectは図から省いてあります
CMOSカメラと出力画面
 CMOSカメラ(MT9D111、マイクロン社製)
 1600x1200ピクセル、15fpsの性能
 800x600ピクセル、15fpsで使用(プレビューモード)
 PMODコネクタ2個に接続
 なぜ800x600で使っているのか?(誰にもたぶん話した
ことないです。初公開)
 それは。。。
 800x600のサブ・ディスプレイを持っているからです。。。
 http://marsee101.web.fc2.com/cmos_image_sensor.
html
18
使用するOSとフレームバッファ
 Digilent Linux
 カメラ用のフレームバッファはどうしよう?
 Linux初心者 - フレームバッファを設定できない
 他の領域を使うとLinux本体を壊す可能性がある
 そうだ。Digilent Linuxの標準ではHDの画面にペンギン
2匹のみ表示されているので、余っている部分を使う
 表示サイズは800x600なので、それで十分
 その下にラプラシアンフィルタの表示領域を確保
19
HDMI出力画面
20
VGAポートの画像
21
フレームバッファを使うために
Linuxカーネル調査
 ZedBoardのLinuxカーネルコンパイルのテスト
 UbuntuでDigilent Linuxのコンパイルのテスト - 成功
 Digilent Linuxを解析して、フレームバッファのアドレスをアロケート
している部分を特定した
 linux-digilent-master/drivers/gpu/drm/drm_fb_cma_helper.c の
drm_fbdev_cma_create()
 FBのアドレスをprintk()で起動メッセージに表示
 SDKでDevice Treeを生成
 xilinx.dtsを生成
 DTCでDevice Tree をコンパイル
 xilinx.dts をコンパイルして、xilinx.dtb を生成
 ZedBoard用Digilent LinuxのSysfs
 /sys/devices/axi.0にAXIバスIPのアドレスのディレクトリ
 Linux起動時(/etc/init.d/rcS)にFBのアドレスを調べる
 カメラ表示用FBの開始アドレスをファイル(fb_start_addr.txt)に書く
 カメラ表示用FBの開始アドレスを各IPのアドレス開始番地レジスタに書
く22
ラプラシアンフィルタをソフトウェアで実装
 fb_start_addr.txtを読んでFBの開始アドレスを確認
 mmap()を使用して物理アドレスにアクセス
 ルート権限
 (注意)ここからmmap()と言っているのは、mmap()単体では
ありません
 /dev/memをオープン
 malloc()で、8k-1バイトの領域を確保(ポインタに代入)
 ページ境界までポインタを進めて、mmap()で物理アドレスを
マップ
 RPi Low-level peripheralsのsetup_io()ルーチンを流用(現
在は変更されている)
 munmap()で領域を開放
 munmap()+ free() で領域を開放
23
ラプラシアンフィルタの最初の実装(実装1)
 ラプラシアン・フィルタの値を算出するには3x3の画像のピク
セルを使用して、真ん中の1点を演算する
 オレンジ色の四角の9点を使用して、黄緑色の1点を計算す
るのだが、9点のメモリを読みために、それぞれ mmap() して
からReadして、munmap() している
 9回、 mmap() と munmap()
を繰り返す
 その後、Writeのために mmap()
で領域を確保し、そして、
munmap() で領域を
開放している
 1画面分で139秒
http://marsee101.blog19.fc2.com/blog-entry-2595.html
24
ラプラシアンフィルタの2番目の実装(実装2)
 カメラ画像のRead領域とラプラシアンフィルタ出力Write
領域を4kバイトずつmmap()
 4kバイトを超えたらmummap()して次の4kバイトを
mmap()
 1行のメモリ量は800ピクセルX4バイト=3.2kバイト
 ラプラシアンフィルタは3行分の領域を使用する
 1回のラプラシアンフィルタ処理でReadは2回munmap()、
mmap()を実行
 Writeは出力アドレスが4kバイトを超えたらmunmap()、
mmap()
 実行時間39秒
 http://marsee101.blog19.fc2.com/blog-entry-
2594.html
25
ソフトウェアのプロファイリング1
 gettimeofday()を入れて時間計測
 mmap()、munmap()の回数測定
 実装1のmmap(), munmap()数と実行時間
 rmmap_cnt = 4294836
 wmmap_cnt = 480000
 total time = 138 sec
 実装2のmmap(), munmap()数と実行時間
 rmmap_cnt = 1223626
 wmmap_cnt = 469
 total time = 37 sec
 実装2の方がmmap(), munmap()数が圧倒的に少ない
 http://marsee101.blog19.fc2.com/blog-entry-
2597.html
26
ソフトウェアのプロファイリング2
 2つの独立な環境での測定値が取れた
 mmap()、munmap()の処理時間(x)とそれ以外のラプラ
シアンフィルタの処理時間(y)を計算してみた
 4774836x + y = 138 ----- 式1
 1224095x + y = 37 -----式2
 式1と式2を解くと、x = 28.4 usec, y = 2.18 sec が導け
た
 検算をしてみよう
 5,000回のmmap(), munmap() 関連の実際の実行時間
を測定した
 29usec ー 計算値とほぼ等しい
 http://marsee101.blog19.fc2.com/blog-entry-
2597.html
27
ラプラシアンフィルタのハードウェアの実装
 ソフトウェアの最適をする前
にハードウェアの実装につ
いて見てみよう
 1ライン分のラインFIFOを2
つ用意
 3x3のFFを用意して1クロッ
クごとに演算する
 Laplacian_cal_val <=
"01000"*(XnYn) -
("00000"&Xnm1Ynm1) -
("00000"&XnYnm1) -
("00000"&Xnp1Ynm1) -
("00000"&Xnm1Yn) -
("00000"&Xnp1Yn) -
("00000"&Xnm1Ynp1) -
("00000"&XnYnp1) -
("00000"&Xnp1Ynp1) ;
 http://marsee101.blog19.fc
2.com/blog-entry-
1291.html
28
ソフトウェアの最適化
 ARMの1st Dキャッシュは32kバイト
 3ライン分の9.6kバイトは入るかも?少なくとも2ndキャッシュ
 最初は3ライン分Readして、それを使って1ライン分のラプラ
シアンフィルタの処理を行う(ローカル変数を使用して、キャッ
シュにPrefetch)
 次からは、前の2ラインは使えるので、1ラインだけReadする
 結果
 処理時間 439msec
 rmmap_cnt = 469
 wmmap_cnt = 469
 mmap(), munmap() の処理時間は、469回 x 2 x 28usec ≒
26.3msec それほど大きい割合では無くなった
 http://marsee101.blog19.fc2.com/blog-entry-2598.html
29
ソフトウェアの最適化
(ハードウェアと同じ方式)
 フレームの最初に2ラインを読む
 2つピクセルを保存
 1つピクセルを読んで、保存しながら、真ん中のラプラシ
アン・フィルタの値を計算していく
 処理時間434msec ー 更に5msecほど短縮
 conv_rgb2y() 関数で使用しているfloatをintに変換
 係数が小数なので、256倍して整数に変換し、結果を
256で割る
 処理時間391msec ー 更に45msecほど短縮
 http://marsee101.blog19.fc2.com/blog-entry-
2599.html
30
Vivado HLSについて
 Xilinx社の純正高位合成ツール
 C, C++, SystemCをVHDLやVerilog HDLに変換
 EDK用のIPやVivado用IPを生成
 AXIバスの自動生成機能
 AXI Lite Slave IP(レジスタ設定)、AXI Master IP単体でも使
える
 ソフトウェアからハードウェアにオフロード
 ラプラシアンフィルタをCコードからVerilog HDLに変換できる
のでは?
 ラプラシアンフィルタ式のみをハードウェア化
 AXI Lite Slaveバス
 ラプラシアンフィルタ回路全体をハードウェア化
 AXI Masterバス
31
Vivado HLSでラプラシアンフィルタ式のみを
ハードウェア化1
// laplacian_filter axi lite slave version
#include <stdio.h>
int laplacian_filter(int *x0y0, int *x1y0, int *x2y0, int *x0y1, int *x1y1,
int *x2y1, int *x0y2, int *x1y2, int *x2y2)
{
#pragma HLS PIPELINE
#pragma HLS INTERFACE ap_hs port=x0y0
#pragma HLS INTERFACE ap_vld port=x1y0
#pragma HLS INTERFACE ap_vld port=x2y0
#pragma HLS INTERFACE ap_vld port=x0y1
#pragma HLS INTERFACE ap_vld port=x1y1
#pragma HLS INTERFACE ap_vld port=x2y1
#pragma HLS INTERFACE ap_vld port=x0y2
#pragma HLS INTERFACE ap_vld port=x1y2
#pragma HLS INTERFACE ap_vld port=x2y2
#pragma HLS RESOURCE variable=x0y0 core=AXI4LiteS
metadata="-bus_bundle BUS_A"
#pragma HLS RESOURCE variable=x1y0 core=AXI4LiteS
metadata="-bus_bundle BUS_A"
#pragma HLS RESOURCE variable=x2y0 core=AXI4LiteS
metadata="-bus_bundle BUS_A"
#pragma HLS RESOURCE variable=x0y1 core=AXI4LiteS
metadata="-bus_bundle BUS_A"
#pragma HLS RESOURCE variable=x1y1 core=AXI4LiteS
metadata="-bus_bundle BUS_A"
#pragma HLS RESOURCE variable=x2y1 core=AXI4LiteS
metadata="-bus_bundle BUS_A"
#pragma HLS RESOURCE variable=x0y2
core=AXI4LiteS metadata="-bus_bundle BUS_A"
#pragma HLS RESOURCE variable=x1y2
core=AXI4LiteS metadata="-bus_bundle BUS_A"
#pragma HLS RESOURCE variable=x2y2
core=AXI4LiteS metadata="-bus_bundle BUS_A"
#pragma HLS RESOURCE variable=return
core=AXI4LiteS metadata="-bus_bundle BUS_A"
int y;
y = -*x0y0 -*x1y0 -*x2y0 -*x0y1 +8*(*x1y1) -*x2y1 -
*x0y2 -*x1y2 -*x2y2;
if (y<0)
y = 0;
else if (y>255)
y = 255;
return(y);
}
32
Vivado HLSでラプラシアンフィルタ式のみを
ハードウェア化2
 前のスライドのCソースをCからHDLに合成
 AXI Lite Slaveインターフェースを付加してIP化
 IPをXPSプロジェクトにAdd IP
33
Vivado HLSでラプラシアンフィルタ式のみを
ハードウェア化3(ブロック図)
34
注:AXI Interconnectは図から省いてあります
Vivado HLSでラプラシアンフィルタ式のみを
ハードウェア化4
 ハードウェア化の手順
 ラプラシアンフィルタの式のみ演算するAXI Lite Slave IPを
XPSプロジェクトに追加(Vivado HLSで生成)
 ISEで論理合成、インプリメント、ビットストリームの生成
 ハードウェアをエクスポートしてSDKを立ち上げる
 SDKで制御用のソフトウェアを作ってリモートデバック
 結果は1.94sec で、ソフトウェアに比べて5倍遅くなった
 予想していた、なぜか?
 計算量に比べて、IOの時間が長すぎる
 バスプロトコルもソフトウェアで生成する
 http://marsee101.blog19.fc2.com/blog-entry-
2607.html
35
Vivado HLSでラプラシアンフィルタ式のみを
ハードウェア化5
 9個のピクセル・データをWrite
 vld 信号を1にするレジスタWrite がやはり9回続く
 ap_done の状態を見るReadが1回
 ラプラシアン・フィルタの結果をRead(全部で3.96usec)
36
Vivado HLSでラプラシアンフィルタ式のみを
ハードウェア化6
 1つのラプラシアンフィルタの値を求めるのに必要なIO時
間+計算時間は3.96usec
 ラプラシアンフィルタの演算数は 796 X 596
 796 X 596 X 3.96usec = 1.88sec
 ラプラシアンフィルタ処理時間1.94sec のうちの1.88sec
がIO+ハードウェア演算時間
 演算だけハードウェア・アクセラレーションするには計算
がIO時間よりも相対的に重くないと旨味がない
 http://marsee101.blog19.fc2.com/blog-entry-
2609.html
37
Vivado HLSでラプラシアンフィルタ回路全体を
ハードウェア化1
 チューニングしてきたラプラシアンフィルタ・ソフトウェアを
Vivado HLS用に書き直した(まるごとハードウェア化)
 mmap(), munmap() は削除
 Cソースの概要
 memcpy() で画像表示領域からローカル配列にコピー
 ラプラシアンフィルタの演算
 memcpy() でローカル配列からラプラシアンフィルタ表示領域
にコピー
 最初は3ライン memcpy()
 その後からは、前の2ラインは使用して1ラインのみ
memcpy()
 Cソース
 http://marsee101.blog19.fc2.com/blog-entry-2738.html
38
Vivado HLSでラプラシアンフィルタ回路全体を
ハードウェア化2
 ハードウェア化してSDKでソフトウェアを作って実行し見
たが動作せず
 後でバグが有ることが分かって、動作はした(微妙)
 後でお話します
39
自作AXI Master IPによるラプラシアンフィルタ
のハードウェア化1
 Vivado HLSでラプラシアンフィル
タをまるごとハード化したが動作
せず(バグのため)
 自分でVerilog HDLを使ってラプ
ラシアンフィルタのハード化をする
ことにした
 ハード特有の構造はとらないで、
わざとC言語からHLSで合成した
ようにメモリベースで作る
 http://marsee101.blog19.fc2.co
m/blog-entry-2648.html
40
自作AXI Master IPによるラプラシアンフィルタ
のハードウェア化2
 レジスタ設定用のAXI4 Lite Slave モジュール
lap_filter_axim_LiteS_if.v はVivado HLSが生成したファイ
ルを流用した
 http://marsee101.blog19.fc2.com/blog-entry-2657.html
 AXI4 Master IPは自作した
 http://marsee101.blog19.fc2.com/blog-entry-2645.html
 http://marsee101.blog19.fc2.com/blog-entry-2646.html
 http://marsee101.blog19.fc2.com/blog-entry-2647.html
 lap_filter_axim.v
 トップファイル
 line_read_and_y.v
 HORIZONTAL_PIXELS 分のピクセルデータを start_addr から
AXI4 Master Read
 RGB - Y変換を行い、y_data へ出力する
 Dual_Port_Memory.v
41
自作AXI Master IPによるラプラシアンフィルタ
のハードウェア化3(ブロック図)
42
注:AXI Interconnectは図から省いてあります
自作AXI Master IPによるラプラシアンフィルタ
のハードウェア化4
 一応完成。
 一応と付けたのは連続で動かすと動かないから
 いろいろやることあるし、とりあえず一発動けば良いや
 結果
 処理時間 23.6msec
 最適化したソフトウェア laplacian_filter.elf の実行時間は約
398msec だったので、398 / 23.6 ≒ 16.9倍、高速になった
 ハードウェア処理のラプラシアン・フィルタ部分のみの経過時
間 10.1msec
 60fpsのフレームレートの時間間隔は16.7msec
 それより短いので完成
 http://marsee101.blog19.fc2.com/blog-entry-
2661.html
43
再度Vivado HLSでラプラシアンフィルタ回路全
体をハードウェア化1
 匿名希望様にデバックして頂いてバグとVivado HLSのレジ
スタアクセスの書き方がわかった
 もう一度、Vivado HLSでラプラシアンフィルタ全体のIP化に
挑戦
 結果
 ラプラシアンフィルタの出力画像がソフトウェアと違う
 ラプラシアンフィルタ関数、RGB-Y変換関数は同じ記述なのになぜ
だろうか?
 処理時間は100msec
 ソフトウェアの約4倍高速だけど、微妙な値
 結果のURL
 http://marsee101.blog19.fc2.com/blog-entry-2737.html
 ソースのURL
 http://marsee101.blog19.fc2.com/blog-entry-2738.html
44
再度Vivado HLSでラプラシアンフィルタ回路全
体をハードウェア化2
ラプラシアンフィルタ処理後の画像
(ソフトウェア使用)
ラプラシアンフィルタ処理後の画像
(Vivado HLSで生成したIPを使用)
45
再度Vivado HLSでラプラシアンフィルタ回路全
体をハードウェア化3
 Vivado HLSは pragma で性能を上げられるはずなのだ
が、今のところうまく行っていない
46
まとめ
 ZedBoardにカメラを付けて、画像をディスプレイに表示
 ソフトウェアでラプラシアンフィルタを実装
 最適化を行った。最終的に0.39秒で実行
 Vivado HLSでラプラシアンフィルタ式のみをAXI Lite
Slave IPとして実装したが、ソフトウェアより遅くなった
(1.94秒)
 AXI4 Master IPとしてラプラシアンフィルタ全体をハード
ウェアで実装した(0.03秒)
 Vivado HLSでラプラシアンフィルタ全体をハードウェア
化(0.1秒)
 この発表のラプラシアンフィルタについての情報
 http://marsee101.web.fc2.com/lap_filter_soft2hard.html47
その後
48
 Vivado HLS 2014.1から高位合成したラプラシアンフィルタ
の結果が正しくなった
 http://marsee101.blog19.fc2.com/blog-entry-2800.html
 Vivado HLSは、AXIバス関連のディレクティブが変更になっ
て、このスライドに書いてあるディレクティブではコンパイルで
きなくなった
 Vivado HLSはとても便利に使うことができる
 Vivado HLSでもCソースコードを最適化すると、15.3msでラ
プラシアンフィルタ処理を完了できた(使用したボードは
ZYBO)
 http://marsee101.blog19.fc2.com/blog-entry-3120.html
 これからは、Vivado HLSで書ける所はなるべく使っていこう
と思う
 2015/07/23 更新

More Related Content

PDF
第9回ACRiウェビナー_セック/岩渕様ご講演資料
PDF
Vivado hls勉強会5(axi4 stream)
PDF
Vivado hls勉強会1(基礎編)
PDF
高位合成ツールVivado hlsのopen cv対応
PDF
「FPGA 開発入門:FPGA を用いたエッジ AI の高速化手法を学ぶ」
PDF
Vivado hls勉強会3(axi4 lite slave)
PDF
ACRiウェビナー:小野様ご講演資料
PDF
目grep入門 +解説
第9回ACRiウェビナー_セック/岩渕様ご講演資料
Vivado hls勉強会5(axi4 stream)
Vivado hls勉強会1(基礎編)
高位合成ツールVivado hlsのopen cv対応
「FPGA 開発入門:FPGA を用いたエッジ AI の高速化手法を学ぶ」
Vivado hls勉強会3(axi4 lite slave)
ACRiウェビナー:小野様ご講演資料
目grep入門 +解説

What's hot (20)

PPTX
研究者のための Python による FPGA 入門
PDF
initramfsについて
PPTX
Zynq + Vivado HLS入門
PDF
Vivado hlsのシミュレーションとhlsストリーム
PDF
【メタサーベイ】基盤モデル / Foundation Models
PDF
eBPFは何が嬉しいのか
PDF
20分でわかるgVisor入門
PDF
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)
PDF
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
PDF
Vivado hls勉強会4(axi4 master)
PPTX
大量時空間データの処理 ~ 現状の課題と今後OSSが解決すべきこと。(Open Source Conference 2021 Online/Osaka講演資料)
PPTX
C#とILとネイティブと
PDF
ARM CPUにおけるSIMDを用いた高速計算入門
PDF
ACRi HLSチャレンジ 高速化テクニック紹介
PDF
x86とコンテキストスイッチ
PDF
できる!並列・並行プログラミング
PDF
GoによるWebアプリ開発のキホン
PDF
それはYAGNIか? それとも思考停止か?
PDF
SAT/SMTソルバの仕組み
PDF
音声合成のコーパスをつくろう
研究者のための Python による FPGA 入門
initramfsについて
Zynq + Vivado HLS入門
Vivado hlsのシミュレーションとhlsストリーム
【メタサーベイ】基盤モデル / Foundation Models
eBPFは何が嬉しいのか
20分でわかるgVisor入門
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Vivado hls勉強会4(axi4 master)
大量時空間データの処理 ~ 現状の課題と今後OSSが解決すべきこと。(Open Source Conference 2021 Online/Osaka講演資料)
C#とILとネイティブと
ARM CPUにおけるSIMDを用いた高速計算入門
ACRi HLSチャレンジ 高速化テクニック紹介
x86とコンテキストスイッチ
できる!並列・並行プログラミング
GoによるWebアプリ開発のキホン
それはYAGNIか? それとも思考停止か?
SAT/SMTソルバの仕組み
音声合成のコーパスをつくろう
Ad

Viewers also liked (16)

PPTX
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
PDF
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
PDF
Pynqでカメラ画像をリアルタイムfastx コーナー検出
ODP
MPSoCのPLの性能について
PDF
Xilinx SDSoC(2016.3)解体新書ソフトウェア編
PDF
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
PPTX
SDSoC でストリーム
PDF
SDSoC 2016.3+yocto project
PPTX
$30で始めるFPGA
PDF
FPGAの部屋、slide share、xilinxツールのご紹介
PPTX
PYNQで○○してみた!
PDF
PYNQ祭り
PDF
Pynq祭り資料
PDF
PYNQ祭りLT todotani
PPTX
Situational leadership theory
PDF
In-Database Analyticsの必要性と可能性
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
Pynqでカメラ画像をリアルタイムfastx コーナー検出
MPSoCのPLの性能について
Xilinx SDSoC(2016.3)解体新書ソフトウェア編
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
SDSoC でストリーム
SDSoC 2016.3+yocto project
$30で始めるFPGA
FPGAの部屋、slide share、xilinxツールのご紹介
PYNQで○○してみた!
PYNQ祭り
Pynq祭り資料
PYNQ祭りLT todotani
Situational leadership theory
In-Database Analyticsの必要性と可能性
Ad

Similar to ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード) (20)

PDF
Fpga online seminar by fixstars (1st)
PPTX
自作LSIコミュニティの可能性
PDF
FPGA・リコンフィギャラブルシステム研究の最新動向
PDF
Reconf 201506
PPT
20140310 fpgax
PDF
Pdp11 on-fpga
PDF
Halide, Darkroom - 並列化のためのソフトウェア・研究
PDF
[DL Hacks]FPGA入門
PDF
HalideでつくるDomain Specific Architectureの世界
PDF
1072: アプリケーション開発を加速するCUDAライブラリ
PPTX
Cortex-M0プロセッサから自作して Lチカをやってみた
PDF
20分で理解するdisplaysystem
PDF
FPGA startup 第一回 LT
PPTX
日本の「ものづくり」の可能性:中国深センとの比較を通して
PDF
feram-0.24.00 is released!
PDF
Altera SDK for OpenCL解体新書 : ホストとデバイスの関係
PPTX
Abstracts of FPGA2017 papers (Temporary Version)
PDF
ACRiウェビナー:岩渕様ご講演資料
PDF
ACRiルーム副室長_安藤様_講演資料
Fpga online seminar by fixstars (1st)
自作LSIコミュニティの可能性
FPGA・リコンフィギャラブルシステム研究の最新動向
Reconf 201506
20140310 fpgax
Pdp11 on-fpga
Halide, Darkroom - 並列化のためのソフトウェア・研究
[DL Hacks]FPGA入門
HalideでつくるDomain Specific Architectureの世界
1072: アプリケーション開発を加速するCUDAライブラリ
Cortex-M0プロセッサから自作して Lチカをやってみた
20分で理解するdisplaysystem
FPGA startup 第一回 LT
日本の「ものづくり」の可能性:中国深センとの比較を通して
feram-0.24.00 is released!
Altera SDK for OpenCL解体新書 : ホストとデバイスの関係
Abstracts of FPGA2017 papers (Temporary Version)
ACRiウェビナー:岩渕様ご講演資料
ACRiルーム副室長_安藤様_講演資料

More from marsee101 (7)

PDF
Robot car gabor_filter
PDF
Ultra96 pmod expansion board
PDF
Camera input from_ultra_96's_slow_expansion_connector
PDF
Fpga robot car
PDF
FPGAスタートアップ資料
PDF
Fpgaでの非同期信号の扱い方とvivadoによるサポート(公開用)
PDF
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
Robot car gabor_filter
Ultra96 pmod expansion board
Camera input from_ultra_96's_slow_expansion_connector
Fpga robot car
FPGAスタートアップ資料
Fpgaでの非同期信号の扱い方とvivadoによるサポート(公開用)
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化

ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)