SlideShare a Scribd company logo
SDSoC でストリーム
まだ俺は本気出してない
(有)シンビー
SDSoC のどこを学びたいと思いますか?
• LLVM を含めた SDSoC の仕組み
• 高位合成としての SDSoC
• SDSoC の使い方
– 画像処理?
– DeepLearning?
• SDSoC を使ったビジネス展開
SDSoC のどこを学びたいと思いますか?
• LLVM を含めた SDSoC の仕組み
• 高位合成としての SDSoC
• SDSoC の使い方
– 画像処理?
– DeepLearning?
• SDSoC を使ったビジネス展開
他の人が話す?
ここを知りたい人は
自分で頑張る!!
SDSoC のどこを学びたいと思いますか?
• LLVM を含めた SDSoC の仕組み
• 高位合成としての SDSoC
• SDSoC の使い方
– 画像処理?
– DeepLearning?
• SDSoC を使ったビジネス展開
Pragma の理解
Vivado HLS の理解
SDSoC のどこを学びたいと思いますか?
• LLVM を含めた SDSoC の仕組み
• 高位合成としての SDSoC
• SDSoC の使い方
– 画像処理?
– DeepLearning?
• SDSoC を使ったビジネス展開
Stream が使えると
ハッピー?(後述)
SDSoC のどこを学びたいと思いますか?
• LLVM を含めた SDSoC の仕組み
• 高位合成としての SDSoC
• SDSoC の使い方
– 画像処理?
– DeepLearning?
• SDSoC を使ったビジネス展開
お金の回し方?
おそらく、セミナーが違います。
ということで“やっと”本題
• LLVM を含めた SDSoC の仕組み
• 高位合成としての SDSoC
• SDSoC の使い方
– 画像処理?
– DeepLearning?
• SDSoC を使ったビジネス展開
ここに
フォーカス
本題の流れ
• AXISとVDMAの基礎知識
• Vivado HLS における AXIS の書き方
• SDSoC における AXIS の書き方
• SDSoC でプラットフォームをつくった(結果報
告)
画像処理でやりたいこと
フィルター処理が多い
AXI4 Stream を使うことが多いようだ
Vivado の IP カタログから引用。
AXIS という記述も。
どんな感じに使うか?
ここが AXI Stream
独自インタフェース
Xilinx の VDMA を使うとメモリーに
展開できる(その逆も可能)
S2MM:
AXIStream から
メモリ
MM2S:
AXIStream から
メモリ
HPポートへ
VDMA は Xilinx が提供する AXIS をつかった便利な IP コア
概念的にはこんな感じ
メモリ
VDMA
VDMA
Filter
Filter
変換用IP
変換用IP
AXI Stream
参考資料
• AMBA® AXI™ and ACE™ Protocol Specification
– IHI0022D
• AMBA® 4 AXI4-Stream Protocol
– IHI0051A
• AXI Video Direct Memory Access v6.2
– VDMA のIPコアについて書かれている(使い方)
• Vivado AXI Reference GUIDE(ug1037)
– VDMA の信号線の仕様についても書かれている
ARM の資料は ARM のウェブサイトに登録して入手
AXIS(AXI Stream)
• tvalid
• tready
• tdata
オプションをNoや0に
している
簡単な AXIS
• tvalid
• tready
• tdata
Stream だからアドレスはない
参考:AXI4 Lite
アドレスなどがある
TLAST と TUSER を有効に
AXIS の信号線
正確な意味付けを
するのは使用者
VDMA内の AXIS
VDMA : TLAST と TUSER に特別な意味付けがある。
VDMA の信号線詳細
TLAST はラインごと TUSER はスクリーンごと
AXIS(VDMA) と画像
USER:
スクリーン毎
VSYNC の代わり
LAST:
ライン毎
HSYNC の代わり
AXIS(VDMA) 対応の
IP コアを作るには?
• Vivado HLS で簡単に作れる
• じゃ SDSoC では?
Vivado HLS で AXIS
メモリ
ここをC/C++
で開発
VDMA
VDMA
Filter
変換用IP
変換用IP
出力I/F は
AXIS
入力I/F は
AXIS
Filter
Vivado HLS での例
出力I/F は
AXIS
入力I/F は
AXIS
ap_axis というのもある。
unsigned と signed の違い。
stream の s ではないInterface の
指定
参考資料
• UG902
– 「ハードウェア効率の良い C コード」より抜粋
template を用いた
複雑なコード!!!!
SDSoC での(画像)処理
回路図が出てこないので
ソフトウェア技術者にとってらくちん!!
単純にSDSoCを使うと
メモリ
SDSoCの
フィルタ
ここをC/C++
で開発
メモリアクセスが余計?
(便利な場合もある)
AXIS や VDMA と無縁な世界
メモリ
メモリ
さっきのと比較
VDMA
VDMA
Filter
Filter
変換用IP
変換用IP
SDSoCの
フィルタ
単純に作ると AXIS は用いられない
SDSoC で AXIS を使うモチベーション
• ラインの最後を正確に把握してプログラミング
• 画像の先頭を正確に把握してプログラミング
• メモリを使わないフィルターの設計
– これはケース・バイ・ケース
• VDMA や Vivado HLS の資産を有効活用
SDSoC で AXIS を扱う方法
• ug1146(V2016.2)
– 例 : SDSoC プラットフォームのダイレクト I/O
• FPGA マガジン No.16
• ug1028 (v2016.2)
– チュートリアル: プラットフォームI/O ストリームとの通信
• ug1027(v2016.2)
– 外部I/O の使用
たぶんこの順で読むとわかりやすい
ug1146 のデザインを見てみよう
AXIS の部分、拡大
tlast がない、
垂れ流し。
C で書くとこんな感じ
フィルター
垂れ流し
IP コアに対応
Interface の
指定
プラットフォームとの対応
SDSoC でつくっ
たIP コア
ダミーの関数が
既存のIPコアへ
変数が
インタフェースへ
関数が HW化され
IPが生成される
SDSoC ではパケットを使っている
• じつは last を使ってパケット化している
UG1146 の P46 から転載
ug1146 からさらに抜粋
フィルター
垂れ流し
だといっている
脱線:資料から順序良く学べます
• 資料の行間を読む必要があります。
この辺
私の価値は
勇気をもって
行間を語ることじゃ
ug1146 の方向性は
• SDSoC はビデオ処理に向いている。
– そのためには IO が必要
• IO を付け加えるにはプラットフォームをつくる
• プラットフォームを作る過程で sdslib を使う
– sdslib で IP コアとの関連性と IP コアのカスタマイズが
できる(詳しくは ug1027/ug1028 に飛ぶのだ)
• フィルターのハードウェア化を指定すると、
勝手に関連性を見てハードを作ってくれる。
• 関連性は変数を引き渡すことでコンパイラに知ら
せる。 といいつつ行間で
はなくug1146 その
ままやんか
プラットフォームとの対応(再掲)
SDSoC でつくっ
たIP コア
ダミーの関数が
既存のIPコアへ
変数が
インタフェースへ
関数が HW化され
IPが生成される
関連性を示す変数
例では wrapper 関数を使っているがその必要はない。
Rbuf0[1] の 1 に意味はなさそう。
C 言語を逸脱している点
に注意
ug1146 の続きを別の資料で読む
• ug1027:外部I/O の使用
• ug1028:チュートリアル: プラットフォームI/O ストリームとの
通信
– パケット化して
– 損失のないデータ取り込み
チュートリアルでこの2つが学べるぞ
ug1028のパケット化(packatize)
入力は垂
れ流し
出力はAXIS
サイドチャ
ネル付き
垂れ流しから
AXISへ変換。
情報の付加
ん?
なんじゃこりゃ
2つのソースが!!!
普通の C のソース
Vivado HLS 用の
ソース
つまり
C/C++ のソース sds のコンパイラ
Vivado HLS 用
ただの C ソース
もともと SDSoC がそういうものだから驚くことないのか、、、、
注意:パケット化 ≠ AXIS(VDMA)
• VDMA の規約にのっとるためには user を設
定する必要あり
よくみると user には
適当に0を入れている
これじゃVDMA の規約を満たせない
static も気持ち悪い(美しくない)
BUF_SIZE も決め打ちだ
脱線
• ./hls_if/hls_stream/bytestrm_dwordproc.cpp
も参考になります。(複雑ですが、、、)
Cの記述を大胆にも丸々オミット!!
100% Vivado HLS 依存。
AXIS(VDMA)対応にするには
• はじめから last と user を意識する
• vdma に対応したプラットフォームを作る
• AXIS (サイドチャネル付き)に対応した Vivado
HLS の関数を作る
AXIS 対応のプラットフォームを作る
VDMA を追加してみた
プラットフォームの作り方
• ug1146 にある手順そのままです
– tcl で hpfm をつくる
– src を example からコピー
– sdslib でライブラリを作る
ここが一番重要なんじゃないのか?
かなり手抜き感がにじみ出ている
サンプルを改造
入力がついに
AXISサイドチャ
ネル付きに!!
ここから先は Vivado HLS の話に
なってしまう
• 参考資料: ug902:ハードウェア効率の良い C コード
– 必読!!ではありますが、、、、
うわ!!
template だ
hls::stream
って?!
Vivado HLS では hls::stream を推奨
• hls::stream を使う意義
– ap_axiu<32, 1, 1, 1> だけでは時間順が表現でき
ない。
• 実際に書くとわかります。(書いて破綻することを推奨
します)
– ということで、、、
ソースはこんな感じで書き直します。
脱線 hls::stream の中身
あれ?C のスレッド?
どうやらコンパイラが意識しているよう
だ!!
• hls_stream.h には HLS 的な記述はない(C の
記述のみ)
• Vivado HLS で csim で実行するとスレッドが実
行されて処理が同時に動く
– SDSoC にその機能はない、、、(と思う)
これって特定企業の独自技術で
あることに注意
そもそも hls::stream の使い方は?
(ug903 から学ぶ)
ug903 のソースは省略されているので注意。
本物のソースを見た方がよい
もうちょい分かりやすくすると
各ループのつなぎはstream
入力
出力
それぞれのループは並列に動作する。
それを踏まえて、SDSoC では、、、
• Ifdef __SDSVHLS__ を使い
Vivado HLS のソースを埋
め込む
• 必要なら C でシミュレー
ションを書く必要がある
• C側は書けないこともある
普通の C のソース
Vivado HLS 用の
ソース
こんな感じに書いてみる
まだ動いてないぞ。
これから本気出す
結果としてこうなった
VDMA
VDMA
Filter
Filter
変換用IP
変換用IP
SDSoCの
フィルタ
オー素晴らしい!!
SDSoC の世界と AXIS/VDMA の世界が融合
(うそつきました)ほんとはこう
VDMA
VDMA
SDSoCの
フィルタ
メモリ
なんだよ、本物の IO が
ないじゃねぇか
(またうそつきました)ほんとはこう
VDMA
VDMA
SDSoCの
フィルタ
メモリ
まだためしてないだけ。
オレが本気出せばすぐにできる、、、はず
だから問題なし、、、のはず
なんだできて
ねぇじゃないか
SDSoC で AXIS と hls::stream を使うと
• たぶんシステム構成の選択肢が広がる
• 余計なメモリアクセスしないで済むかも
• ソフトの介入を抑えることが出来るかも
• Vivado HLS/AXIS/VDMA の世界と融合できる
はず
– Vivado HLS のライブラリが使えると強力かも
• ラインバッファとかもある
• 私は作りかけた(車輪の再発明)
間違えて
実際問題、SDSoCってどうでしょう?
• Vivado HLS を知る必要がある
– 最初から Vivado HLS にすればいい気も、、、
• C++ のテンプレートをバリバリつかう!?
– メンテナンス性はいいのだろうか?
• SDSoC クエスト/Vivado HLS クエスト
– 地図のない(資料がない)旅
– 特定の技術に捕まっている
面白い技術で、まなぶべきだ
というのが前提にあるけどね。
あえての苦言。
致命的なエラーが発生するぞ
存在しない IP を間違えて書いても
tcl ではエラーにならないばかりか
SDSoC (2016.2および SDx2016.3) で
コンパイルすると
右のように opt.exe がエラーになります。
対処方法は正しく書くだけ(目視確認)。
力尽きたのでこの辺で終わり

