SlideShare a Scribd company logo
1 of 40
Download to read offline
ディープラーニング
vs ランダムフォレスト
中原 啓貴 (東京⼯業⼤学)
2017年9⽉24⽇
FPGAX@ドワンゴ
内容
• 背景
• Random forest (RF)
• RFをFPGA実装するには
• 実験結果
• RFをCPU, GPU, FPGAで実装した場合
• 他の機械学習、特にConvolutional Neural Network
(CNN)と⽐較した場合
• まとめ
2
機械学習
3
⼗分な計算資源とデータ+アルゴリズムの発展
(Left): “Single-Threaded Integer Performance,” 2016
(Right): Nakahara, “Trend of Search Engine on modern Internet,” 2014
機械学習の分類
M. Warrick, “How to get started with machine learning,” PyCon2014 4
研究背景
• ビッグデータと⼗分な計算資源
• ランダムフォレスト
• 歩⾏者検出
• セグメンテーション
• ⼈体姿勢推定
• 組込みシステムでの実現
• リアルタイム処理が必要→CPUは遅い
• 電⼒制約→GPUだと消費電⼒⼤
• FPGA上に短期間に優れたランダムフォレストを実装す
るには︖
• HDL⼿書き設計は限界
5
FPGA+⾼位合成
• 実⽤的な⾼位合成ツールの普及
• Xilinx社: Vivado HLS, SDxシリーズ
• Altera社: Altera SDK for OpenCL
• 先⾏事例
• gzip 圧縮を1か⽉で完成, ⼿書きHDLと⽐較して
90%程度の性能
• ファミコン(NES)を1週間で完成, ⼿書きHDLは
3か⽉, リアルタイム動作達成
• ⼿書きHDLより10倍以上短い期間で開発
• (個⼈的な経験では)性能, ⾯積は⼿書きHDLと
⽐較して8割程度は容易に達成可能
6
⽬的: FPGA+⾼位合成で⾼性能な
ランダムフォレストを実現する⼿法の開発
Random Forest
7
分類⽊ (Decision Tree)
• 特徴マップを分類する, 弱学習器といわれる
1.00
0.53
0.29
0.00
0.09
0.63
0.71
1.00
C1
C2 C1
C
1
C2 C1
X1
X2
X2<0.53?
X2<0.29? X1<0.09?
X1<0.63? X1<0.71?
Y N
N
NN
NY
Y
Y
Y
C1
C1C2 C1C2
C1
8
分類⽊の学習
• ランダムにサンプリング
• エントロピーが最⼤になるように再帰的に分割
9
1.00
0.53
0.29
0.00
0.09
0.63
0.71
1.00
C1
C2 C1
C
1 C2 C1
X1
X2
X2<0.53?
X2<0.29? X1<0.09?
X1<0.63? X1<0.71?
Y N
N
NN
NY
Y
Y
Y
C1
C1C2 C1C2
C1
バイアスとバリアンス
• バイアス→モデルの単純さによる誤差
• バリアンス→学習データの違いによる誤差
10
バイアス︓⼤ バイアス︓⼩
バイアスとバリアンス
11
バイアス︓⼤
バリアンス︓⼩
バイアス︓⼩
バリアンス︓⼤
• バイアス→モデルの単純さによる誤差
• ノイズに強いが, 複雑な表現はできない: SVM, 最⼩2乗法
• バリアンス→学習データの違いによる誤差
• 過学習しがち, 複雑な表現可能: Neural Network, 決定⽊
→集団(アンサンブル)学習によりバリアンスを下げる
Random Forest (RF)
• アンサンブル学習の⼀種
• 複数の分類⽊(弱学習器)で構成
• クラス分類と回帰が可能
12
Tree 1 Tree 2 Tree n
C1
C2
C1
Voter
C1 (Class)
InputX1<0.53?
X3<0.71? X2<0.63?
X2<0.63? X3<0.72?
Y N
N
NN
NY
Y
Y
Y
C1
C1C2 C1C3
C1
Tree 1
Binary Decision Tree (BDT) Random Forest
...
RFのアプリケーション
• Key point matching [Lepetit et al., 2006]
• Object detector [Shotton et al., 2008][Gall et al., 2011]
• Hand written character recognition [Amit&Geman, 1997]
• Visual word clustering
[Moosmann et al.,2006]
• Pose recognition
[Yamashita et al., 2010]
• Human detector
[Mitsui et al., 2011]
[Dahang et al., 2012]
• Human pose estimation
[Shotton 2011]
13
Random Forest を FPGA に実装
14
FPGA (Field Programmable
Gate Array)
• Reconfigurable architecture
• Look-up Table (LUT)
• Configurable channel
• Advantages
• Faster than CPU
• Dissipate lower power
than GPU
• Short time design
than ASIC
15
PythonでRF
16
• Scikit-learnを使うだけ︕簡単︕
オブジェクトを宣⾔
学習
推論
開発したツールフロー
Off‐line learning by scikit‐learn (software)
Training
Dataset
scikit‐learn
Hyper
Parameter
(by Grid‐
search)
Random
Forest
Host
Code
Kernel
Code aocx
Binary
Host
PC
FPGA
Board
aoc
gcc
RF2AOC
17
(論⽂がアクセプトされれば)Xilinx版を近⽇公開予定︕
scikit-learn を使ったコード⽣成
• 内部のデータ構造にアクセス→再帰的にコード⽣成
18
Tree 1 Tree 2 Tree n
C1
C2
C1
Voter
C1 (Class)
Input
...
len(model.estimators_) … ⽊の個数
model.estimators_[i] … i番⽬の⽊にアクセス
以降, tree = model.estimators_[i] として
tree.tree_.children_left
tree.tree_.children_right
→⽊の⼦ノードにアクセス, 再帰的に
アクセス可能
tree.tree_.threshold … 現時点のしきい値
tree.tree_.feature … ⽊の⼊⼒変数リスト
tree.tree_.value … 認識したクラスインデックス
⽣成されたコード
• if-then-else形式で出⼒
19
Tree 1 Tree 2 Tree n
C1
C2
C1
Voter
C1 (Class)
Input
...
フルパイプライン化
Tree 1 Tree 2 Tree b
C1 C2
C1
Voter
C1
X (Input)
...
20
マルチプレクサベースの実現
21
システムデザインツールの利⽤
22
①
②
④
③
1. Behavior design
+ pragmas
2. Profile analysis
3. IP core generation by HLS
4. Bitstream generation by
FPGA CAD tool
5. Middle ware generation
↓
Automatically done
短精度整数演算
float X1, X2;
(set inputs)
result = tree(X1, X2);
__kernel int tree( 
__global const float X1, 
__global float X2){
(fetch inputs)
if( X2 < 0.53){
if( X2 < 0.29){
return C1;
} else {
if( X1 < 0.63){
return C2;
} else {
return C1;
}
}
...
int X;
(set inputs)
result = tree(X & 0x3FFF, 
(X >> 16) & 0x3FFF);
__kernel int tree( 
__global const int X1, 
__global int X2){
(fetch inputs)
if( X2 < 4341){ // 0.53*213
if( X2 < 2375){ // 0.29*213
return C1;
} else {
if( X1 < 5160){ // 0.63*213
return C2;
} else {
return C1;
}
} ..
Host
Program
Kernel
Program
23
短精度ビット⻑と分類精度
0.0
5.0
10.0
15.0
20.0
25.0
30.0
35.0
40.0
45.0
6 7 8 9 10 11 12 13 14
Misclassification Rate [%]
n‐bit Fixd Point Precision
Dermatology
Arrhythmia
Contraceptive Method Choice
Glass Identification
Hayes‐Roth
Hepatitis
Ionosphere
Iris
24
分類⽊の実現
X1
X2
c1 c2
c3
X2
c4 X3
c5 c6
Tree1 Tree2
X1
X2
X2
X3
c3
c1 c2
c4
c5   c6
Tree1 Tree2
25
時分割によるリソース共有
__kernel int RF( 
__global float X1, X2, X3){
(fetch inputs)
for( int i = 0; i < 2; i++){
if( i == 0) class = tree1(X1,X2,X3);
else class = tree2(X1,X2,X3);
voting[class]++; // voter
}
}
..
X1
X2
X2
*
c1 c4
Voter
*
X3
c2 c4
c3 c5 c3 c6
26
ループ展開による
スループット向上
__kernel int RF( 
__global float X1,X2,X3){
(fetch inputs)
#pragma unroll 2
for( int i = 0; i < 2; i++){
if( i == 0) class = tree1(X1,X2,X3);
else class = tree2(X1,X2,X3);
voting[class]++; // voter
}
}
..
X1 X2 X3
c3
c1 c2
c4
c5   c6
Voter
Voter
Register
27
実験結果
28
実験⽅法
Pre‐learned
Random
Forest
C‐
Code
CUDA
Code
Binary
Binary CPU
GPU
Cython gcc
CUDAT nvcc
Binary Host
PC
29
他のプラットフォームとの⽐較
• Implemented RF following devices
• CPU: Intel Core i7 650
• GPU: NVIDIA GeForce GTX Titan
• FPGA: Terasic DE5-NET
• Measure dynamic power including
the host PC
• Test bench: 10,000 random vectors
• Execution time including
communication time between
the host PC and devices
30
GPU
FPGA
GPU, CPUとの⽐較
31
GPU@86W
GeForce Titan
CPU@13W
Xeon (R) E5607
FPGA@15W
Stratix V A7
Name LPS LPS/W LPS LPS/W LPS LPS/W
Dermatology 336.2 3.9 211.6 16.3 3221.2 214.7
Contraceptive 
Method
521.9 6.1 286.4 22.0 10924.3 728.3
Glass 
Identification
726.7 8.5 587.5 45.2 6442.3 429.5
Hayes‐Roth 1512.9 17.6 1165.5 89.7 12884.6 859.0
Hepatitis 739.1 8.6 662.7 51.0 8209.9 547.3
Ionosphere 821.0 9.5 595.9 45.8 9663.5 644.2
Iris 446.6 5.2 436.7 33.6 4831.7 322.1
LPS: 1秒間に検索できるデータ数
FPGAに適した計算法
• ×ホストやオフチップメモリを頻繁にアクセス
• GPUやCPUと⽐較して帯域が1桁狭い
• ○外部I/Oやオンチップメモリを利⽤
FPGAFPGA
||||||||
DDRDDR
DDRDDR
I/OI/O I/OI/O
FPGAFPGA
||||||||
DDRDDR
DDRDDR
I/OI/O I/OI/O
ADC
RAM
ここに依存するアプリだと負け 32
プログラミングモデルの違い
33
D1 D2 D3 D4 D5
↓ ↓ ↓ ↓ ↓
CC CC CC CC CC
↓ ↓ ↓ ↓ ↓
広帯域
DDR4/DDR5 DDR3
HW1 D1 D2 D3 D4
HW2 D1 D2 D3 D4
HW3 D1 D2 D3 D4
HW4 D1 D2 D3 D4
狭
帯域
GPU FPGA
• 均⼀な演算を空間的に並列実⾏
• 均⼀な演算器
• ワープダイバージェント (if⽂ダメ)
• 帯域・動作周波数が⾼い
• 特定な演算を時間的に並列実⾏
(要はパイプライン︕)
• カスタマイズした演算器
• 帯域・動作周波数は低い
他の識別器との⽐較
34
ディープニューラルネットワークと
⽐較して
• ⼩規模データのタスクに適⽤可能
• 短時間学習
• 強⼒な計算機環境不要
• ローカル(エッジ)での学習可能
• ハイパーパラメータのチューニング不要
• FPGAで⾼性能を発揮できるデータ構造
35
Deep Forestへ拡張
• Sliding Window + Cascaded Forestの組合せ
36
Z.H.Zhou, J.Feng, “Deep Forest: Towards An Alternative to Deep Neural 
Networks,”arXiv:1702.08835, [v2] Wed, 31 May 2017.
データセットを⽤いた認識率の⽐較
• MNIST(⼿書き⽂字)データセットの認識率
• ORL(顔認識)データセット
37
データセットが少ないため
データセットを⽤いた認識率の⽐較
(続)
• 画像認識CIFAR10 (10クラス5万枚学習)
38
SOTAなCNN
CNNとRandom Forestの⽐較
• 認識率
• データセットが少ない場合: RF(というかCNNはダメ)
• 単純(スパース)なデータセット: ほぼ同等の認識率→MNISTはここ
• ⼤量のデータセット: CNN
• (MNISTでの)学習時間
• RF: CPUで約5分(中原所有のノートパソコン, Thinkpad X1 Cardbon)
• CNN(LeNet5): GPU Titan X (Pascal)で約5分
• (MNISTに必要な)ハードウェア量
• RF: 18706 LUTs, 42982 FFs, 175 18Kb BRAMs
• CNN: 34419 LUTs, 33029 FFs, 115 18Kb BRAMs
• (MNISTの)推論時間
• RF: 約5000 FPS@100MHz, Zedboard使⽤時
• CNN: 約200 FPS@100MHz, Zedboard使⽤時
39
データセット次第ではCNNよりも同等なHW・認識精度で25倍⾼速
まとめ
• Random ForestをFPGAで実装
• DNNよりも(少ないデータセットで)⾼速に学習
• Scikit-learnを使った学習・コード⽣成
• FPGAで性能を発揮できるデータセット
• ヘテロジニアスなパイプライン
• GPUが苦⼿とする構造
• Xilinx SDSoC, Intel SDK OpenCLを使ったお⼿軽実装
• Deep Forestの紹介
• RFよりも認識性能は上だが、コストに⾒合うかは疑問
• No Free Lunch TheoremはHWから⾒ても真でした
→あらゆる問題で性能に優れる万能な機械学習HWは存在しない
とはいうものの… 40

More Related Content

What's hot

いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門Fixstars Corporation
 
Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門Fixstars Corporation
 
GAN(と強化学習との関係)
GAN(と強化学習との関係)GAN(と強化学習との関係)
GAN(と強化学習との関係)Masahiro Suzuki
 
High-impact Papers in Computer Vision: 歴史を変えた/トレンドを創る論文
High-impact Papers in Computer Vision: 歴史を変えた/トレンドを創る論文High-impact Papers in Computer Vision: 歴史を変えた/トレンドを創る論文
High-impact Papers in Computer Vision: 歴史を変えた/トレンドを創る論文cvpaper. challenge
 
CV分野におけるサーベイ方法
CV分野におけるサーベイ方法CV分野におけるサーベイ方法
CV分野におけるサーベイ方法Hirokatsu Kataoka
 
[DL輪読会]Neural Ordinary Differential Equations
[DL輪読会]Neural Ordinary Differential Equations[DL輪読会]Neural Ordinary Differential Equations
[DL輪読会]Neural Ordinary Differential EquationsDeep Learning JP
 
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)Preferred Networks
 
分散学習のあれこれ~データパラレルからモデルパラレルまで~
分散学習のあれこれ~データパラレルからモデルパラレルまで~分散学習のあれこれ~データパラレルからモデルパラレルまで~
分散学習のあれこれ~データパラレルからモデルパラレルまで~Hideki Tsunashima
 
Generative Models(メタサーベイ )
Generative Models(メタサーベイ )Generative Models(メタサーベイ )
Generative Models(メタサーベイ )cvpaper. challenge
 
Anomaly detection 系の論文を一言でまとめた
Anomaly detection 系の論文を一言でまとめたAnomaly detection 系の論文を一言でまとめた
Anomaly detection 系の論文を一言でまとめたぱんいち すみもと
 
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
SSII2020SS:  微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​SSII2020SS:  微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​SSII
 
Polyphony の行く末(2018/3/3)
Polyphony の行く末(2018/3/3)Polyphony の行く末(2018/3/3)
Polyphony の行く末(2018/3/3)ryos36
 
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモDNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモShinya Takamaeda-Y
 
協力ゲーム理論でXAI (説明可能なAI) を目指すSHAP (Shapley Additive exPlanation)
協力ゲーム理論でXAI (説明可能なAI) を目指すSHAP (Shapley Additive exPlanation)協力ゲーム理論でXAI (説明可能なAI) を目指すSHAP (Shapley Additive exPlanation)
協力ゲーム理論でXAI (説明可能なAI) を目指すSHAP (Shapley Additive exPlanation)西岡 賢一郎
 
Polyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGAPolyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGAryos36
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)Takeshi Yamamuro
 

What's hot (20)

いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門
 
Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門
 
実装レベルで学ぶVQVAE
実装レベルで学ぶVQVAE実装レベルで学ぶVQVAE
実装レベルで学ぶVQVAE
 
GAN(と強化学習との関係)
GAN(と強化学習との関係)GAN(と強化学習との関係)
GAN(と強化学習との関係)
 
High-impact Papers in Computer Vision: 歴史を変えた/トレンドを創る論文
High-impact Papers in Computer Vision: 歴史を変えた/トレンドを創る論文High-impact Papers in Computer Vision: 歴史を変えた/トレンドを創る論文
High-impact Papers in Computer Vision: 歴史を変えた/トレンドを創る論文
 
CV分野におけるサーベイ方法
CV分野におけるサーベイ方法CV分野におけるサーベイ方法
CV分野におけるサーベイ方法
 
研究効率化Tips Ver.2
研究効率化Tips Ver.2研究効率化Tips Ver.2
研究効率化Tips Ver.2
 
[DL輪読会]Neural Ordinary Differential Equations
[DL輪読会]Neural Ordinary Differential Equations[DL輪読会]Neural Ordinary Differential Equations
[DL輪読会]Neural Ordinary Differential Equations
 
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)
 
Graph U-Nets
Graph U-NetsGraph U-Nets
Graph U-Nets
 
分散学習のあれこれ~データパラレルからモデルパラレルまで~
分散学習のあれこれ~データパラレルからモデルパラレルまで~分散学習のあれこれ~データパラレルからモデルパラレルまで~
分散学習のあれこれ~データパラレルからモデルパラレルまで~
 
Generative Models(メタサーベイ )
Generative Models(メタサーベイ )Generative Models(メタサーベイ )
Generative Models(メタサーベイ )
 
Anomaly detection 系の論文を一言でまとめた
Anomaly detection 系の論文を一言でまとめたAnomaly detection 系の論文を一言でまとめた
Anomaly detection 系の論文を一言でまとめた
 
直交領域探索
直交領域探索直交領域探索
直交領域探索
 
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
SSII2020SS:  微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​SSII2020SS:  微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
 
Polyphony の行く末(2018/3/3)
Polyphony の行く末(2018/3/3)Polyphony の行く末(2018/3/3)
Polyphony の行く末(2018/3/3)
 
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモDNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
 
協力ゲーム理論でXAI (説明可能なAI) を目指すSHAP (Shapley Additive exPlanation)
協力ゲーム理論でXAI (説明可能なAI) を目指すSHAP (Shapley Additive exPlanation)協力ゲーム理論でXAI (説明可能なAI) を目指すSHAP (Shapley Additive exPlanation)
協力ゲーム理論でXAI (説明可能なAI) を目指すSHAP (Shapley Additive exPlanation)
 
Polyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGAPolyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGA
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
 

Viewers also liked

(公開版)Reconf研2017GUINNESS
(公開版)Reconf研2017GUINNESS(公開版)Reconf研2017GUINNESS
(公開版)Reconf研2017GUINNESSHiroki Nakahara
 
A Random Forest using a Multi-valued Decision Diagram on an FPGa
A Random Forest using a Multi-valued Decision Diagram on an FPGaA Random Forest using a Multi-valued Decision Diagram on an FPGa
A Random Forest using a Multi-valued Decision Diagram on an FPGaHiroki Nakahara
 
FPGAX2016 ドキュンなFPGA
FPGAX2016 ドキュンなFPGAFPGAX2016 ドキュンなFPGA
FPGAX2016 ドキュンなFPGAHiroki Nakahara
 
Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)Hiroki Nakahara
 
