SlideShare a Scribd company logo
Polyphony
Python ではじめる FPGA
鈴木
2017/9/9
アジェンダ
• FPGA ってなに?
• Polyphony 入門
• 使ってみよう Polyphony
– Polyphony 応用例(RISC-V)
– 取り組み1(CNN)
– 取り組み2(CV)
• 時間があれば チュートリアル
• まとめ
自己紹介
• @ryos36
• ハッシュタグ
#polyphony
著者
です
FPGA てなに?
FPGA を使ってみよう!!
FPGA でハードウェアに自由度を!
http://www.ni.com より
Wikipedia より
FPGA=
Field-Programmable Gate Array
使用例(OLED)
OLED もライブラリが
あらかじめある
Jupyter からコントロール
使用例(キーパッド)
FPGA と WiFi 接続例
ブレッドボードで
プロトタイプの開発
FPGA の特徴
得意なこと
• 並列計算
• レイテンシを守ること
• ビット計算
• 柔軟性
不得意なこと
• 高速処理?
FPGA vs Raspberry PI
• FPGA • Raspberry PI
ARM SoCARM SoC FPGA
u-boot & Linuxu-boot & Linux
Linux Driver Linux Driver
Python Python
やりたいこと やりたいこと
値段とか消費電力とか入手性とかを無視して、ソフト的にざっくりと比較
コミュニティの大きさ(情報の入りやすさ)もだいぶ違うけど、、、
HDL で何か実装してみよう!?
• 使う言語
– VHDL
– Verilog HDL
LED チカチカ=Lチカ
ハードウェアの
Hello World 的存在
FPGAでハードウェアを自由に組む
module fulladder
(
input x,
input y,
input cin,
output A,
output cout
);
assign {cout,A} = cin + y + x;
endmodule
ハードウェア記述言語
VHDL を使った問題
signal x: std_logic
…
process (clk)
variable y : std_logic;
begin
if clk’event and clk = 1 then
y := x + 1
x <= x + 1
end if;
end process;
Q: x はいま 3 とします。
左辺にある y と x は
いくつになるでしょう?
VHDL を使った問題
signal x: std_logic
…
process (clk)
variable y : std_logic;
begin
if clk’event and clk = 1 then
y := x + 1
x <= x + 1
end if;
end process;
A:
y は 4、
x は 3のまま。
次のクロックで 4。
何を意味してい
るのか?
FPGA でパイプライン処理
処理 処理 処理 処理 処理
処理を細分化することで高速化が可能
x + 1
x
x + 1
x
頭の中でオーバラップする時間を
考えながら設計する!!
何を意味してい
るのか?
FPGA の設計 = 頭の中にこんなのが
思い浮かぶ必要あり
今でも検証には波形を見る
ここまでのまとめ
• FPGA なんだか楽しそう
• FPGA ちょっと難しそう
Polyphony入門
Python で FPGA
FPGA つかってみたいけど
Polyphonyを使おう!!
• Polyphony:Python でハードウェア設計!
What is Polyphony?(1/3)
Python for Hardware Design
Python Polyphony
Verilog HDL
(synthesizable)
What is Polyphony?(2/3)
Python Polyphony
Verilog HDL
(synthesizable)
● Bring higher level of abstraction to your design
● Allow designers to focus on developing the algorithm
● Reduce costs for program maintenance
● Open Source (https://github.com/ktok07b6/polyphony)
Polyphony はPythonコードの
サブセットを合成可能
Python
Polyphony
(is a subset of Python)
Function
Class
List(Fixed
size)
Tuple
For/While
If/Else
...
String
Dictionary
Set
Builtin funcs
...
What is Polyphony?(3/3)
まずは Lチカ、、、
• こんな感じでできます
from polyphony import testbench, module, is_worker_running
from polyphony.io import Bit
@module
class Blink:
def __init__(self):
self.led = Bit(0)
self.append_worker(self.main, led)
def main(self):
led = 1
while is_worker_running():
self.led.wr(led)
led = ~led
self._wait(10000000)
def _wait(self, interval):
for i in range(interval):
pass
blink = Blink()
Fibonacci Number(フィボナッチ数列)
#from polyphony import testbench
def fib(n):
if n <= 0: return 0
if n == 1: return 1
r0 = 0
r1 = 1
for i in range(n-1):
prev_r1 = r1
r1 = r0 + r1
r0 = prev_r1
return r1
#@testbench
def test():
expect = [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610]
for i in range(len(expect)):
result = fib(i)
assert expect[i] == result
print(i, "=>", result)
test()
ここまでのまとめ
• Polyphony で FPGA が簡単に使えそう
• Polyphony で何ができる?
• どこまでできる?
使ってみよう Polyphony
• 豊富なライブラリ
これから豊富になる(だろう)
Polyphony ライブラリ
• bitonic_sort : バイトニックソートのサンプル
• chenidct : 2次元IDCT(逆コサイン変換)
• adpcm : ADPCMのエンコーダ・デコーダ
• UART: printf デバッグ的なことが出来る
• SPI + A/D: センサーとの連携
ちょっと脱線
@polyphony.pure
def bitonic_indices(size, blocks, offset):
for i in range(0, size):
if (i % (offset << 1)) >= offset:
continue
direction = ASCENDING if (i // blocks) % 2 == 0 else DESCENDING
ii = i + offset
yield i, ii, direction
• bitonic_sort : バイトニックソートのサンプル
特別なデコレータ
Python により“動的に”回路図を自動生成
Polyphony 応用例
• RISC-V
• CNN
• CV(コンピュータ・ビジョン)
RISC-V
RISC-V:大手企業も注目する オープンな CPU の規格。
すでに FPGA 上でも動いて、Linux も動作する模様。
RISC-V on Polyphony
パイプラインのシミュレート
CNN
Python で学ぶディープラーニングの本
CV(コンピュータ・ビジョン)
CV と呼ぶには程遠い。
OpenCV との連携は“できません”。
あしからず。
エッジ検出
チュートリアル
• Hello World
• Mul and Add
• 実機!!
Hello World 1
• エディターで Hello World を写しましょう(写経)。
from polyphony import testbench
def hello():
print("Hello World.")
@testbench
def test():
hello()
test()
Hello World 2
• Python3 で実行
– 必ず Python3 で実行するようにします
> python3 hello.py
Hello World.
Hello World 3
• Polyphony でコンパイル
– polyphony でコンパイルします。
> polyphony hello.py
> ls *.v
hello.v polyphony_out.v test.v
verilog のファイル(.v のファイル) が生成されます。
Hello World 4
• iverilog でコンパイル&実行
> iverilog -o hello polyphony_out.v test.v
[test-0.3.0] Persimmon:Tutorial_0> ls hello
hello*
> ./hello
0:
Hello World.
Hello World.
Hello World.
Hello World.
150:finish
Hello World
Hello World が5回実行されるのが気になる方は
Mul and Add1
• エディターで Hello World を写しましょう(写経)。
from polyphony import testbench
def mul_add(a, b, c, d):
return a * b + c * d
@testbench
def test():
assert 17 == mul_add(1, 2, 3, 4)
assert 62 == mul_add(4, 5, 6, 7)
test()
Mul and Add 2
• Python3 で実行
– 必ず Python3 で実行するようにします
> python3 mul_add.py
Traceback (most recent call last):
File "mul_add.py", line 11, in <module>
test()
File "/lib/... .../polyphony/__init__.py", line 30, in _testbench_decorator
func()
File "mul_add.py", line 8, in test
assert 17 == mul_add(1, 2, 3, 4)
AssertionError
AssertionError です。17 ではなく 14 に変えて再度チャレンジ
Mul and Add 3
• シミュレータで実行
> ../bin/simu.py mul_add.py
0:mul_add_0_in_a= x, mul_add_0_in_b= x, mul_add_0_in_c= x,
mul_add_0_in_d= x, mul_add_0_out_0= x
10:mul_add_0_in_a= 0, mul_add_0_in_b= 0, mul_add_0_in_c= 0,
mul_add_0_in_d= 0, mul_add_0_out_0= 0
110:mul_add_0_in_a= 1, mul_add_0_in_b= 2, mul_add_0_in_c= 3,
mul_add_0_in_d= 4, mul_add_0_out_0= 0
130:mul_add_0_in_a= 1, mul_add_0_in_b= 2, mul_add_0_in_c= 3,
mul_add_0_in_d= 4, mul_add_0_out_0= 14
160:mul_add_0_in_a= 4, mul_add_0_in_b= 5, mul_add_0_in_c= 6,
mul_add_0_in_d= 7, mul_add_0_out_0= 14
180:mul_add_0_in_a= 4, mul_add_0_in_b= 5, mul_add_0_in_c= 6,
mul_add_0_in_d= 7, mul_add_0_out_0= 62
220:finish
実機では?
• 合成して
• IO 配線して
• 実装して
• ソフトも書いて
– 起動するのにソフトとか必要かも
Python でフィルタ処理
SPI SPI
I/F
SPI
I/F
フレームワーク
#from polyphony import testbench
def filter(spi_in, spi_out):
....
....
SPI
Python で書いたフィルターが
FPGA 上で動く!!
高位合成ツール:
開発キット
フレームワーク
Murata
(LoRa対応モジュール
SX1276 + Cortex-M0)
Kiss4
(Zynq = ARM + FPGA)
OR
Xilinx のツールへの対応もしました
ARM プロセッサ Polyphony の
Lチカ・モジュール
おまけ:ディープラーニング
ARM
Cortex-M4
モデルをぎゅっと
圧縮
3 FPGA
Polyphony の今後
• HPC
– めざせ京 対応!!
• ステレオビジョン
– 視差画像
• Bayes
– メールの選別
• 数値計算
– 精度保証付き?
まとめ
• FPGA つかってみよう!!
• Polyphony を使えば
Python のコードを HDL に!!
• Happy Python Life!!
これからも Polyphony をよろしく!!
ご清聴ありがとうございました

More Related Content

What's hot

Moving computation to the data (1)
Moving computation to the data (1)Moving computation to the data (1)
Moving computation to the data (1)Kazunori Sato
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
 
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
 
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
2値化CNN on FPGAでGPUとガチンコバトル(公開版)2値化CNN on FPGAでGPUとガチンコバトル(公開版)
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
Hiroki Nakahara
 
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
MITSUNARI Shigeo
 
研究効率化Tips Ver.2
研究効率化Tips Ver.2研究効率化Tips Ver.2
研究効率化Tips Ver.2
cvpaper. challenge
 
TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?
Mr. Vengineer
 
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
Shinya Takamaeda-Y
 
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Preferred Networks
 
Pythonが動く仕組み(の概要)
Pythonが動く仕組み(の概要)Pythonが動く仕組み(の概要)
Pythonが動く仕組み(の概要)
Yoshiaki Shibutani
 
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpRSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
Fixstars Corporation
 
ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AIChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AI
Shota Imai
 
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみようPythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
Shinya Takamaeda-Y
 
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門
ryos36
 
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
Preferred Networks
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
 
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
Masashi Shibata
 
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門
Shiqiao Du
 

What's hot (20)

Moving computation to the data (1)
Moving computation to the data (1)Moving computation to the data (1)
Moving computation to the data (1)
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
 
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
 
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
2値化CNN on FPGAでGPUとガチンコバトル(公開版)2値化CNN on FPGAでGPUとガチンコバトル(公開版)
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
 
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
 
研究効率化Tips Ver.2
研究効率化Tips Ver.2研究効率化Tips Ver.2
研究効率化Tips Ver.2
 
TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?
 
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
 
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
 
Pythonが動く仕組み(の概要)
Pythonが動く仕組み(の概要)Pythonが動く仕組み(の概要)
Pythonが動く仕組み(の概要)
 
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpRSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
 
ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AIChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AI
 
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみようPythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
 
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門
 
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
 
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門
 

Viewers also liked

Cortex-M0プロセッサから自作して Lチカをやってみた
Cortex-M0プロセッサから自作してLチカをやってみたCortex-M0プロセッサから自作してLチカをやってみた
Cortex-M0プロセッサから自作して Lチカをやってみた
Junichi Akita
 
電子回路の民主化とその実践
電子回路の民主化とその実践電子回路の民主化とその実践
電子回路の民主化とその実践
Junichi Akita
 
Beatroboでのハードウェアプロトタイピング
BeatroboでのハードウェアプロトタイピングBeatroboでのハードウェアプロトタイピング
Beatroboでのハードウェアプロトタイピング
Hideyuki TAKEI
 
IkaLog: Data Collector for Splatoon and Machine Learning
IkaLog: Data Collector for Splatoon and Machine LearningIkaLog: Data Collector for Splatoon and Machine Learning
IkaLog: Data Collector for Splatoon and Machine Learning
Takeshi HASEGAWA
 
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
Kentaro Sano
 
cocos2d-x で PlugAir を 使えるようにしてみた
cocos2d-x で PlugAir を 使えるようにしてみたcocos2d-x で PlugAir を 使えるようにしてみた
cocos2d-x で PlugAir を 使えるようにしてみた
Hideyuki TAKEI
 
IkaLog: Data Collector for Splatoon and Machine Learning (Jan 2017 @ Softbank)
IkaLog: Data Collector for Splatoon and Machine Learning (Jan 2017 @ Softbank)IkaLog: Data Collector for Splatoon and Machine Learning (Jan 2017 @ Softbank)
IkaLog: Data Collector for Splatoon and Machine Learning (Jan 2017 @ Softbank)
Takeshi HASEGAWA
 
Golang, make and robotics #gocon
Golang, make and robotics #goconGolang, make and robotics #gocon
Golang, make and robotics #gocon
Hideyuki TAKEI
 
2017年のFPGA Community活動について
2017年のFPGA Community活動について2017年のFPGA Community活動について
2017年のFPGA Community活動について
Mr. Vengineer
 
ゆるふわコンピュータ (IPSJ-ONE2017)
ゆるふわコンピュータ (IPSJ-ONE2017)ゆるふわコンピュータ (IPSJ-ONE2017)
ゆるふわコンピュータ (IPSJ-ONE2017)
Shinya Takamaeda-Y
 
IkaLog20170316pynq_dist
IkaLog20170316pynq_distIkaLog20170316pynq_dist
IkaLog20170316pynq_dist
Takeshi HASEGAWA
 
集積回路が真の道具になるために
集積回路が真の道具になるために集積回路が真の道具になるために
集積回路が真の道具になるために
Junichi Akita
 
Polyphony の並列化
Polyphony の並列化Polyphony の並列化
Polyphony の並列化
ryos36
 
FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向
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
 
FPGAのトレンドをまとめてみた
FPGAのトレンドをまとめてみたFPGAのトレンドをまとめてみた
FPGAのトレンドをまとめてみたTakefumi MIYOSHI
 
TensorFlow XLA とハードウェア
TensorFlow XLA とハードウェアTensorFlow XLA とハードウェア
TensorFlow XLA とハードウェア
Mr. Vengineer
 
Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)
Hiroki Nakahara
 

Viewers also liked (20)

Cortex-M0プロセッサから自作して Lチカをやってみた
Cortex-M0プロセッサから自作してLチカをやってみたCortex-M0プロセッサから自作してLチカをやってみた
Cortex-M0プロセッサから自作して Lチカをやってみた
 
電子回路の民主化とその実践
電子回路の民主化とその実践電子回路の民主化とその実践
電子回路の民主化とその実践
 
Beatroboでのハードウェアプロトタイピング
BeatroboでのハードウェアプロトタイピングBeatroboでのハードウェアプロトタイピング
Beatroboでのハードウェアプロトタイピング
 
IkaLog: Data Collector for Splatoon and Machine Learning
IkaLog: Data Collector for Splatoon and Machine LearningIkaLog: Data Collector for Splatoon and Machine Learning
IkaLog: Data Collector for Splatoon and Machine Learning
 
Klabの梅雨対策
Klabの梅雨対策Klabの梅雨対策
Klabの梅雨対策
 
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
 
cocos2d-x で PlugAir を 使えるようにしてみた
cocos2d-x で PlugAir を 使えるようにしてみたcocos2d-x で PlugAir を 使えるようにしてみた
cocos2d-x で PlugAir を 使えるようにしてみた
 
IkaLog: Data Collector for Splatoon and Machine Learning (Jan 2017 @ Softbank)
IkaLog: Data Collector for Splatoon and Machine Learning (Jan 2017 @ Softbank)IkaLog: Data Collector for Splatoon and Machine Learning (Jan 2017 @ Softbank)
IkaLog: Data Collector for Splatoon and Machine Learning (Jan 2017 @ Softbank)
 
Golang, make and robotics #gocon
Golang, make and robotics #goconGolang, make and robotics #gocon
Golang, make and robotics #gocon
 
2017年のFPGA Community活動について
2017年のFPGA Community活動について2017年のFPGA Community活動について
2017年のFPGA Community活動について
 
ゆるふわコンピュータ (IPSJ-ONE2017)
ゆるふわコンピュータ (IPSJ-ONE2017)ゆるふわコンピュータ (IPSJ-ONE2017)
ゆるふわコンピュータ (IPSJ-ONE2017)
 
IkaLog20170316pynq_dist
IkaLog20170316pynq_distIkaLog20170316pynq_dist
IkaLog20170316pynq_dist
 
集積回路が真の道具になるために
集積回路が真の道具になるために集積回路が真の道具になるために
集積回路が真の道具になるために
 
Polyphony の並列化
Polyphony の並列化Polyphony の並列化
Polyphony の並列化
 
FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向
 
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
 
Gpu vs fpga
Gpu vs fpgaGpu vs fpga
Gpu vs fpga
 
FPGAのトレンドをまとめてみた
FPGAのトレンドをまとめてみたFPGAのトレンドをまとめてみた
FPGAのトレンドをまとめてみた
 
TensorFlow XLA とハードウェア
TensorFlow XLA とハードウェアTensorFlow XLA とハードウェア
TensorFlow XLA とハードウェア
 
Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)
 

