SlideShare a Scribd company logo
2014年1月23日 発表10分
計算機アーキテクチャ研究会@東工大

メモリ抽象化フレームワーク
PyCoRAMを用いた
ソフトプロセッサ混載
FPGAアクセラレータの開発
チーム名: PyCoRAMist(学生部門)
高前田(山崎) 伸也†‡,吉瀬 謙二†
†東京工業大学

大学院情報理工学研究科

‡日本学術振興会

特別研究員 (DC1)
まずコンテストルールを確認しよう
n  競技内容
l  指定のFPGAボード上に
指定のアプリケーションを処理可能な
計算機システムを実装し処理時間を競う
•  FPGAボード: Digilent Atlys
–  FPGA: Xilinx Spartan-6 LX45, DRAM: DDR2-800 (1.6GB/s)

n  ルールをよく読む

速ければいい!
2014-01-23

Shinya T-Y. Tokyo Tech

2
ベンチマークアプリケーション4種
アプリケーション

説明

メモリシステムへの要求

310_sort

整数ソート

低レイテンシ

320_mm

行列積(整数)

高バンド幅

330_stencil

ステンシル計算(9点・整数)

高バンド幅

340_spath

最短経路問題

低レイテンシ

行列積・ステンシル計算
ソート・最短経路問題

専用アクセラレータ向き
専用アクセラレータは面倒

CPUコア+専用アクセラレータが良さそう
2014-01-23

Shinya T-Y. Tokyo Tech

3
どうやって実装するか?
n  普通にHDLでアクセラレータを実装するのは芸が無い
l  というかいろいろ面倒で嫌だ!博論〆切前だし・・・(当時)
•  演算とメモリアクセスのスケジューリングロジック
–  ダブルバッファリングとか面倒

•  メモリシステムの制御回路
–  HDLでステートマシンを書くのは面倒だし間違えやすい

•  デバッグが面倒

l  でもパイプラインの振る舞いはサイクルレベルで定義したい
•  FPGAで性能を出すには高稼働率のパイプラインが重要
–  だから計算ロジックはHDLで書きたい
–  高位合成だとチューンがイマイチ難しい

n  抽象化されたメモリシステムが使えると幸せそう
CoRAMメモリアーキテクチャ
2014-01-23

Shinya T-Y. Tokyo Tech

4
CoRAM [Chung+,FPGA’11]
n  FPGAアクセラレータのためのメモリ抽象化
l  高位モデルによるメモリ管理でアクセラレータをポータブルに
•  計算カーネルとメモリアクセスの分離
•  ソフトウェアのモデルによるメモリアクセスパターンの記述
Read/Write

Communication
FIFOs (Registers)

CoRAM
Channel

Read/Write

Read
Write

CoRAM
Memory

Abstracted
On-chip Memories

HW Kernels
(Computing Logics)

2014-01-23

Off-chip
Memory

Shinya T-Y. Tokyo Tech

Manage
Control Threads
(Memory Access
Pattern)

5
PyCoRAM [Takamaeda+,CARL’13]
n  ベンダーEDK向けのPythonベースのCoRAM実装
l  計算カーネルのRTL記述とメモリアクセスパターンの
Python記述からAXI4 IPコアを自動合成
l  出来上がったIPコアをEDKでポチポチつなげばシステム完成!

n  特徴
l  Pythonでのコントロールスレッド記述
•  Pythonで簡単にメモリアクセスパターンを記述できる
–  独自の高位合成コンパイラでPython記述からVerilog HDLのRTLを合成

l  AMBA AXI4インターコネクトのサポート
•  Xilinx Platform Studio (XPS)などを用いたIPコアベースの開発を支援

l  計算ロジックの複雑なデザインに対応
•  ハードウェアデザイン解析・生成のための
オープンソースツールキットPyverilogを活用
2014-01-23

Shinya T-Y. Tokyo Tech

6
PyCoRAMマイクロアーキテクチャ
GPIO

User
I/O

User Logic
CoRAM
Register

Control
Thread