More Related Content

What's hot

FPGAアクセラレータの作り方
FPGAアクセラレータの作り方FPGAアクセラレータの作り方
FPGAアクセラレータの作り方
Mr. Vengineer
 
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
Kei Nakazawa
 
Vivado hlsのシミュレーションとhlsストリーム
Vivado hlsのシミュレーションとhlsストリームVivado hlsのシミュレーションとhlsストリーム
Vivado hlsのシミュレーションとhlsストリーム
marsee101
 
2017年のFPGA Community活動について
2017年のFPGA Community活動について2017年のFPGA Community活動について
2017年のFPGA Community活動について
Mr. Vengineer
 
PYNQ祭り
PYNQ祭りPYNQ祭り
PYNQ祭り
Mr. Vengineer
 
高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応
marsee101
 
Zynq MPSoC勉強会 Codec編
Zynq MPSoC勉強会 Codec編Zynq MPSoC勉強会 Codec編
Zynq MPSoC勉強会 Codec編
Tetsuya Morizumi
 
Synthesijer zynq qs_20150316
Synthesijer zynq qs_20150316Synthesijer zynq qs_20150316
Synthesijer zynq qs_20150316
Takefumi MIYOSHI
 
Pynq祭り資料
Pynq祭り資料Pynq祭り資料
Pynq祭り資料
一路 川染
 