Similar to Polyphony: Python ではじめる FPGA

Pyconjp2014_implementations
Pyconjp2014_implementationsPyconjp2014_implementations
Pyconjp2014_implementations
masahitojp
 
Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
Tomoya Nakayama
 
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
Takanori Suzuki
 
Python physicalcomputing
Python physicalcomputingPython physicalcomputing
Python physicalcomputing
Noboru Irieda
 
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Developers Summit
 
ひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指すひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指す
AromaBlack
 
Polyphony IO まとめ
Polyphony IO まとめPolyphony IO まとめ
Polyphony IO まとめ
ryos36
 
Introduction to cython
Introduction to cythonIntroduction to cython
Introduction to cython
Atsuo Ishimoto
 
Pythonによる非同期プログラミング入門
Pythonによる非同期プログラミング入門Pythonによる非同期プログラミング入門
Pythonによる非同期プログラミング入門
Hironori Sekine
 
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
Takanori Suzuki
 
C#勉強会
C#勉強会C#勉強会
C#勉強会
hakugakucafe
 
Using PyFoam as library(第25回オープンCAE勉強会@関西)
Using PyFoam as library(第25回オープンCAE勉強会@関西)Using PyFoam as library(第25回オープンCAE勉強会@関西)
Using PyFoam as library(第25回オープンCAE勉強会@関西)TatsuyaKatayama
 