CoRAM
Channel
CoRAM
Memory
DMAC

2014-01-23

CoRAM
Stream
DMAC

Shinya T-Y. Tokyo Tech

FSM

7
PyCoRAMマイクロアーキテクチャ
Modeled in RTL
(Verilog HDL) User
I/O

GPIO

User Logic
CoRAM
Register

Control
Thread

Memory Access
Pattern
in Python

CoRAM
Channel
CoRAM
Memory
DMAC

2014-01-23

CoRAM
Stream
DMAC

Shinya T-Y. Tokyo Tech

FSM

8
PyCoRAMマイクロアーキテクチャの実装
GPIO

User
I/O

PyCoRAM IP
User Logic
CoRAM
Register

Control
Thread

CoRAM
Channel
CoRAM
Memory

CoRAM
Stream

DMAC

DMAC

AXI I/F

AXI I/F

FSM

AXI4 Interconnect

FPGA
2014-01-23

DRAM Controller
Shinya T-Y. Tokyo Tech

9
PyCoRAMにおける開発フロー
n  計算カーネルのRTLとPythonでのコントロールスレッド
記述からIPコアパッケージを生成
l  生成されたIPコアは通常のEDAフローで利用可能
RTL Conversion

User-logic
(Verilog HDL)

Control
Threads
(Python)

Portable
Application
Design

2014-01-23

Logic
Hierarchy
Analysis

Python-toVerilog
Compilation

Control
Signal
Insertion

IP-core
generation
with AXI4
Interface
IP-core
Packing

Control
Signal Port
Addition

PyCoRAM Tool-chain
Python-to-Verilog HLS
Shinya T-Y. Tokyo Tech

(RTL,
.mpd,
and
.pao)

Top design
synthesis with
AXI4
IP-core
Integration
on EDK

Synthesis

FPGA
Bit
File

Vendor EDA Flow
10
Pythonによるコントロールスレッド
n  CoRAMオブジェクトに対する処理を記述する
l  CoRAMメモリ(read/write)

User
I/O

User Logic

•  オンチップCoRAMメモリとオフチップDRAM
との間のDMA転送によるデータ移動

l  CoRAMチャネル(read/write)
•  ユーザロジックとコントロールスレッド
との間のトークンのやりとり

Control
Thread

CoRAM
Channel
CoRAM
Memory

FSM

DMAC

0� def calc_sum(times):�
ram = CoramMemory(idx=0, datawidth=32, size=1024)�
1�
channel = CoramChannel(idx=0, datawidth=32)�
2�
addr = 0�
3�
sum = 0�
4�
for i in range(times):�
5�
ram.write(0, addr, 128)� # Transfer (off-chip DRAM to BRAM)
6�
channel.write(addr)�
# Notification to User-logic
7�
sum += channel.read()� # Wait for Notification from User-logic
8�
addr += 128 * (32/8)�
9�
print(‘sum=’, sum)�
# $display Verilog system task
10�
�
11� calc_sum(8)�
2014-01-23

Shinya T-Y. Tokyo Tech

11
ユーザロジックにおけるCoRAMオブジェクト
n  CoRAMオブジェクトはブロックRAMやFIFOとして扱う
l  一般的なメモリとよく似たインターフェース
•  CoRAMと外部を接続するインターフェースは自動的に追加される

l  いくつかのパラメータで特性を指定
•  スレッド名,ID,データ幅,アドレス幅,スキャッターギャザー等

CoramMemory1P�
#(�
.CORAM_THREAD_NAME("thread_name"),�
.CORAM_ID(0),�
.CORAM_ADDR_LEN(ADDR_LEN),�
.CORAM_DATA_WIDTH(DATA_WIDTH)�
)�
inst_memory�
(.CLK(CLK),�
.ADDR(mem_addr),�
.D(mem_d),�
.WE(mem_we),�
.Q(mem_q)�
);�
2014-01-23