リアルタイムレンダリングでのNPR表現
リアルタイムレンダリングでのNPR表現リアルタイムレンダリングでのNPR表現
リアルタイムレンダリングでのNPR表現kurosaurus
 
Verilog-HDL Tutorial (14)
Verilog-HDL Tutorial (14)Verilog-HDL Tutorial (14)
Verilog-HDL Tutorial (14)Hiroki Nakahara
 
Verilog-HDL Tutorial (15) hardware
Verilog-HDL Tutorial (15) hardwareVerilog-HDL Tutorial (15) hardware
Verilog-HDL Tutorial (15) hardwareHiroki Nakahara
 
Verilog-HDL Tutorial (13)
Verilog-HDL Tutorial (13)Verilog-HDL Tutorial (13)
Verilog-HDL Tutorial (13)Hiroki Nakahara
 
Verilog-HDL Tutorial (15) software
Verilog-HDL Tutorial (15) softwareVerilog-HDL Tutorial (15) software
Verilog-HDL Tutorial (15) softwareHiroki Nakahara
 
Verilog-HDL Tutorial (12)
Verilog-HDL Tutorial (12)Verilog-HDL Tutorial (12)
Verilog-HDL Tutorial (12)Hiroki Nakahara
 
Verilog-HDL Tutorial (9)
Verilog-HDL Tutorial (9)Verilog-HDL Tutorial (9)
Verilog-HDL Tutorial (9)Hiroki Nakahara
 