FPGA startup 第一回 LT
FPGA startup 第一回 LTFPGA startup 第一回 LT
FPGA startup 第一回 LT
Yamato Kazuhiro
 
TensorFlow XLA : AOT編 チラ見版
TensorFlow XLA : AOT編 チラ見版TensorFlow XLA : AOT編 チラ見版
TensorFlow XLA : AOT編 チラ見版
Mr. Vengineer
 
Takep lpc1114-190614
Takep lpc1114-190614Takep lpc1114-190614
Takep lpc1114-190614
たけおか しょうぞう
 
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
marsee101
 
ACRiウェビナー:岩渕様ご講演資料
ACRiウェビナー:岩渕様ご講演資料ACRiウェビナー:岩渕様ご講演資料
ACRiウェビナー:岩渕様ご講演資料
直久 住川
 
Riscv+fpga200606
Riscv+fpga200606Riscv+fpga200606
ZynqMP勉強会
ZynqMP勉強会ZynqMP勉強会
ZynqMP勉強会
Hidemi Ishihara
 
FPGAスタートアップ資料
FPGAスタートアップ資料FPGAスタートアップ資料
FPGAスタートアップ資料
marsee101
 
Linux : PSCI
Linux : PSCILinux : PSCI
Linux : PSCI
Mr. Vengineer
 