CoramChannel�
#(�
.CORAM_THREAD_NAME("thread_name"),�
.CORAM_ID(0),�
.CORAM_ADDR_LEN(CHANNEL_ADDR_LEN),�
.CORAM_DATA_WIDTH(CHANNEL_DATA_WIDTH)�
)�
inst_channel�
(.CLK(CLK),�
.RST(RST),�
.D(comm_d),�
.ENQ(comm_enq),�
.FULL(comm_full),�
.Q(comm_q),�
.DEQ(comm_deq),�
.EMPTY(comm_empty)�
);�

(a) CoRAM Memory

(b) CoRAM Channel

Shinya T-Y. Tokyo Tech

12
PyCoRAM IPコアを用いたFPGAアクセラレータ
FPGA

Other
AXI
IP-core
or
CPU

PyCoRAM IP
(Application)

CoRAM
Memory
DMA
Cluster

HW Kernels
(Computing Logics)

CoRAM
Memory

DMAC

AXI I/F

CoRAM
Channel

CoRAM
Stream

CoRAM
Stream

DMAC

DMAC

DMAC

AXI I/F

AXI I/F

AXI I/F

CoRAM
Memory
DMA
Cluster

Control
Thread

CoRAM
Memory

FSM

AXI4 Interconnect

DRAM Controller

DRAM (Off-chip)

2014-01-23

Shinya T-Y. Tokyo Tech

13
PyCoRAM IPコアのインターフェース
n  標準的なAXI4マスターインターフェース
WrData

Enque

AlmFull

WrData

Enque

AlmFull

Empty
Deque

RdData

FSM

Addr

Size

RdEn

RdEn

Ready

WrData

Enque

AlmFull

Control
Thread

RdEn
Busy
Ready

RdData

・・・

WrEn

DMA Controller

Deque

RdData

Empty
Deque

WrEn

WrData

BramAddr
DramAddr
Size

Empty

CoRAM
Channel

DMA
Cluster

WrEn

Addr

WrData

・・・

RdData

CoRAM
Memory
(BRAM)

WrEn

WrData

RdData

Addr

CoRAM
Memory
(BRAM)

RdData

Addr

WrEn

RdData

WrData

Addr

HW Kernels
(Computing Logic)

Write Address
Channel

Write Data
Channel

Read Address
Channel

RDATA

RREADY

RVALID

ARADDR

ARLEN

ARVALID

ARREADY

WDATA

BVALID

WVALID

WREADY

AWADDR

AWLEN

AWVALID

AWREADY

AXI Master Interface
(Protocol Conversion)

Read Data
Channel

AXI4 Interconnect

2014-01-23

Shinya T-Y. Tokyo Tech

14
決勝用FPGAアクセラレータ
n  構成: 6段MIPSコア+UARTローダー+アクセラレータ2種
l  DRAMとの間のAXI4インターコネクトはXPSが自動的に生成
l  動作周波数: ロジック/AXIバス:100MHz, DRAM:400MHz

6-stage
MIPS-core
L1-D Cache
(2-way, 32KB,
64bytes/line)
PyCoRAM
Abstraction

UART

Memory
Loader
PyCoRAM
Abstraction

Matrix
Multiplication
Accelerator

9-point
Stencil
Accelerator

PyCoRAM
Abstraction

PyCoRAM
Abstraction

AXI4 Interconnect (32-bit, Shared-bus)
DRAM Controller
2014-01-23

Shinya T-Y. Tokyo Tech

15
決勝用FPGAアクセラレータ
n  構成: 6段MIPSコア+UARTローダー+アクセラレータ2種
l  DRAMとの間のAXI4インターコネクトはXPSが自動的に生成
l  動作周波数: ロジック/AXIバス:100MHz, DRAM:400MHz
9.8%
6-stage
MIPS-core
L1-D Cache
(2-way, 32KB,
4.5% 64bytes/line)
PyCoRAM
Abstraction

0.4%
UART

Memory
Loader
2.5%
PyCoRAM
Abstraction

Matrix
Multiplication
Accelerator
28.1%
PyCoRAM
Abstraction

9-point
Stencil
Accelerator
22.5%
PyCoRAM
Abstraction

