SlideShare uma empresa Scribd logo
1 de 52
Baixar para ler offline
PyCoRAM
高前田(山崎) 伸也 (@shtaxxx)
奈良先端科学技術大学院大学 情報科学研究科
E-mail: shinya_at_is_naist_jp
2015年1月16日 21:00-21:30
高位合成友の会@ドワンゴ
#fpgax
研究分野
n  コンピュータアーキテクチャ
l  プロセッサアーキテクチャ
•  メモリシステム・ニアデータプロセッシング
l  プロセッサシミュレーション
•  メニーコアCPUの高速シミュレーション・プロトタイピング
•  プロトタイピングのFPGA抽象化フレームワーク (flipSyrup)
l  FPGAコンピューティング
•  FPGA向け高位合成コンパイラ・フレームワーク (PyCoRAM)
2015-01-16 Shinya T-Y, NAIST 2
今日の話: PyCoRAMについて
n  高位合成技術とメモリシステム抽象化を用いた
アクセラレータIPコア開発のためのフレームワーク
l  キーワード: FPGAアクセラレータ・IPコア設計・Python-Verilog
高位合成・メモリシステム抽象化・AXI4インターコネクト
PyCoRAM IP
User
I/O
User Logic
CoRAM
Channel
CoRAM
Register
Control
Thread
Master
DMAC
CoRAM
Memory
Master
DMAC
CoRAM
Stream
FSM
GPIO
Slave
DMAC
CoRAM
IoChannel
Modeled in RTL
(Verilog HDL)
Memory Access
Pattern
in Python
2015-01-16 Shinya T-Y, NAIST 3
PyCoRAM and Pyverilog are available!
n PyCoRAM
l https://pypi.python.org/pypi/pycoram
l http://shtaxxx.github.io/PyCoRAM/
n Pyverilog
l https://pypi.python.org/pypi/pyverilog
l http://shtaxxx.github.io/Pyverilog/
$ pip install pyverilog�
$ pip install pycoram�
2015-01-16 Shinya T-Y, NAIST 4
はじめに
2015-01-16 Shinya T-Y, NAIST 5
Digilent Atlys
FPGA: Xilinx Spartan-6 LX45
Size: Pipelined CPU ×4
Price: 20,000yen (Academic)
Digilent ZedBoard
FPGA: Xilinx Zynq-7020
Size: Pipelined CPU ×8 (+ ARM DualCore)
Price: 50,000yen (Academic)
2015-01-16 Shinya T-Y, NAIST 6
ScalableCore System
FPGA: Xilinx Spartan-6 ×100
Size: Pipelined CPU x200?
Price: 1,000,000yen?
2015-01-16 Shinya T-Y, NAIST 7
アプリケーションのポータビリティ
n  どうやって様々なプラットフォームをサポートするか?
l  プラットフォーム毎に特性が違うL
•  ロジックサイズ・メモリサイズ・
メモリインターフェース・I/O・・・
Digilent Atlys
(Xilinx Spartan-6 LX45)
Xilinx ML605
(Xilinx Virtex-6 LX240T)
ScalableCore System (our FPGA system)
(Xilinx Spartan-6 LX16 × 128-node)
2015-01-16 Shinya T-Y, NAIST 8
IPコアベースのシステム開発
n  IPコアを開発・追加して繋げばシステム完成J
l  標準的なインターコネクトでIPコア達を接続
l  EDAツールが自動的にインターコネクトと(いくつかの)
デバイス依存のインターフェースを生成してくれるから楽ちん
Xilinx Platform Studio (XPS)
IP-core List
Interconnect
FPGA
CPU
HW
Acc
DRAM
I/F
Ether PCI-E
Interconnect
HW
Acc
DRAM
IP-core
Instances
2015-01-16 Shinya T-Y, NAIST 9
どうやってアクセラレータIPを実装するか?
n  普通にHDLでアクセラレータを実装するのは大変
l  演算とメモリアクセスのスケジューリングロジック
•  ダブルバッファリングとか面倒
l  メモリシステムの制御回路
•  HDLでステートマシンを書くのは面倒だし間違えやすい
l  デバッグが面倒
n  パイプラインの振る舞いはサイクルレベルで定義したい
l  FPGAで性能を出すには高稼働率のパイプラインが重要
•  だから計算ロジックはHDLで書きたい
•  (OSSな)高位合成系だとチューンがイマイチ難しい(?)
n  データ転送を抽象化すれば幸せ?
CoRAMメモリアーキテクチャ
2015-01-16 Shinya T-Y, NAIST 10
PyCoRAM
2015-01-16 Shinya T-Y, NAIST 11
CoRAM [Chung+,FPGA’11]
n  FPGAアクセラレータのためのメモリ抽象化
l  高位モデルによるメモリ管理でアクセラレータをポータブルに
•  計算カーネルとメモリアクセスの分離
•  ソフトウェアのモデルによるメモリアクセスパターンの記述
HW Kernels
(Computing Logics)
CoRAM
Memory
Read
Write
Manage
Control Threads
(Memory Access
Pattern)
CoRAM
Channel
Read/Write Read/Write
Communication
FIFOs (Registers)
Abstracted
On-chip Memories
Off-chip
Memory
2015-01-16 Shinya T-Y, NAIST 12
PyCoRAM [Takamaeda+,CARL’13]:
CoRAM for Modern EDKs
n  CoRAMのメモリ抽象化を今時のEDKで使いたい
l  標準的なインターコネクト(AXI4/Avalon)に繋ぎたい
l  そうすれば他の普通のIPコアとも簡単に共存できそう
Standard On-chip Interconnect
CoRAM
Abstraction
Accelerator logic
Standard IP-core
Device-dependent Interfaces
CPU core
Portable application
design with CoRAM Cooperation with standard IP-cores
2015-01-16 Shinya T-Y, NAIST 13
PyCoRAMマイクロアーキテクチャ
PyCoRAM IP
User
I/O
User Logic
CoRAM
Channel
CoRAM
Register
Control
Thread
Master
DMAC
CoRAM
Memory
Master
DMAC
CoRAM
Stream
FSM
GPIO
Slave
DMAC
CoRAM
IoChannel
2015-01-16 Shinya T-Y, NAIST 14
PyCoRAM IP
User
I/O
User Logic
CoRAM
Channel
CoRAM
Register
Control
Thread
Master
DMAC
CoRAM
Memory
Master
DMAC
CoRAM
Stream
FSM
GPIO
Slave
DMAC
CoRAM
IoChannel
PyCoRAMマイクロアーキテクチャ
Modeled in RTL
(Verilog HDL)
Memory Access
Pattern
in Python
2015-01-16 Shinya T-Y, NAIST 15
PyCoRAMマイクロアーキテクチャの実装
PyCoRAM IP
Interconnect (AXI4/Avalon)
DRAM ControllerFPGA
User
I/O
User Logic
CoRAM
Channel
CoRAM
Register
Control
Thread
Master
DMAC
Master I/F
CoRAM
Memory
Master
DMAC
Master I/F
CoRAM
Stream
Slave I/F
FSM
GPIO
Slave
DMAC
CoRAM
IoChannel
2015-01-16 Shinya T-Y, NAIST 16
PyCoRAMマイクロアーキテクチャの実装
PyCoRAM IP
Interconnect (AXI4/Avalon)
DRAM ControllerFPGA
User
I/O
User Logic
CoRAM
Channel
CoRAM
Register
Control
Thread
Master
DMAC
Master I/F
CoRAM
Memory
Master
DMAC
Master I/F
CoRAM
Stream
Slave I/F
FSM
GPIO
Slave
DMAC
CoRAM
IoChannelMaster:
メモリ等へ能動
的にアクセス
Slave:
プロセッサ等から
読み書きされる
2015-01-16 Shinya T-Y, NAIST 17
PyCoRAMにおける開発フロー
n  計算カーネルのRTLとPythonでのコントロールスレッド
記述からIPコアパッケージを生成
l  生成されたIPコアは通常のEDAフローで利用可能
User-logic
(Verilog HDL)
Control
Threads
(Python)
Logic
Hierarchy
Analysis
Python-to-
Verilog
Compilation
Control
Signal
Insertion IP-core
Packing
(RTL,
.mpd,
and
.pao)
IP-core
Integration
on EDK
Synthesis
Control
Signal Port
Addition
FPGA
Bit
File
Portable
Application
Design
PyCoRAM Tool-chain Vendor EDA FlowPython-to-Verilog HLS
RTL Conversion
IP-core
generation
with AXI4
Interface
Top design
synthesis with
AXI4
2015-01-16 Shinya T-Y, NAIST 18
PyCoRAMの使い方
2015-01-16 Shinya T-Y, NAIST 19
PyCoRAMにおけるIPコアの作り方・でき方
n  2種類のファイルを用意する
l  Verilog HDL: 計算ロジック
l  Python: コントロールスレッド(メモリアクセスパターン)
n  PyCoRAMが自動的にIPコアのパッケージを作成
l  Python-Verilog高位合成とRTL変換を自動で行う
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)�
);�
def calc_sum(times):�
ram = CoramMemory(idx=0, datawidth=32, size=1024)�
channel = CoramChannel(idx=0, datawidth=32)�
addr = 0�
sum = 0�
for i in range(times):�
ram.write(0, addr, 128)�
channel.write(addr)�
sum += channel.read()�
addr += 128 * (32/8)�
print(‘sum=’, sum)�
calc_sum(8)�
2015-01-16 Shinya T-Y, NAIST 20
計算ロジックにおける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)�
);�
(a) CoRAM Memory
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)�
);�
(b) CoRAM Channel2015-01-16 Shinya T-Y, NAIST 21
Pythonによるコントロールスレッド
n  CoRAMオブジェクトに対する処理を記述する
l  CoRAMメモリ(read/write)
•  オンチップCoRAMメモリとオフチップDRAM
との間のDMA転送によるデータ移動
l  CoRAMチャネル(read/write)
•  ユーザロジックとコントロールスレッド
との間のトークンのやりとり
def calc_sum(times):�
ram = CoramMemory(idx=0, datawidth=32, size=1024)�
channel = CoramChannel(idx=0, datawidth=32)�
addr = 0�
sum = 0�
for i in range(times):�
ram.write(0, addr, 128)�
channel.write(addr)�
sum += channel.read()�
addr += 128 * (32/8)�
print(‘sum=’, sum)�
calc_sum(8)�
# Transfer (off-chip DRAM to BRAM)
# Notification to User-logic
# Wait for Notification from User-logic
# $display Verilog system task
�
User
I/O
User Logic
CoRAM
Channel
Control
Thread
DMAC
CoRAM
Memory FSM
0�
1�
2�
3�
4�
5�
6�
7�
8�
9�
10�
11�
2015-01-16 Shinya T-Y, NAIST 22
例: 配列の和を求めるアクセラレータ
n  1-CoRAM+1-Threadの簡単なハードウェア
l  CoRAMメモリにDRAM(など)からデータを読み込む
l  コントロールスレッドでオンチップ-オフチップ間のデータ転送
パターンを表現
Computing Logic (Verilog HDL)
Control
Thread
(Python)
sum
CoRAM
Memory 0
+
Control Logic
CoRAM
Channel 0
A
2015-01-16 Shinya T-Y, NAIST 23
計算ロジック (1): I/Oポート
クロック(CLK)とリセット(RST)
以外に専用のI/Oは不要
CoRAMメモリのための信号
(BRAMと同じインターフェース)
CoRAMチャネルのための信号
(FIFOと同じインターフェース)
ステートマシン用変数
2015-01-16 Shinya T-Y, NAIST 24
計算ロジック (2): パイプライン/FSM
CoRAMチャネルに書き込み
(コントロールスレッドに通知)
CoRAMチャネルから読み出し
(コントロールスレッドから受信)
2015-01-16 Shinya T-Y, NAIST 25
計算ロジック (3): 子インスタンス
CoRAMメモリ
(BRAMと同じインターフェース)
CoRAMチャネル
(FIFOと同じインターフェース)
2015-01-16 Shinya T-Y, NAIST 26
コントロールスレッド (Python)
ram (CoRAMメモリ)とchannel (CoRAMチャネル)の宣言
CoRAMメモリにDMA転送したり
CoRAMチャネルから読んだり書いたり
2015-01-16 Shinya T-Y, NAIST 27
コンパイル
2015-01-16 Shinya T-Y, NAIST 28
シミュレーション結果
2015-01-16 Shinya T-Y, NAIST 29
シミュレーション結果(波形)
2015-01-16 Shinya T-Y, NAIST 30
サポートされているPyCoRAMオブジェクト
n  データ置き場(メモリ・ストリーム)
l  CoramMemory
•  Block RAM that the data is replaced by the control thread
l  CoramInStream
•  Input FIFO from off-chip DRAM
l  CoramOutStream
•  Output FIFO to off-chip DRAM
n  ユーザロジックとコンロールスレッド間のチャネル
l  CoramChannel
•  FIFO between user-logic and control-thread
l  CoramRegister
•  Latch between user-logic and control-thread
n  他のIPコア・プロセッサからアクセスできるスレーブチャネル
l  CoramIoChannel
•  (AXI4/Avalon) Slave interface
2015-01-16 Shinya T-Y, NAIST 31
応用その1
行列積・ステンシル計算
アクセラレータ
2015-01-16 Shinya T-Y, NAIST 32
行列積・ステンシルアクセラレータ
n  PyCoRAMでIPコア2種を実装
l  MicroblazeからはAXI4スレーブ経由でメモリマップドI/Oで制御
Matrix-Mult
Accelerator
CoRAM Abstraction
MM
Logic
Cthread
MM
UART
Loader
CoRAM Abstraction
UART
Loader
Logic
Control
Thread
Microblaze
5-stage
32KB Local memory
8KB D-Cache
AXI4 Interconnect (128-bit, Crossbar)
DRAM Controller (DDR2-800 16-bit (1.6GB/s))
exStick
FPGA (Spartan-6 LX45)
DRAM (128MB)
Stencil
Accelerator
CoRAM Abstraction
Stencil
Logic
Cthread
Stencil
AXI4-lite Interconnect (32-bit, Shared bus)
2015-01-16 Shinya T-Y, NAIST 33
行列積アクセラレータIPコア
n  行列A・B・Cの各行をCoRAMメモリに格納
l  DRAMとの間のデータ転送をコントロールスレッドが担当
l  毎サイクル乗算パイプラインにデータを投入
l  行列Bの転送と演算をダブルバッファリング
l  SIMD幅をメモリバンド幅を使い切るようにチューニング
Computing Logic (Verilog HDL)
Control
Thread
(Python)
sum
CoRAM
Memory 0
B
× +
CoRAM
Memory 1
CoRAM
Memory 2
Control Logic
CoRAM
Channel 0
8-stage
Multiply
PipelineA
C
check
sum+
I/O
Channel
2015-01-16 Shinya T-Y, NAIST 34
応用その1
グラフ処理
アクセラレータ
2015-01-16 Shinya T-Y, NAIST 35
ダイクストラアクセラレータ
n  ホストからUART経由で制御・グラフ構築にMicroblaze
Dijkstra Accelerator
CoRAM Abstraction
Read
Node
CThread
Dijkstra Logic
Read
Node
Read
Edge
Update
Node
Mark
Visited
Read
Edge
CThread
Update
Node
CThread
Mark
Visited
CThread
Main
Control
Tread
Priority
Queue
Priority
Queue
CThread
UART Loader
CoRAM Abstraction
UART
Loader
Logic
Control
Thread
Microblaze
3-stage
16KB Local memory
2KB I-Cache
2KB D-Cache
AXI4 Interconnect (128-bit, Crossbar)
DRAM Controller (DDR2-800 16-bit (1.6GB/s))
AXI4-lite Interconnect (32-bit, Shared bus)
Host PC
FPGA
(Spartan-6 LX45)
DRAM (128MB)
2015-01-16 Shinya T-Y, NAIST 36
PyCoRAMを用いたダイクストラIPコア
n  PyCoRAMを使って演算モジュールはVerilog HDLで実装
メモリアクセス制御はPythonで実装
Read Node
InStream
Read Edge
InStream
Update
Node
OutStream
Mark Visited
OutStream
Priority Queue
InStreamOutStream
Edge
Page
Addr
Cost
+
Next Node Addr
Node
Addr
Next Node Cost
Node Addr
Next Node Addr
Next Node Cost
FSM
DMAC DMAC DMAC DMAC DMAC DMAC Slave I/F
AXI4 Master Interfaces
AXI4-lite
Slave Interfaces
Dijkstra
Logic
(Modeled in Verilog
HDL)
Mark Visited
Cthread
Read Node
Cthread
Read Edge
Cthread
Priority Queue Cthread
Mark Visited
Cthread
Main
CThread
Control Threads (Modeled in Python)
UserDefinition(ModeledinVerilogHDLandPython)Generatedby
PyCoRAM
2015-01-16 Shinya T-Y, NAIST 37
PyCoRAMを用いたダイクストラIPコア
n  ステージ1: 最小コストノード取り出し
Read Node
InStream
Read Edge
InStream
Update
Node
OutStream
Mark Visited
OutStream
Priority Queue
InStreamOutStream
Edge
Page
Addr
Cost
+
Next Node Addr
Node
Addr
Next Node Cost
Node Addr
Next Node Addr
Next Node Cost
FSM
DMAC DMAC DMAC DMAC DMAC DMAC Slave I/F
AXI4 Master Interfaces
AXI4-lite
Slave Interfaces
Dijkstra
Logic
(Modeled in Verilog
HDL)
Mark Visited
Cthread
Read Node
Cthread
Read Edge
Cthread
Priority Queue Cthread
Mark Visited
Cthread
Main
CThread
Control Threads (Modeled in Python)
UserDefinition(ModeledinVerilogHDLandPython)Generatedby
PyCoRAM
2015-01-16 Shinya T-Y, NAIST 38
PyCoRAMを用いたダイクストラIPコア
n  ステージ2:ノード情報読み出し
Read Node
InStream
Read Edge
InStream
Update
Node
OutStream
Mark Visited
OutStream
Priority Queue
InStreamOutStream
Edge
Page
Addr
Cost
+
Next Node Addr
Node
Addr
Next Node Cost
Node Addr
Next Node Addr
Next Node Cost
FSM
DMAC DMAC DMAC DMAC DMAC DMAC Slave I/F
AXI4 Master Interfaces
AXI4-lite
Slave Interfaces
Dijkstra
Logic
(Modeled in Verilog
HDL)
Mark Visited
Cthread
Read Node
Cthread
Read Edge
Cthread
Priority Queue Cthread
Mark Visited
Cthread
Main
CThread
Control Threads (Modeled in Python)
UserDefinition(ModeledinVerilogHDLandPython)Generatedby
PyCoRAM
2015-01-16 Shinya T-Y, NAIST 39
PyCoRAMを用いたダイクストラIPコア
n  ステージ3:ノードに訪問済みフラグ書き込み
Read Node
InStream
Read Edge
InStream
Update
Node
OutStream
Mark Visited
OutStream
Priority Queue
InStreamOutStream
Edge
Page
Addr
Cost
+
Next Node Addr
Node
Addr
Next Node Cost
Node Addr
Next Node Addr
Next Node Cost
FSM
DMAC DMAC DMAC DMAC DMAC DMAC Slave I/F
AXI4 Master Interfaces
AXI4-lite
Slave Interfaces
Dijkstra
Logic
(Modeled in Verilog
HDL)
Mark Visited
Cthread
Read Node
Cthread
Read Edge
Cthread
Priority Queue Cthread
Mark Visited
Cthread
Main
CThread
Control Threads (Modeled in Python)
UserDefinition(ModeledinVerilogHDLandPython)Generatedby
PyCoRAM
2015-01-16 Shinya T-Y, NAIST 40
PyCoRAMを用いたダイクストラIPコア
n  パイプライン動作:(1)エッジ読み出し→
(2)隣接ノード読み出し→(3)隣接ノード更新
Read Node
InStream
Read Edge
InStream
Update
Node
OutStream
Mark Visited
OutStream
Priority Queue
InStreamOutStream
Edge
Page
Addr
Cost
+
Next Node Addr
Node
Addr
Next Node Cost
Node Addr
Next Node Addr
Next Node Cost
FSM
DMAC DMAC DMAC DMAC DMAC DMAC Slave I/F
AXI4 Master Interfaces
AXI4-lite
Slave Interfaces
Dijkstra
Logic
(Modeled in Verilog
HDL)
Mark Visited
Cthread
Read Node
Cthread
Read Edge
Cthread
Priority Queue Cthread
Mark Visited
Cthread
Main
CThread
Control Threads (Modeled in Python)
UserDefinition(ModeledinVerilogHDLandPython)Generatedby
PyCoRAM
123
2015-01-16 Shinya T-Y, NAIST 41
実行時間
n  FPGA上の実装は汎用PCと比べて25倍程度低速L
l  メモリバンド幅あたりの性能でも1.5倍程度悪い・・・
l  なぜか?
•  データセットが小さい・OoOプロセッサのMLP抽出能力は凄い
498.9 492.7
413.4 404.3
16.2
0.0
100.0
200.0
300.0
400.0
500.0
600.0
C128 C32 S128 S32 x86
ExecutionTime[msec]
25x
2015-01-16 Shinya T-Y, NAIST 42
実行時間
n  FPGAでの実行時間を比べてみると直感と真逆の結果
l  クロスバーよりも共有バスの方が高性能!
l  バス幅が狭い方が高性能!
n  なぜか?
l  共有バスの方が
レイテンシが短い
l  バス幅が短い方が
レイテンシが短い
l  必要なモノ:
高バンド幅ではなく
短レイテンシ
498.9 492.7
413.4 404.3
16.2
0.0
100.0
200.0
300.0
400.0
500.0
600.0
C128 C32 S128 S32 x86
ExecutionTime[msec]
2015-01-16 Shinya T-Y, NAIST 43
Pyverilog
2015-01-16 Shinya T-Y, NAIST 44
Pyverilog: Python-based Hardware Design
Processing Tool-kit for Verilog HDL
Module
Analyzer
Syntax
Analyzer
Lexical
Analyzer
AST
Signal
Analyzer
Bind
Analyzer
Dataflow
State
Machine
Pattern
Matcher
Control-flow
Optimizer
Code
Generator
Active
Condition
Analyzer
Visualizer
Verilog HDL
Code
module TOP
(input CLK,
input RST,
output rslt, …
Graphical
Output
Verilog HDL
Code
module TOP
(input CLK,
input RST,
output rslt, …
Parser
Dataflow Analyzer
Control-flow Analyzer
Input
Output
AST
2015-01-16 Shinya T-Y, NAIST 45
PythonでVerilog HDLのコード生成
1 import pyverilog.vparser.ast as vast
2 from pyverilog.ast_code_generator.codegen import ASTCodeGenerator
3
4 params = vast.Paramlist(())
5 clk = vast.Ioport( vast.Input(’CLK’) )
6 rst = vast.Ioport( vast.Input(’RST’) )
7 width = vast.Width( vast.IntConst(’7’), vast.IntConst(’0’) )
8 led = vast.Ioport( vast.Output(’led’, width=width) )
9 ports = vast.Portlist( (clk, rst, led) )
10 items = ( vast.Assign( vast.Identifier(’led’), vast.IntConst(’8’) ) ,)
11 ast = vast.ModuleDef("top", params, ports, items)
12
13 codegen = ASTCodeGenerator()
14 rslt = codegen.visit(ast)
15 print(rslt)
11 19, 14 13:53 codegen.py
1 module top
2 (
3 input [0:0] CLK,
4 input [0:0] RST,
5 output [7:0] led
6 );
7 assign led = 8;
8 endmodule
11 19, 14 14:15 generated.v
Python
Verilog HDL
Execute
これをベースに
抽象度の高いHDLを作りたい
2015-01-16 Shinya T-Y, NAIST 46
flipSyrup: RTL Modeling with Abstract Objects
n  In advance, RAM objects and logic segments are
identified by using abstract objects of flipSyrup
ReConFig2014 Shinya T-Y. NAIST 47
Read
Write
RAM
1-cycle RAMs w/o Capacity Limits
RAM RAM
Logic
Read
Write
Sub-logic
0
Syrup
Memory
Syrup
Memory
Syrup
Channel
Syrup
Channel
Read
Write
Virtual Connection
Region 0
Sub-logic
N-1
Syrup
Memory
Syrup
Channel
Region N-1
= Entire Original LogicReplacing RAMs and I/Os
with abstract objects
(a) Original Target Design (b) RTL Design with Abstract Objects
Complete Cycle-Accurate Simulation System
n  The tool-chain generates a complete IP-core for cycle-
accurate simulation of the target hardware
ReConFig2014 Shinya T-Y. NAIST 48
Memory
I/F
Memory
I/F
Channel
I/F
Channel
I/F
Stall
I/OInterface
(Ser/Des)
Off-chip DRAM
On-chip Bus Interface
(AXI4 or Handshake)
Cache
FIFO
Controlled
Simulation
Target
Cycle-Accuracy
Manager
Cache
FIFO
On-chip Interconnect
Other
IP-core
or
CPU
(If
needed)
flipSyrup IP-core (Region 0)
(Automatically Generated)
FPGA
Region 0
I/O
flipSyrup System
Sub-logic
0
FPGA
Region N-1
Connected to Other FPGAs
今後の展望とまとめ
2015-01-16 Shinya T-Y, NAIST 49
今後の展望
n  諸事情により開発があまり進んでいません(´・ω・`)
n  ロジックのモデリング方式は何とかしたい
l  コンピューティングロジックもHDLで書きたくない
l  計算カーネルに特化したマルチパラダイム処理系・DSL?
•  MyHDL (Python), Chisel (Scala), Synthesijer.Scala (Scala)
•  PyMTL: この後で紹介
n  他の言語で高位合成系
l  Go言語のgoroutineとかchannelはいいよね
n  高位合成系におけるLLVM的環境の実現
l  LLVM: LLVM-IRを入力に最適化したり機械語を吐いたり
l  データフローを入力したらスケジューリング・最適化
•  DFGレベルのスケジューリング・最適化を対象
•  粗粒度・スレッドレベルなスケジューリングは自分で
2015-01-16 Shinya T-Y, NAIST 50
PyMTL [Lockhart+,MICRO’14]
Derek Lockhart+: PyMTL: A Unified Framework for Vertically Integrated Computer Architecture Research, ACM/IEEE MICRO-47 (2014)
Pythonでハードウェアを記述
3つのパラダイムをサポート
•  Functional Level (FL)
•  Cycle Level (CL)
•  Register Transfer Level (RTL)
これって書きやすい?
2015-01-16 Shinya T-Y, NAIST 51
まとめ
n  PyCoRAM: 高位合成技術とメモリシステム抽象化を用い
たアクセラレータIPコア開発のためのフレームワーク
n  開発したツール・フレームワークは公開中
PyCoRAM IP
User
I/O
User Logic
CoRAM
Channel
CoRAM
Register
Control
Thread
Master
DMAC
CoRAM
Memory
Master
DMAC
CoRAM
Stream
FSM
GPIO
Slave
DMAC
CoRAM
IoChannel
Modeled in RTL
(Verilog HDL)
Memory Access
Pattern
in Python
$ pip install pyverilog�
$ pip install pycoram�
2015-01-16 Shinya T-Y, NAIST 52

Mais conteúdo relacionado

Mais procurados

FPGAのトレンドをまとめてみた
FPGAのトレンドをまとめてみたFPGAのトレンドをまとめてみた
FPGAのトレンドをまとめてみたTakefumi MIYOSHI
 
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門ryos36
 
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステムオープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステムShinya Takamaeda-Y
 
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみようPythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみようShinya Takamaeda-Y
 
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料一路 川染
 
Abstracts of FPGA2017 papers (Temporary Version)
Abstracts of FPGA2017 papers (Temporary Version)Abstracts of FPGA2017 papers (Temporary Version)
Abstracts of FPGA2017 papers (Temporary Version)Takefumi MIYOSHI
 
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)Shinya Takamaeda-Y
 
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法Kentaro Sano
 
増え続ける情報に対応するためのFPGA基礎知識
増え続ける情報に対応するためのFPGA基礎知識増え続ける情報に対応するためのFPGA基礎知識
増え続ける情報に対応するためのFPGA基礎知識なおき きしだ
 
PythonとVeriloggenを用いたRTL設計メタプログラミング
PythonとVeriloggenを用いたRTL設計メタプログラミングPythonとVeriloggenを用いたRTL設計メタプログラミング
PythonとVeriloggenを用いたRTL設計メタプログラミングShinya Takamaeda-Y
 
Pythonを用いた高水準ハードウェア設計環境の検討
Pythonを用いた高水準ハードウェア設計環境の検討Pythonを用いた高水準ハードウェア設計環境の検討
Pythonを用いた高水準ハードウェア設計環境の検討Shinya Takamaeda-Y
 
Synthesijer.Scala (PROSYM 2015)
Synthesijer.Scala (PROSYM 2015)Synthesijer.Scala (PROSYM 2015)
Synthesijer.Scala (PROSYM 2015)Takefumi MIYOSHI
 
ソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うかソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うかなおき きしだ
 

Mais procurados (20)

FPGAのトレンドをまとめてみた
FPGAのトレンドをまとめてみたFPGAのトレンドをまとめてみた
FPGAのトレンドをまとめてみた
 
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門
 
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステムオープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
 
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみようPythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
 
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
 
20140310 fpgax
20140310 fpgax20140310 fpgax
20140310 fpgax
 
Abstracts of FPGA2017 papers (Temporary Version)
Abstracts of FPGA2017 papers (Temporary Version)Abstracts of FPGA2017 papers (Temporary Version)
Abstracts of FPGA2017 papers (Temporary Version)
 
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
 
Gpu vs fpga
Gpu vs fpgaGpu vs fpga
Gpu vs fpga
 
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
 
増え続ける情報に対応するためのFPGA基礎知識
増え続ける情報に対応するためのFPGA基礎知識増え続ける情報に対応するためのFPGA基礎知識
増え続ける情報に対応するためのFPGA基礎知識
 
PythonとVeriloggenを用いたRTL設計メタプログラミング
PythonとVeriloggenを用いたRTL設計メタプログラミングPythonとVeriloggenを用いたRTL設計メタプログラミング
PythonとVeriloggenを用いたRTL設計メタプログラミング
 
FPGAって、何?
FPGAって、何?FPGAって、何?
FPGAって、何?
 
ICD/CPSY 201412
ICD/CPSY 201412ICD/CPSY 201412
ICD/CPSY 201412
 
Myoshimi extreme
Myoshimi extremeMyoshimi extreme
Myoshimi extreme
 
FPGA
FPGAFPGA
FPGA
 
Reconf_201409
Reconf_201409Reconf_201409
Reconf_201409
 
Pythonを用いた高水準ハードウェア設計環境の検討
Pythonを用いた高水準ハードウェア設計環境の検討Pythonを用いた高水準ハードウェア設計環境の検討
Pythonを用いた高水準ハードウェア設計環境の検討
 
Synthesijer.Scala (PROSYM 2015)
Synthesijer.Scala (PROSYM 2015)Synthesijer.Scala (PROSYM 2015)
Synthesijer.Scala (PROSYM 2015)
 
ソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うかソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うか
 

Destaque

Mapping Applications with Collectives over Sub-communicators on Torus Network...
Mapping Applications with Collectives over Sub-communicators on Torus Network...Mapping Applications with Collectives over Sub-communicators on Torus Network...
Mapping Applications with Collectives over Sub-communicators on Torus Network...Shinya Takamaeda-Y
 
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)Shinya Takamaeda-Y
 
A CGRA-based Approach for Accelerating Convolutional Neural Networks
A CGRA-based Approachfor Accelerating Convolutional Neural NetworksA CGRA-based Approachfor Accelerating Convolutional Neural Networks
A CGRA-based Approach for Accelerating Convolutional Neural NetworksShinya Takamaeda-Y
 
An FPGA-based Scalable Simulation Accelerator for Tile Architectures @HEART2011
An FPGA-based Scalable Simulation Accelerator for Tile Architectures @HEART2011An FPGA-based Scalable Simulation Accelerator for Tile Architectures @HEART2011
An FPGA-based Scalable Simulation Accelerator for Tile Architectures @HEART2011Shinya Takamaeda-Y
 
助教が吼える! 各界の若手研究者大集合「ハードウェアはやわらかい」
助教が吼える! 各界の若手研究者大集合「ハードウェアはやわらかい」助教が吼える! 各界の若手研究者大集合「ハードウェアはやわらかい」
助教が吼える! 各界の若手研究者大集合「ハードウェアはやわらかい」Shinya Takamaeda-Y
 
Zynq + Vivado HLS入門
Zynq + Vivado HLS入門Zynq + Vivado HLS入門
Zynq + Vivado HLS入門narusugimoto
 
Debian Linux on Zynq (Xilinx ARM-SoC FPGA) Setup Flow (Vivado 2015.4)
Debian Linux on Zynq (Xilinx ARM-SoC FPGA) Setup Flow (Vivado 2015.4)Debian Linux on Zynq (Xilinx ARM-SoC FPGA) Setup Flow (Vivado 2015.4)
Debian Linux on Zynq (Xilinx ARM-SoC FPGA) Setup Flow (Vivado 2015.4)Shinya Takamaeda-Y
 

Destaque (7)

Mapping Applications with Collectives over Sub-communicators on Torus Network...
Mapping Applications with Collectives over Sub-communicators on Torus Network...Mapping Applications with Collectives over Sub-communicators on Torus Network...
Mapping Applications with Collectives over Sub-communicators on Torus Network...
 
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)
 
A CGRA-based Approach for Accelerating Convolutional Neural Networks
A CGRA-based Approachfor Accelerating Convolutional Neural NetworksA CGRA-based Approachfor Accelerating Convolutional Neural Networks
A CGRA-based Approach for Accelerating Convolutional Neural Networks
 
An FPGA-based Scalable Simulation Accelerator for Tile Architectures @HEART2011
An FPGA-based Scalable Simulation Accelerator for Tile Architectures @HEART2011An FPGA-based Scalable Simulation Accelerator for Tile Architectures @HEART2011
An FPGA-based Scalable Simulation Accelerator for Tile Architectures @HEART2011
 
助教が吼える! 各界の若手研究者大集合「ハードウェアはやわらかい」
助教が吼える! 各界の若手研究者大集合「ハードウェアはやわらかい」助教が吼える! 各界の若手研究者大集合「ハードウェアはやわらかい」
助教が吼える! 各界の若手研究者大集合「ハードウェアはやわらかい」
 
Zynq + Vivado HLS入門
Zynq + Vivado HLS入門Zynq + Vivado HLS入門
Zynq + Vivado HLS入門
 
Debian Linux on Zynq (Xilinx ARM-SoC FPGA) Setup Flow (Vivado 2015.4)
Debian Linux on Zynq (Xilinx ARM-SoC FPGA) Setup Flow (Vivado 2015.4)Debian Linux on Zynq (Xilinx ARM-SoC FPGA) Setup Flow (Vivado 2015.4)
Debian Linux on Zynq (Xilinx ARM-SoC FPGA) Setup Flow (Vivado 2015.4)
 

Semelhante a PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)

システムパフォーマンス勉強会#8
システムパフォーマンス勉強会#8システムパフォーマンス勉強会#8
システムパフォーマンス勉強会#8shingo suzuki
 
2021 03-09-ac ri-nngen
2021 03-09-ac ri-nngen2021 03-09-ac ri-nngen
2021 03-09-ac ri-nngen直久 住川
 
kagamicomput201813
kagamicomput201813kagamicomput201813
kagamicomput201813swkagami
 
seccamp2012 チューター発表
seccamp2012 チューター発表seccamp2012 チューター発表
seccamp2012 チューター発表Hirotaka Kawata
 
ACRi HLSチャレンジ 高速化テクニック紹介
ACRi HLSチャレンジ 高速化テクニック紹介ACRi HLSチャレンジ 高速化テクニック紹介
ACRi HLSチャレンジ 高速化テクニック紹介Jun Ando
 
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23Masashi Shibata
 
MemoryPlus Workshop
MemoryPlus WorkshopMemoryPlus Workshop
MemoryPlus WorkshopHitoshi Sato
 
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)Ryuuta Tsunashima
 
C base design methodology with s dx and xilinx ml
C base design methodology with s dx and xilinx ml C base design methodology with s dx and xilinx ml
C base design methodology with s dx and xilinx ml ssuser3a4b8c
 
なにわテック20180127
なにわテック20180127なにわテック20180127
なにわテック20180127Natsutani Minoru
 
kagamicomput201814
kagamicomput201814kagamicomput201814
kagamicomput201814swkagami
 
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会Hitoshi Sato
 
ソフトウェア志向の組込みシステム協調設計環境
ソフトウェア志向の組込みシステム協調設計環境ソフトウェア志向の組込みシステム協調設計環境
ソフトウェア志向の組込みシステム協調設計環境Hideki Takase
 
Polyphony の行く末(2018/3/3)
Polyphony の行く末(2018/3/3)Polyphony の行く末(2018/3/3)
Polyphony の行く末(2018/3/3)ryos36
 
不揮発メモリとOS研究にまつわる何か
不揮発メモリとOS研究にまつわる何か不揮発メモリとOS研究にまつわる何か
不揮発メモリとOS研究にまつわる何かRyousei Takano
 
Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Hokkaido.cap#1 Wiresharkの使い方(基礎編)Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Hokkaido.cap#1 Wiresharkの使い方(基礎編)Panda Yamaki
 
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタックONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタックKentaro Ebisawa
 
SORACOM Technology Camp 2018 アドバンストラック4 | スモールスタートの次の一手は?成長できるIoTシステムの実例と回避した...
SORACOM Technology Camp 2018 アドバンストラック4 | スモールスタートの次の一手は?成長できるIoTシステムの実例と回避した...SORACOM Technology Camp 2018 アドバンストラック4 | スモールスタートの次の一手は?成長できるIoTシステムの実例と回避した...
SORACOM Technology Camp 2018 アドバンストラック4 | スモールスタートの次の一手は?成長できるIoTシステムの実例と回避した...SORACOM,INC
 
Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)Hiroki Nakahara
 
kagami_comput2016_14
kagami_comput2016_14kagami_comput2016_14
kagami_comput2016_14swkagami
 

Semelhante a PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日) (20)

システムパフォーマンス勉強会#8
システムパフォーマンス勉強会#8システムパフォーマンス勉強会#8
システムパフォーマンス勉強会#8
 
2021 03-09-ac ri-nngen
2021 03-09-ac ri-nngen2021 03-09-ac ri-nngen
2021 03-09-ac ri-nngen
 
kagamicomput201813
kagamicomput201813kagamicomput201813
kagamicomput201813
 
seccamp2012 チューター発表
seccamp2012 チューター発表seccamp2012 チューター発表
seccamp2012 チューター発表
 
ACRi HLSチャレンジ 高速化テクニック紹介
ACRi HLSチャレンジ 高速化テクニック紹介ACRi HLSチャレンジ 高速化テクニック紹介
ACRi HLSチャレンジ 高速化テクニック紹介
 
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
 
MemoryPlus Workshop
MemoryPlus WorkshopMemoryPlus Workshop
MemoryPlus Workshop
 
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
 
C base design methodology with s dx and xilinx ml
C base design methodology with s dx and xilinx ml C base design methodology with s dx and xilinx ml
C base design methodology with s dx and xilinx ml
 
なにわテック20180127
なにわテック20180127なにわテック20180127
なにわテック20180127
 
kagamicomput201814
kagamicomput201814kagamicomput201814
kagamicomput201814
 
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
 
ソフトウェア志向の組込みシステム協調設計環境
ソフトウェア志向の組込みシステム協調設計環境ソフトウェア志向の組込みシステム協調設計環境
ソフトウェア志向の組込みシステム協調設計環境
 
Polyphony の行く末(2018/3/3)
Polyphony の行く末(2018/3/3)Polyphony の行く末(2018/3/3)
Polyphony の行く末(2018/3/3)
 
不揮発メモリとOS研究にまつわる何か
不揮発メモリとOS研究にまつわる何か不揮発メモリとOS研究にまつわる何か
不揮発メモリとOS研究にまつわる何か
 
Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Hokkaido.cap#1 Wiresharkの使い方(基礎編)Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Hokkaido.cap#1 Wiresharkの使い方(基礎編)
 
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタックONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
 
SORACOM Technology Camp 2018 アドバンストラック4 | スモールスタートの次の一手は?成長できるIoTシステムの実例と回避した...
SORACOM Technology Camp 2018 アドバンストラック4 | スモールスタートの次の一手は?成長できるIoTシステムの実例と回避した...SORACOM Technology Camp 2018 アドバンストラック4 | スモールスタートの次の一手は?成長できるIoTシステムの実例と回避した...
SORACOM Technology Camp 2018 アドバンストラック4 | スモールスタートの次の一手は?成長できるIoTシステムの実例と回避した...
 
Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)
 
kagami_comput2016_14
kagami_comput2016_14kagami_comput2016_14
kagami_comput2016_14
 

Mais de Shinya Takamaeda-Y

DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモDNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモShinya Takamaeda-Y
 
ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発
ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発
ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発Shinya Takamaeda-Y
 
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)Shinya Takamaeda-Y
 
Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...
Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...
Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...Shinya Takamaeda-Y
 
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)Shinya Takamaeda-Y
 
ゆるふわコンピュータ (IPSJ-ONE2017)
ゆるふわコンピュータ (IPSJ-ONE2017)ゆるふわコンピュータ (IPSJ-ONE2017)
ゆるふわコンピュータ (IPSJ-ONE2017)Shinya Takamaeda-Y
 
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...Shinya Takamaeda-Y
 
A High Performance Heterogeneous FPGA-based Accelerator with PyCoRAM (Runner ...
A High Performance Heterogeneous FPGA-based Accelerator with PyCoRAM (Runner ...A High Performance Heterogeneous FPGA-based Accelerator with PyCoRAM (Runner ...
A High Performance Heterogeneous FPGA-based Accelerator with PyCoRAM (Runner ...Shinya Takamaeda-Y
 
PyCoRAM: Yet Another Implementation of CoRAM Memory Architecture for Modern F...
PyCoRAM: Yet Another Implementation of CoRAM Memory Architecture for Modern F...PyCoRAM: Yet Another Implementation of CoRAM Memory Architecture for Modern F...
PyCoRAM: Yet Another Implementation of CoRAM Memory Architecture for Modern F...Shinya Takamaeda-Y
 
むかし名言集bot作りました!
むかし名言集bot作りました!むかし名言集bot作りました!
むかし名言集bot作りました!Shinya Takamaeda-Y
 
APGAS言語X10を用いたオンチップネットワークシミュレーションの並列化
APGAS言語X10を用いたオンチップネットワークシミュレーションの並列化APGAS言語X10を用いたオンチップネットワークシミュレーションの並列化
APGAS言語X10を用いたオンチップネットワークシミュレーションの並列化Shinya Takamaeda-Y
 
Network Performance of Multifunction On-chip Router Architectures (IEICE-CPSY...
Network Performance of Multifunction On-chip Router Architectures (IEICE-CPSY...Network Performance of Multifunction On-chip Router Architectures (IEICE-CPSY...
Network Performance of Multifunction On-chip Router Architectures (IEICE-CPSY...Shinya Takamaeda-Y
 

Mais de Shinya Takamaeda-Y (12)

DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモDNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
 
ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発
ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発
ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発
 
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
 
Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...
Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...
Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...
 
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
 
ゆるふわコンピュータ (IPSJ-ONE2017)
ゆるふわコンピュータ (IPSJ-ONE2017)ゆるふわコンピュータ (IPSJ-ONE2017)
ゆるふわコンピュータ (IPSJ-ONE2017)
 
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...
 
A High Performance Heterogeneous FPGA-based Accelerator with PyCoRAM (Runner ...
A High Performance Heterogeneous FPGA-based Accelerator with PyCoRAM (Runner ...A High Performance Heterogeneous FPGA-based Accelerator with PyCoRAM (Runner ...
A High Performance Heterogeneous FPGA-based Accelerator with PyCoRAM (Runner ...
 
PyCoRAM: Yet Another Implementation of CoRAM Memory Architecture for Modern F...
PyCoRAM: Yet Another Implementation of CoRAM Memory Architecture for Modern F...PyCoRAM: Yet Another Implementation of CoRAM Memory Architecture for Modern F...
PyCoRAM: Yet Another Implementation of CoRAM Memory Architecture for Modern F...
 
むかし名言集bot作りました!
むかし名言集bot作りました!むかし名言集bot作りました!
むかし名言集bot作りました!
 
APGAS言語X10を用いたオンチップネットワークシミュレーションの並列化
APGAS言語X10を用いたオンチップネットワークシミュレーションの並列化APGAS言語X10を用いたオンチップネットワークシミュレーションの並列化
APGAS言語X10を用いたオンチップネットワークシミュレーションの並列化
 
Network Performance of Multifunction On-chip Router Architectures (IEICE-CPSY...
Network Performance of Multifunction On-chip Router Architectures (IEICE-CPSY...Network Performance of Multifunction On-chip Router Architectures (IEICE-CPSY...
Network Performance of Multifunction On-chip Router Architectures (IEICE-CPSY...
 

Último

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 

Último (8)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 

PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)