What's hot (20)

FPGAアクセラレータの作り方
FPGAアクセラレータの作り方FPGAアクセラレータの作り方
FPGAアクセラレータの作り方
 
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
 
Vivado hlsのシミュレーションとhlsストリーム
Vivado hlsのシミュレーションとhlsストリームVivado hlsのシミュレーションとhlsストリーム
Vivado hlsのシミュレーションとhlsストリーム
 
2017年のFPGA Community活動について
2017年のFPGA Community活動について2017年のFPGA Community活動について
2017年のFPGA Community活動について
 
PYNQ祭り
PYNQ祭りPYNQ祭り
PYNQ祭り
 
高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応
 
Zynq MPSoC勉強会 Codec編
Zynq MPSoC勉強会 Codec編Zynq MPSoC勉強会 Codec編
Zynq MPSoC勉強会 Codec編
 
Synthesijer zynq qs_20150316
Synthesijer zynq qs_20150316Synthesijer zynq qs_20150316
Synthesijer zynq qs_20150316
 
Pynq祭り資料
Pynq祭り資料Pynq祭り資料
Pynq祭り資料
 
FPGA startup 第一回 LT
FPGA startup 第一回 LTFPGA startup 第一回 LT
FPGA startup 第一回 LT
 
TensorFlow XLA : AOT編 チラ見版
TensorFlow XLA : AOT編 チラ見版TensorFlow XLA : AOT編 チラ見版
TensorFlow XLA : AOT編 チラ見版
 