FlexUnit4とMockitoFlex
FlexUnit4とMockitoFlexFlexUnit4とMockitoFlex
FlexUnit4とMockitoFlex
Yasuhiro Morikawa
 
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnitGetting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnitAtsuhiro Kubo
 
20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそ20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそHiromu Shioya
 
Cython intro prelerease
Cython intro prelereaseCython intro prelerease
Cython intro prelerease
Shiqiao Du
 
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
Masaki Muranaka
 
おまえらこのライブラリ使ってないの? m9 (2013-07)
おまえらこのライブラリ使ってないの? m9	(2013-07)おまえらこのライブラリ使ってないの? m9	(2013-07)
おまえらこのライブラリ使ってないの? m9 (2013-07)Toru Furukawa
 

Similar to Polyphony: Python ではじめる FPGA (20)

Pyconjp2014_implementations
Pyconjp2014_implementationsPyconjp2014_implementations
Pyconjp2014_implementations
 
Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
 
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
 
Python physicalcomputing
Python physicalcomputingPython physicalcomputing
Python physicalcomputing
 
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
 
ひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指すひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指す
 
Polyphony IO まとめ
Polyphony IO まとめPolyphony IO まとめ
Polyphony IO まとめ
 
Introduction to cython
Introduction to cythonIntroduction to cython
Introduction to cython
 