AXI4 Interconnect (32-bit, Shared-bus)
DRAM Controller
2014-01-23

Shinya T-Y. Tokyo Tech

6.3%
16
行列積アクセラレータ
n  行列A・B・Cの各行をCoRAMメモリに格納
l  DRAMとの間のデータ転送をコントロールスレッドが担当
l  毎サイクル乗算パイプラインにデータを投入
l  行列Bの転送と演算をダブルバッファリング
•  行列Bは別のPyCoRAMハードウェアを用いて予め転置
•  おおよそ400MB/sのメモリ帯域を利用(最大帯域の1/4程度)
Control
Thread
(Python)

Computing Logic (Verilog HDL)

CoRAM
Memory 0
A

B

CoRAM
Memory 1
2014-01-23

8-stage
Multiply
Pipeline

×

+

check
sum

CoRAM
Memory 2

+

C

sum

Control Logic
Shinya T-Y. Tokyo Tech

CoRAM
Channel 0

17
ステンシル計算アクセラレータ
n  元配列の3行と結果配列の1行をCoRAMメモリに格納
l  DRAMとの間のデータ転送をコントロールスレッドが担当
l  毎サイクル加算・除算パイプラインに3点分のデータを投入
•  過去3サイクルの入力値の合計を9で割る(3点×3サイクル=9点)

l  計算1行分毎に結果を書き戻して元配列の次の1行を読み込む
•  おおよそ130MB/sのメモリ帯域を利用(最大帯域の1/12程度)
Computing Logic (Verilog HDL)
CoRAM
Memory 0

CoRAM
Memory 1
CoRAM
Memory 2

d0

d1

d2

+
+

check
sum

CoRAM
Memory 3

/

rslt

41-stage
Add-Divide
Pipeline

Control Logic
2014-01-23

Control
Thread
(Python)

Shinya T-Y. Tokyo Tech

CoRAM
Channel 0

18
MIPSコア用L1データキャッシュ
n  データRAMとしてCoRAMメモリを利用
l  データリプレイスメントをコントロールスレッドが担当
•  キャッシュミス時にコントロールスレッドにリクエストを発行
CoRAM
Memory
0,1
Write
Data

reg

Cache
Logic
(Verilog HDL)

D0

MUX

=

D1

Read
Data

Stall

Control
Thread
(Python)

reg
Tag0

Addr

Select

Tag1

Write
Enable

reg

=

CoRAM
Channel 0

Read
Enable
2014-01-23

Control
Logic

Shinya T-Y. Tokyo Tech

19
評価
n  登場選手
l  リファレンスデザイン (Ref)
l  6段MIPSコア+L1キャッシュ (6-stage)
l  6段MIPSコア+L1キャッシュ+アクセラレータ (6-stage+ACC)

n  アプリケーションデータセット
l  予選データセット

n  FPGA合成ツール
l  Xilinx Platform Studio 14.6, PlanAhead 14.6
•  Optimization goal: Speed, Optimization Effort: High
•  AXI4 Interconnect: 32-bit Shared bus (Area optimized)

n  MIPS用ソフトウェアコンパイラ
l  gcc 4.3.3 (-O3)
2014-01-23

Shinya T-Y. Tokyo Tech

20
性能
n  全実行時間から転送時間を引いた正味の計算時間を比較
n  リファレンスデザインと比較して大幅な速度向上
l  6段MIPSコアのみの構成で平均3.5倍の高速化
l  6段MIPSコア+アクセラレータ2種の構成で
平均13.2倍,最大47.1倍(ステンシル計算)の高速化
25

50

Ref

40

6-stage+ACC

Time [sec]

16.0
15

14.2

14.2
9.8

10

4.44.4

3.63.6

5

2.7
0.4

Relative Performance

20

45

20.8

6-stage

0

6-stage+ACC
35.2

35
30
25
20
13.2

15
10
5

0.3

47.1
6-stage

3.9 3.9

5.9

4.7 4.7

1.4

3.5

0
310_sort

2014-01-23

320_mm