Takep lpc1114-190614
Takep lpc1114-190614Takep lpc1114-190614
Takep lpc1114-190614
 
Ptt391
Ptt391Ptt391
Ptt391
 
NetBSD/Zynq
NetBSD/ZynqNetBSD/Zynq
NetBSD/Zynq
 
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
 
ACRiウェビナー:岩渕様ご講演資料
ACRiウェビナー:岩渕様ご講演資料ACRiウェビナー:岩渕様ご講演資料
ACRiウェビナー:岩渕様ご講演資料
 
Riscv+fpga200606
Riscv+fpga200606Riscv+fpga200606
Riscv+fpga200606
 
ZynqMP勉強会
ZynqMP勉強会ZynqMP勉強会
ZynqMP勉強会
 
FPGAスタートアップ資料
FPGAスタートアップ資料FPGAスタートアップ資料
FPGAスタートアップ資料
 
Linux : PSCI
Linux : PSCILinux : PSCI
Linux : PSCI
 

Similar to SDSoC でストリーム

SAIS/SIGMOD参加報告 in SAIS/DWS2018報告会@Yahoo! JAPAN
SAIS/SIGMOD参加報告 in SAIS/DWS2018報告会@Yahoo! JAPANSAIS/SIGMOD参加報告 in SAIS/DWS2018報告会@Yahoo! JAPAN
SAIS/SIGMOD参加報告 in SAIS/DWS2018報告会@Yahoo! JAPAN
Yahoo!デベロッパーネットワーク
 
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータPyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
Shinya Takamaeda-Y
 
スマートフォン対応、気をつけたいトラブル
スマートフォン対応、気をつけたいトラブルスマートフォン対応、気をつけたいトラブル
スマートフォン対応、気をつけたいトラブル
Hiroaki Wakamatsu
 
ネットワークコマンド入力に対応したツール事例
ネットワークコマンド入力に対応したツール事例ネットワークコマンド入力に対応したツール事例
ネットワークコマンド入力に対応したツール事例fumoto kazuhiro
 
Singularityで分散深層学習
Singularityで分散深層学習Singularityで分散深層学習
Singularityで分散深層学習
Hitoshi Sato
 
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
MITSUNARI Shigeo
 
「宣言的プログラミング」とSDNのひとつの形態
「宣言的プログラミング」とSDNのひとつの形態「宣言的プログラミング」とSDNのひとつの形態
「宣言的プログラミング」とSDNのひとつの形態
npsg
 
Mk network programmability-03
Mk network programmability-03Mk network programmability-03
Mk network programmability-03
Miya Kohno
 
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
gree_tech
 
Tremaで試すFirewall
Tremaで試すFirewallTremaで試すFirewall
Tremaで試すFirewall
M Hagiwara
 
Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)
Fixstars Corporation
 
SocketStream入門
SocketStream入門SocketStream入門
SocketStream入門
Kohei Kadowaki
 
スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0Kiwamu Okabe
 
インターネット広告の概要とシステム設計
インターネット広告の概要とシステム設計インターネット広告の概要とシステム設計
インターネット広告の概要とシステム設計
MicroAd, Inc.(Engineer)
 
Inside of excel 方眼紙撲滅委員会 #pyfes
Inside of excel 方眼紙撲滅委員会 #pyfesInside of excel 方眼紙撲滅委員会 #pyfes
Inside of excel 方眼紙撲滅委員会 #pyfesTakeshi Komiya
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
Yasuhito Yabe
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) Akihiro Kuwano
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
Atomu Hidaka
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングterurou
 

Similar to SDSoC でストリーム (20)

SAIS/SIGMOD参加報告 in SAIS/DWS2018報告会@Yahoo! JAPAN
SAIS/SIGMOD参加報告 in SAIS/DWS2018報告会@Yahoo! JAPANSAIS/SIGMOD参加報告 in SAIS/DWS2018報告会@Yahoo! JAPAN
SAIS/SIGMOD参加報告 in SAIS/DWS2018報告会@Yahoo! JAPAN
 
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータPyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
 