Pythonによる非同期プログラミング入門
Pythonによる非同期プログラミング入門Pythonによる非同期プログラミング入門
Pythonによる非同期プログラミング入門
 
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
 
C#勉強会
C#勉強会C#勉強会
C#勉強会
 
Using PyFoam as library(第25回オープンCAE勉強会@関西)
Using PyFoam as library(第25回オープンCAE勉強会@関西)Using PyFoam as library(第25回オープンCAE勉強会@関西)
Using PyFoam as library(第25回オープンCAE勉強会@関西)
 
Subprocess no susume
Subprocess no susumeSubprocess no susume
Subprocess no susume
 
FlexUnit4とMockitoFlex
FlexUnit4とMockitoFlexFlexUnit4とMockitoFlex
FlexUnit4とMockitoFlex
 
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnitGetting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnit
 
20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそ20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそ
 
Symfony tdd
Symfony tddSymfony tdd
Symfony tdd
 
Cython intro prelerease
Cython intro prelereaseCython intro prelerease
Cython intro prelerease
 
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
 
おまえらこのライブラリ使ってないの? m9 (2013-07)
おまえらこのライブラリ使ってないの? m9	(2013-07)おまえらこのライブラリ使ってないの? m9	(2013-07)
おまえらこのライブラリ使ってないの? m9 (2013-07)
 