330_stencil 340_spath

310_sort

Shinya T-Y. Tokyo Tech

320_mm 330_stencil 340_spath

Gmean

21
ハードウェア使用率
n  ユーザロジックと比べてDMACとAXI I/Fの
リソース消費量が多い
l  整数アプリかつパイプラインが1本
なので相対的に大きく見える
n  コントロールスレッドのレジスタ消費量が
多い
l  ステートマシンが巨大なため
l  細粒度並列性を抽出しFSMを
小さくすると改善可能?
l  レジスタは余り気味だから
気にしなくてもいい
5000
4500
4000
3500
3000
2500
2000
1500
1000
500
0
L1D-Cache
2014-01-23

Slice Reg

80.0%
70.0%
60.0%
50.0%

Entire System Utilization
Peripheral

Loader

Stencil Acc.

MM Acc.

L1D-Cache

UART

MIPS

40.0%
30.0%
20.0%
10.0%
0.0%
Slice Reg

9000

LUT

LUT

AXI I/F

8000

AXI I/F

DMAC

7000

DMAC

Control Thread

6000

Control Thread

User-logic

5000

User-logic

4000
3000
2000
1000
MM Acc.

Stencil Acc.

0
Loader
L1D-Cache
Shinya T-Y. Tokyo Tech

MM Acc.

Stencil Acc.

Loader

22
まとめ

n  メモリ抽象化フレームワークPyCoRAMを用いた
FPGAアクセラレータの開発
l  MIPSコア+UARTローダー+アクセラレータ2種を混載
l  リファレンスデザインと比較して最大47.1倍の性能向上を達成

n  開発したツール・フレームワークはgithubにて公開中
l  PyCoRAM: http://shtaxxx.github.io/PyCoRAM/
l  Pyverilog: http://shtaxxx.github.io/Pyverilog/

2014-01-23

Shinya T-Y. Tokyo Tech

23

More Related Content

PDF
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PDF
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PDF
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PDF
Zynq+PyCoRAM(+Debian)入門
PDF
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PDF
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
PDF
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PPTX
研究者のための Python による FPGA 入門
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
Zynq+PyCoRAM(+Debian)入門
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
研究者のための Python による FPGA 入門

What's hot (20)

PPT
20140310 fpgax
PDF
マルチパラダイム型高水準ハードウェア設計環境の検討
PDF
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
PPTX
FPGAって、何?
PDF
PythonとVeriloggenを用いたRTL設計メタプログラミング
PDF
FPGAX6_hayashi
PDF
FPGA・リコンフィギャラブルシステム研究の最新動向
PDF
FPGAのトレンドをまとめてみた
PDF
Pythonを用いた高水準ハードウェア設計環境の検討
PDF
FPGA+SoC+Linux実践勉強会資料
PDF
Gpu vs fpga
PDF
ソフトウェア技術者はFPGAをどのように使うか
PDF
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
PDF
増え続ける情報に対応するためのFPGA基礎知識
PDF
ICD/CPSY 201412
PPT
FPGA
PDF
Interop2019 Toyota Netcope P4
PPTX
Abstracts of FPGA2017 papers (Temporary Version)
PDF
Pynq祭り資料
PPTX
Myoshimi extreme
20140310 fpgax
マルチパラダイム型高水準ハードウェア設計環境の検討
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
FPGAって、何?
PythonとVeriloggenを用いたRTL設計メタプログラミング
FPGAX6_hayashi
FPGA・リコンフィギャラブルシステム研究の最新動向
FPGAのトレンドをまとめてみた
Pythonを用いた高水準ハードウェア設計環境の検討
FPGA+SoC+Linux実践勉強会資料
Gpu vs fpga
ソフトウェア技術者はFPGAをどのように使うか
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
増え続ける情報に対応するためのFPGA基礎知識
ICD/CPSY 201412
FPGA
Interop2019 Toyota Netcope P4
Abstracts of FPGA2017 papers (Temporary Version)
Pynq祭り資料
Myoshimi extreme
Ad

Similar to メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発 (20)