スマートフォン対応、気をつけたいトラブル
スマートフォン対応、気をつけたいトラブルスマートフォン対応、気をつけたいトラブル
スマートフォン対応、気をつけたいトラブル
 
ネットワークコマンド入力に対応したツール事例
ネットワークコマンド入力に対応したツール事例ネットワークコマンド入力に対応したツール事例
ネットワークコマンド入力に対応したツール事例
 
Singularityで分散深層学習
Singularityで分散深層学習Singularityで分散深層学習
Singularityで分散深層学習
 
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
 
「宣言的プログラミング」とSDNのひとつの形態
「宣言的プログラミング」とSDNのひとつの形態「宣言的プログラミング」とSDNのひとつの形態
「宣言的プログラミング」とSDNのひとつの形態
 
Mk network programmability-03
Mk network programmability-03Mk network programmability-03
Mk network programmability-03
 
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
 
Tremaで試すFirewall
Tremaで試すFirewallTremaで試すFirewall
Tremaで試すFirewall
 
Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)
 
SocketStream入門
SocketStream入門SocketStream入門
SocketStream入門
 
スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0
 
インターネット広告の概要とシステム設計
インターネット広告の概要とシステム設計インターネット広告の概要とシステム設計
インターネット広告の概要とシステム設計
 
Inside of excel 方眼紙撲滅委員会 #pyfes
Inside of excel 方眼紙撲滅委員会 #pyfesInside of excel 方眼紙撲滅委員会 #pyfes
Inside of excel 方眼紙撲滅委員会 #pyfes
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
 
Scrum alliance regional gathering tokyo 2013 pub
Scrum alliance regional gathering tokyo 2013 pubScrum alliance regional gathering tokyo 2013 pub
Scrum alliance regional gathering tokyo 2013 pub
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
 

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
 
Polyphony 新機能ツアー
Polyphony 新機能ツアーPolyphony 新機能ツアー
Polyphony 新機能ツアー
ryos36
 
Polyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGAPolyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGA
ryos36
 
Stellaris を使った組み込みアプリ開発ガイド
Stellaris を使った組み込みアプリ開発ガイドStellaris を使った組み込みアプリ開発ガイド
Stellaris を使った組み込みアプリ開発ガイド
ryos36
 
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門
ryos36
 
数値計算のための Python + FPGA
数値計算のための Python + FPGA数値計算のための Python + FPGA
数値計算のための Python + FPGA
ryos36
 
Polyphony IO まとめ
Polyphony IO まとめPolyphony IO まとめ
Polyphony IO まとめ
ryos36
 
PYNQ 祭り: Pmod のプログラミング
PYNQ 祭り: Pmod のプログラミングPYNQ 祭り: Pmod のプログラミング
PYNQ 祭り: Pmod のプログラミング
ryos36
 
Analog Devices の IP コアを使う
Analog Devices の IP コアを使うAnalog Devices の IP コアを使う
Analog Devices の IP コアを使う
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 (19)

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 の並列化
 
Polyphony 新機能ツアー
Polyphony 新機能ツアーPolyphony 新機能ツアー
Polyphony 新機能ツアー
 
Polyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGAPolyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGA
 
Stellaris を使った組み込みアプリ開発ガイド
Stellaris を使った組み込みアプリ開発ガイドStellaris を使った組み込みアプリ開発ガイド
Stellaris を使った組み込みアプリ開発ガイド
 
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門
 
数値計算のための Python + FPGA
数値計算のための Python + FPGA数値計算のための Python + FPGA
数値計算のための Python + FPGA
 
Polyphony IO まとめ
Polyphony IO まとめPolyphony IO まとめ
Polyphony IO まとめ
 
PYNQ 祭り: Pmod のプログラミング
PYNQ 祭り: Pmod のプログラミングPYNQ 祭り: Pmod のプログラミング
PYNQ 祭り: Pmod のプログラミング
 
Analog Devices の IP コアを使う
Analog Devices の IP コアを使うAnalog Devices の IP コアを使う
Analog Devices の IP コアを使う
 
高速化のポイント
高速化のポイント高速化のポイント
高速化のポイント
 
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仮想マシン
 

SDSoC でストリーム