More from ryos36

Pycairo を使ってみる その1
Pycairo を使ってみる その1Pycairo を使ってみる その1
Pycairo を使ってみる その1
ryos36
 
ストーリーとは
ストーリーとはストーリーとは
ストーリーとは
ryos36
 
CNN でテニス選手の動きを解析する
CNN でテニス選手の動きを解析するCNN でテニス選手の動きを解析する
CNN でテニス選手の動きを解析する
ryos36
 
Polyphony の行く末(2018/3/3)
Polyphony の行く末(2018/3/3)Polyphony の行く末(2018/3/3)
Polyphony の行く末(2018/3/3)
ryos36
 
Polyphony 新機能ツアー
Polyphony 新機能ツアーPolyphony 新機能ツアー
Polyphony 新機能ツアー
ryos36
 
Stellaris を使った組み込みアプリ開発ガイド
Stellaris を使った組み込みアプリ開発ガイドStellaris を使った組み込みアプリ開発ガイド
Stellaris を使った組み込みアプリ開発ガイド
ryos36
 
数値計算のための Python + FPGA
数値計算のための Python + FPGA数値計算のための Python + FPGA
数値計算のための Python + FPGA
ryos36
 
PYNQ 祭り: Pmod のプログラミング
PYNQ 祭り: Pmod のプログラミングPYNQ 祭り: Pmod のプログラミング
PYNQ 祭り: Pmod のプログラミング
ryos36
 