PDF
Zenkoku78
PDF
FPGA startup 第一回 LT
PDF
FPGAベースのソーティングアクセラレータの設計と実装
PDF
Altera SDK for OpenCL解体新書 : ホストとデバイスの関係
PDF
Python physicalcomputing
PDF
多数の小容量FPGAを用いた スケーラブルなステンシル計算機の開発
PPTX
Androidとfpgaを高速fifo通信させちゃう
PDF
SIGMOD'10勉強会 -Session 8-
PDF
FPGAを用いた世界最速のソーティングハードウェアの実現に向けた試み
PDF
IEICE technical report (RECONF), January 2015.
PPTX
「Pythonでやってみた」~広がるプログラミングの愉しみ~
PDF
seccamp2012 チューター発表
PDF
Reconf 201901
PDF
2012-04-25 ASPLOS2012出張報告(公開版)
PDF
20190625 OpenACC 講習会 第2部
PDF
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
PDF
VLDB’11勉強会 -Session 9-
PPTX
総合技術特別講義講演資料2017
PDF
FPGAをロボット(ROS)で「やわらかく」使うには
PDF
[DL Hacks]FPGA入門
Zenkoku78
FPGA startup 第一回 LT
FPGAベースのソーティングアクセラレータの設計と実装
Altera SDK for OpenCL解体新書 : ホストとデバイスの関係
Python physicalcomputing
多数の小容量FPGAを用いた スケーラブルなステンシル計算機の開発
Androidとfpgaを高速fifo通信させちゃう
SIGMOD'10勉強会 -Session 8-
FPGAを用いた世界最速のソーティングハードウェアの実現に向けた試み
IEICE technical report (RECONF), January 2015.
「Pythonでやってみた」~広がるプログラミングの愉しみ~
seccamp2012 チューター発表
Reconf 201901
2012-04-25 ASPLOS2012出張報告(公開版)
20190625 OpenACC 講習会 第2部
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
VLDB’11勉強会 -Session 9-
総合技術特別講義講演資料2017
FPGAをロボット(ROS)で「やわらかく」使うには
[DL Hacks]FPGA入門
Ad

More from Shinya Takamaeda-Y (18)

PDF
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
PDF
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
PDF
ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発
PDF
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
PDF
Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...
PDF
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
PDF
ゆるふわコンピュータ (IPSJ-ONE2017)
PDF
助教が吼える! 各界の若手研究者大集合「ハードウェアはやわらかい」
PDF
Debian Linux on Zynq (Xilinx ARM-SoC FPGA) Setup Flow (Vivado 2015.4)
PDF
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)
PDF
A CGRA-based Approach for Accelerating Convolutional Neural Networks
PDF
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...
PDF
A High Performance Heterogeneous FPGA-based Accelerator with PyCoRAM (Runner ...
PDF
PyCoRAM: Yet Another Implementation of CoRAM Memory Architecture for Modern F...
PDF
むかし名言集bot作りました!
PDF
APGAS言語X10を用いたオンチップネットワークシミュレーションの並列化
PDF
Mapping Applications with Collectives over Sub-communicators on Torus Network...
PDF
Network Performance of Multifunction On-chip Router Architectures (IEICE-CPSY...
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
ゆるふわコンピュータ (IPSJ-ONE2017)
助教が吼える! 各界の若手研究者大集合「ハードウェアはやわらかい」
Debian Linux on Zynq (Xilinx ARM-SoC FPGA) Setup Flow (Vivado 2015.4)
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)
A CGRA-based Approach for Accelerating Convolutional Neural Networks
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...
A High Performance Heterogeneous FPGA-based Accelerator with PyCoRAM (Runner ...
PyCoRAM: Yet Another Implementation of CoRAM Memory Architecture for Modern F...
むかし名言集bot作りました!
APGAS言語X10を用いたオンチップネットワークシミュレーションの並列化
Mapping Applications with Collectives over Sub-communicators on Torus Network...
Network Performance of Multifunction On-chip Router Architectures (IEICE-CPSY...

メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発