FPL15 talk: Deep Convolutional Neural Network on FPGA
FPL15 talk: Deep Convolutional Neural Network on FPGAFPL15 talk: Deep Convolutional Neural Network on FPGA
FPL15 talk: Deep Convolutional Neural Network on FPGAHiroki Nakahara
 
Verilog-HDL Tutorial (11)
Verilog-HDL Tutorial (11)Verilog-HDL Tutorial (11)
Verilog-HDL Tutorial (11)Hiroki Nakahara
 
Nested RNSを用いたディープニューラルネットワークのFPGA実装
Nested RNSを用いたディープニューラルネットワークのFPGA実装Nested RNSを用いたディープニューラルネットワークのFPGA実装
Nested RNSを用いたディープニューラルネットワークのFPGA実装Hiroki Nakahara
 
私のファミコンのfpsは530000です。もちろんフルパワーで(以下略
私のファミコンのfpsは530000です。もちろんフルパワーで(以下略私のファミコンのfpsは530000です。もちろんフルパワーで(以下略
私のファミコンのfpsは530000です。もちろんフルパワーで(以下略Hiroki Nakahara
 
Altera sdk for open cl アンケート集計結果(公開版)
Altera sdk for open cl アンケート集計結果(公開版)Altera sdk for open cl アンケート集計結果(公開版)
Altera sdk for open cl アンケート集計結果(公開版)Hiroki Nakahara
 
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみたHiroki Nakahara
 
Beatroboでのハードウェアプロトタイピング
BeatroboでのハードウェアプロトタイピングBeatroboでのハードウェアプロトタイピング
BeatroboでのハードウェアプロトタイピングHideyuki TAKEI
 
集積回路が真の道具になるために
集積回路が真の道具になるために集積回路が真の道具になるために
集積回路が真の道具になるためにJunichi Akita
 

Viewers also liked (20)

(公開版)Reconf研2017GUINNESS
(公開版)Reconf研2017GUINNESS(公開版)Reconf研2017GUINNESS
(公開版)Reconf研2017GUINNESS
 
A Random Forest using a Multi-valued Decision Diagram on an FPGa
A Random Forest using a Multi-valued Decision Diagram on an FPGaA Random Forest using a Multi-valued Decision Diagram on an FPGa
A Random Forest using a Multi-valued Decision Diagram on an FPGa
 
FPGAX2016 ドキュンなFPGA
FPGAX2016 ドキュンなFPGAFPGAX2016 ドキュンなFPGA
FPGAX2016 ドキュンなFPGA
 
Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)
 
リアルタイムレンダリングでのNPR表現
リアルタイムレンダリングでのNPR表現リアルタイムレンダリングでのNPR表現
リアルタイムレンダリングでのNPR表現
 
Verilog-HDL Tutorial (14)
Verilog-HDL Tutorial (14)Verilog-HDL Tutorial (14)
Verilog-HDL Tutorial (14)
 
Verilog-HDL Tutorial (15) hardware
Verilog-HDL Tutorial (15) hardwareVerilog-HDL Tutorial (15) hardware
Verilog-HDL Tutorial (15) hardware
 
Naist2015 dec ver1
Naist2015 dec ver1Naist2015 dec ver1
Naist2015 dec ver1
 
Verilog-HDL Tutorial (13)
Verilog-HDL Tutorial (13)Verilog-HDL Tutorial (13)
Verilog-HDL Tutorial (13)
 
Verilog-HDL Tutorial (15) software
Verilog-HDL Tutorial (15) softwareVerilog-HDL Tutorial (15) software
Verilog-HDL Tutorial (15) software
 
Verilog-HDL Tutorial (12)
Verilog-HDL Tutorial (12)Verilog-HDL Tutorial (12)
Verilog-HDL Tutorial (12)
 
Verilog-HDL Tutorial (9)
Verilog-HDL Tutorial (9)Verilog-HDL Tutorial (9)
Verilog-HDL Tutorial (9)
 
FPL15 talk: Deep Convolutional Neural Network on FPGA
FPL15 talk: Deep Convolutional Neural Network on FPGAFPL15 talk: Deep Convolutional Neural Network on FPGA
FPL15 talk: Deep Convolutional Neural Network on FPGA
 
Verilog-HDL Tutorial (11)
Verilog-HDL Tutorial (11)Verilog-HDL Tutorial (11)
Verilog-HDL Tutorial (11)
 
Nested RNSを用いたディープニューラルネットワークのFPGA実装
Nested RNSを用いたディープニューラルネットワークのFPGA実装Nested RNSを用いたディープニューラルネットワークのFPGA実装
Nested RNSを用いたディープニューラルネットワークのFPGA実装
 
私のファミコンのfpsは530000です。もちろんフルパワーで(以下略
私のファミコンのfpsは530000です。もちろんフルパワーで(以下略私のファミコンのfpsは530000です。もちろんフルパワーで(以下略
私のファミコンのfpsは530000です。もちろんフルパワーで(以下略
 
Altera sdk for open cl アンケート集計結果(公開版)
Altera sdk for open cl アンケート集計結果(公開版)Altera sdk for open cl アンケート集計結果(公開版)
Altera sdk for open cl アンケート集計結果(公開版)
 
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
 
Beatroboでのハードウェアプロトタイピング
BeatroboでのハードウェアプロトタイピングBeatroboでのハードウェアプロトタイピング
Beatroboでのハードウェアプロトタイピング
 
集積回路が真の道具になるために
集積回路が真の道具になるために集積回路が真の道具になるために
集積回路が真の道具になるために
 

Similar to (公開版)FPGAエクストリームコンピューティング2017

深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開Seiya Tokui
 
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hareDAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也harePreferred Networks
 
2012研究室紹介(大川)
2012研究室紹介(大川)2012研究室紹介(大川)
2012研究室紹介(大川)猛 大川
 
[2016-12-01] DDBJデータ解析チャレンジ報告:機械学習コンペティションのタスク設計とルール設定
[2016-12-01] DDBJデータ解析チャレンジ報告:機械学習コンペティションのタスク設計とルール設定[2016-12-01] DDBJデータ解析チャレンジ報告:機械学習コンペティションのタスク設計とルール設定
[2016-12-01] DDBJデータ解析チャレンジ報告:機械学習コンペティションのタスク設計とルール設定Eli Kaminuma
 
【Unity道場スペシャル 2017札幌】乱数完全マスター
【Unity道場スペシャル 2017札幌】乱数完全マスター 【Unity道場スペシャル 2017札幌】乱数完全マスター
【Unity道場スペシャル 2017札幌】乱数完全マスター Unity Technologies Japan K.K.
 
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編Unity Technologies Japan K.K.
 
Statically detecting vulnerability under memory pressure using exhaustive search
Statically detecting vulnerability under memory pressure usingexhaustive searchStatically detecting vulnerability under memory pressure usingexhaustive search
Statically detecting vulnerability under memory pressure using exhaustive searchRuo Ando
 
DSF2018講演スライド
DSF2018講演スライドDSF2018講演スライド
DSF2018講演スライドHiroki Nakahara
 
PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説弘毅 露崎
 
PythonによるDeep Learningの実装
PythonによるDeep Learningの実装PythonによるDeep Learningの実装
PythonによるDeep Learningの実装Shinya Akiba
 
エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~
エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~
エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~NVIDIA Japan
 
令和元年度 実践セミナー - Deep Learning 概論 -
令和元年度 実践セミナー - Deep Learning 概論 -令和元年度 実践セミナー - Deep Learning 概論 -
令和元年度 実践セミナー - Deep Learning 概論 -Yutaka KATAYAMA
 
2021 03-09-ac ri-nngen
2021 03-09-ac ri-nngen2021 03-09-ac ri-nngen
2021 03-09-ac ri-nngen直久 住川
 
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステムオープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステムShinya Takamaeda-Y
 
Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Etsuji Nakai
 
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しようC# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しようFujio Kojima
 
Proof summit 2017 for slideshare
Proof summit 2017 for slideshareProof summit 2017 for slideshare
Proof summit 2017 for slideshareKeisuke Yahata
 
論文紹介:Dueling network architectures for deep reinforcement learning
論文紹介:Dueling network architectures for deep reinforcement learning論文紹介:Dueling network architectures for deep reinforcement learning
論文紹介:Dueling network architectures for deep reinforcement learningKazuki Adachi
 

Similar to (公開版)FPGAエクストリームコンピューティング2017 (20)

深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開
 
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hareDAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
 
2012研究室紹介(大川)
2012研究室紹介(大川)2012研究室紹介(大川)
2012研究室紹介(大川)
 
[2016-12-01] DDBJデータ解析チャレンジ報告:機械学習コンペティションのタスク設計とルール設定
[2016-12-01] DDBJデータ解析チャレンジ報告:機械学習コンペティションのタスク設計とルール設定[2016-12-01] DDBJデータ解析チャレンジ報告:機械学習コンペティションのタスク設計とルール設定
[2016-12-01] DDBJデータ解析チャレンジ報告:機械学習コンペティションのタスク設計とルール設定
 
【Unity道場スペシャル 2017札幌】乱数完全マスター
【Unity道場スペシャル 2017札幌】乱数完全マスター 【Unity道場スペシャル 2017札幌】乱数完全マスター
【Unity道場スペシャル 2017札幌】乱数完全マスター
 
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
 
Statically detecting vulnerability under memory pressure using exhaustive search
Statically detecting vulnerability under memory pressure usingexhaustive searchStatically detecting vulnerability under memory pressure usingexhaustive search
Statically detecting vulnerability under memory pressure using exhaustive search
 
DSF2018講演スライド
DSF2018講演スライドDSF2018講演スライド
DSF2018講演スライド
 
PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説
 
PythonによるDeep Learningの実装
PythonによるDeep Learningの実装PythonによるDeep Learningの実装
PythonによるDeep Learningの実装
 
エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~
エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~
エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~
 
令和元年度 実践セミナー - Deep Learning 概論 -
令和元年度 実践セミナー - Deep Learning 概論 -令和元年度 実践セミナー - Deep Learning 概論 -
令和元年度 実践セミナー - Deep Learning 概論 -
 
2021 03-09-ac ri-nngen
2021 03-09-ac ri-nngen2021 03-09-ac ri-nngen
2021 03-09-ac ri-nngen
 
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステムオープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
 
Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編
 
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しようC# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
 
Proof summit 2017 for slideshare
Proof summit 2017 for slideshareProof summit 2017 for slideshare
Proof summit 2017 for slideshare
 
論文紹介:Dueling network architectures for deep reinforcement learning
論文紹介:Dueling network architectures for deep reinforcement learning論文紹介:Dueling network architectures for deep reinforcement learning
論文紹介:Dueling network architectures for deep reinforcement learning
 
実世界に埋め込まれる深層学習
実世界に埋め込まれる深層学習 実世界に埋め込まれる深層学習
実世界に埋め込まれる深層学習
 
Fpgax20180217
Fpgax20180217Fpgax20180217
Fpgax20180217
 

More from Hiroki Nakahara

FCCM2020: High-Throughput Convolutional Neural Network on an FPGA by Customiz...
FCCM2020: High-Throughput Convolutional Neural Network on an FPGA by Customiz...FCCM2020: High-Throughput Convolutional Neural Network on an FPGA by Customiz...
FCCM2020: High-Throughput Convolutional Neural Network on an FPGA by Customiz...Hiroki Nakahara
 
ROS User Group Meeting #28 マルチ深層学習とROS
ROS User Group Meeting #28 マルチ深層学習とROSROS User Group Meeting #28 マルチ深層学習とROS
ROS User Group Meeting #28 マルチ深層学習とROSHiroki Nakahara
 
ISCAS'18: A Deep Neural Network on the Nested RNS (NRNS) on an FPGA: Applied ...
ISCAS'18: A Deep Neural Network on the Nested RNS (NRNS) on an FPGA: Applied ...ISCAS'18: A Deep Neural Network on the Nested RNS (NRNS) on an FPGA: Applied ...
ISCAS'18: A Deep Neural Network on the Nested RNS (NRNS) on an FPGA: Applied ...Hiroki Nakahara
 
ISMVL2018: A Ternary Weight Binary Input Convolutional Neural Network
ISMVL2018: A Ternary Weight Binary Input Convolutional Neural NetworkISMVL2018: A Ternary Weight Binary Input Convolutional Neural Network
ISMVL2018: A Ternary Weight Binary Input Convolutional Neural NetworkHiroki Nakahara
 
FPGA2018: A Lightweight YOLOv2: A binarized CNN with a parallel support vecto...
FPGA2018: A Lightweight YOLOv2: A binarized CNN with a parallel support vecto...FPGA2018: A Lightweight YOLOv2: A binarized CNN with a parallel support vecto...
FPGA2018: A Lightweight YOLOv2: A binarized CNN with a parallel support vecto...Hiroki Nakahara
 
FPT17: An object detector based on multiscale sliding window search using a f...
FPT17: An object detector based on multiscale sliding window search using a f...FPT17: An object detector based on multiscale sliding window search using a f...
FPT17: An object detector based on multiscale sliding window search using a f...Hiroki Nakahara
 
Verilog-HDL Tutorial (8)
Verilog-HDL Tutorial (8)Verilog-HDL Tutorial (8)
Verilog-HDL Tutorial (8)Hiroki Nakahara
 
Verilog-HDL Tutorial (7)
Verilog-HDL Tutorial (7)Verilog-HDL Tutorial (7)
Verilog-HDL Tutorial (7)Hiroki Nakahara
 

More from Hiroki Nakahara (10)

FCCM2020: High-Throughput Convolutional Neural Network on an FPGA by Customiz...
FCCM2020: High-Throughput Convolutional Neural Network on an FPGA by Customiz...FCCM2020: High-Throughput Convolutional Neural Network on an FPGA by Customiz...
FCCM2020: High-Throughput Convolutional Neural Network on an FPGA by Customiz...
 
ROS User Group Meeting #28 マルチ深層学習とROS
ROS User Group Meeting #28 マルチ深層学習とROSROS User Group Meeting #28 マルチ深層学習とROS
ROS User Group Meeting #28 マルチ深層学習とROS
 
FPGAX2019
FPGAX2019FPGAX2019
FPGAX2019
 
SBRA2018講演資料
SBRA2018講演資料SBRA2018講演資料
SBRA2018講演資料
 
ISCAS'18: A Deep Neural Network on the Nested RNS (NRNS) on an FPGA: Applied ...
ISCAS'18: A Deep Neural Network on the Nested RNS (NRNS) on an FPGA: Applied ...ISCAS'18: A Deep Neural Network on the Nested RNS (NRNS) on an FPGA: Applied ...
ISCAS'18: A Deep Neural Network on the Nested RNS (NRNS) on an FPGA: Applied ...
 
ISMVL2018: A Ternary Weight Binary Input Convolutional Neural Network
ISMVL2018: A Ternary Weight Binary Input Convolutional Neural NetworkISMVL2018: A Ternary Weight Binary Input Convolutional Neural Network
ISMVL2018: A Ternary Weight Binary Input Convolutional Neural Network
 
FPGA2018: A Lightweight YOLOv2: A binarized CNN with a parallel support vecto...
FPGA2018: A Lightweight YOLOv2: A binarized CNN with a parallel support vecto...FPGA2018: A Lightweight YOLOv2: A binarized CNN with a parallel support vecto...
FPGA2018: A Lightweight YOLOv2: A binarized CNN with a parallel support vecto...
 
FPT17: An object detector based on multiscale sliding window search using a f...
FPT17: An object detector based on multiscale sliding window search using a f...FPT17: An object detector based on multiscale sliding window search using a f...
FPT17: An object detector based on multiscale sliding window search using a f...
 
Verilog-HDL Tutorial (8)
Verilog-HDL Tutorial (8)Verilog-HDL Tutorial (8)
Verilog-HDL Tutorial (8)
 
Verilog-HDL Tutorial (7)
Verilog-HDL Tutorial (7)Verilog-HDL Tutorial (7)
Verilog-HDL Tutorial (7)
 

(公開版)FPGAエクストリームコンピューティング2017