SDSoC でストリーム
SDSoC でストリームSDSoC でストリーム
SDSoC でストリーム
ryos36
 
Analog Devices の IP コアを使う
Analog Devices の IP コアを使うAnalog Devices の IP コアを使う
Analog Devices の IP コアを使う
ryos36
 
SDSoC と Vivado
SDSoC と VivadoSDSoC と Vivado
SDSoC と Vivado
ryos36
 
高速化のポイント
高速化のポイント高速化のポイント
高速化のポイント
ryos36
 
20周遅れ
20周遅れ20周遅れ
20周遅れ
ryos36
 
90分 Scheme to C(勝手に抄訳版)
90分 Scheme to C(勝手に抄訳版)90分 Scheme to C(勝手に抄訳版)
90分 Scheme to C(勝手に抄訳版)
ryos36
 
並列計算への道 2015年版
並列計算への道 2015年版並列計算への道 2015年版
並列計算への道 2015年版
ryos36
 
NiosII と RTOS について
NiosII と RTOS についてNiosII と RTOS について
NiosII と RTOS について
ryos36
 
Synthesijer で作るFORTH仮想マシン
Synthesijer で作るFORTH仮想マシンSynthesijer で作るFORTH仮想マシン
Synthesijer で作るFORTH仮想マシン
ryos36
 

More from ryos36 (17)

Pycairo を使ってみる その1
Pycairo を使ってみる その1Pycairo を使ってみる その1
Pycairo を使ってみる その1
 
ストーリーとは
ストーリーとはストーリーとは
ストーリーとは
 
CNN でテニス選手の動きを解析する
CNN でテニス選手の動きを解析するCNN でテニス選手の動きを解析する
CNN でテニス選手の動きを解析する
 
Polyphony の行く末(2018/3/3)
Polyphony の行く末(2018/3/3)Polyphony の行く末(2018/3/3)
Polyphony の行く末(2018/3/3)
 
Polyphony 新機能ツアー
Polyphony 新機能ツアーPolyphony 新機能ツアー
Polyphony 新機能ツアー
 
Stellaris を使った組み込みアプリ開発ガイド
Stellaris を使った組み込みアプリ開発ガイドStellaris を使った組み込みアプリ開発ガイド
Stellaris を使った組み込みアプリ開発ガイド
 
数値計算のための Python + FPGA
数値計算のための Python + FPGA数値計算のための Python + FPGA
数値計算のための Python + FPGA
 
PYNQ 祭り: Pmod のプログラミング
PYNQ 祭り: Pmod のプログラミングPYNQ 祭り: Pmod のプログラミング
PYNQ 祭り: Pmod のプログラミング
 
SDSoC でストリーム
SDSoC でストリームSDSoC でストリーム
SDSoC でストリーム
 
Analog Devices の IP コアを使う
Analog Devices の IP コアを使うAnalog Devices の IP コアを使う
Analog Devices の IP コアを使う
 
SDSoC と Vivado
SDSoC と VivadoSDSoC と Vivado
SDSoC と Vivado
 
高速化のポイント
高速化のポイント高速化のポイント
高速化のポイント
 
20周遅れ
20周遅れ20周遅れ
20周遅れ
 
90分 Scheme to C(勝手に抄訳版)
90分 Scheme to C(勝手に抄訳版)90分 Scheme to C(勝手に抄訳版)
90分 Scheme to C(勝手に抄訳版)
 
並列計算への道 2015年版
並列計算への道 2015年版並列計算への道 2015年版
並列計算への道 2015年版
 
NiosII と RTOS について
NiosII と RTOS についてNiosII と RTOS について
NiosII と RTOS について
 
Synthesijer で作るFORTH仮想マシン
Synthesijer で作るFORTH仮想マシンSynthesijer で作るFORTH仮想マシン
Synthesijer で作るFORTH仮想マシン
 

Recently uploaded

FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
fisuda
 
NIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしようNIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしよう
You&I
 
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
You&I
 
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
ooishi1
 
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdfCO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
yamamotominami
 
Grokking Simplicity探訪
Grokking Simplicity探訪Grokking Simplicity探訪
Grokking Simplicity探訪
Yoshitaka Kawashima
 

Recently uploaded (6)

FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
 
NIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしようNIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしよう
 
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
 
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
 
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdfCO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
 
Grokking Simplicity探訪
Grokking Simplicity探訪Grokking Simplicity探訪
Grokking Simplicity探訪
 

Polyphony: Python ではじめる FPGA