SlideShare uma empresa Scribd logo
1 de 7
Baixar para ler offline
京都Devかふぇ#4 〜レガシーシステム考古学〜
1
2018/11/22
なぜFPGAの人は日付フォルダーでバージョン管理をするのか
なつたん
@natsutan
FPGAとは
2
中身を自由に書き換えられる半導体。
最近Deep Learningでソフトウェアの人にも注目度アップ
https://www.publickey1.jp/blog/18/fpgaaiproject_brainwavegoogletpubuild_2018.html
https://prtimes.jp/main/html/rd/p/000000031.000016656.html
FPGAの開発フロー
3
Verilog-HDL,
VHDL, C
論理合成
reg
mem
配置配線
bitファイル
生成 bitstream
コンパイル
ソフトウェア
用語 リンク 実行ファイル
FPGA業界では伝統的に、実行ファイルを作る度に、中間ファイル、一時ファイルも含めて
全部保存する文化がある。
結果、ソースコードはgit, svnを使いながらも、実体は日付で分けたディレクトリーで管理し
てしまっている。なぜ?
配置配線が問題
配置配線の難しさ
4
最小集合2分割問題
M
S1
S2
ある集合Mに属する要素を、2つの集合に分け、何らかのコストを最小にする問題。
何気にNP困難
まさかの乱択アルゴリズム
現場は大混乱
5
ソースコードも、オプションも同じなのに、コンパイ
ルし直すと動かなくなった。
全盛期
の僕
まとめ
 ビルド環境に乱択アルゴリズムが入る場合
 全てのファイルを残しましょう
 設計で乱数の影響をなくす様にするのが王道
 乱数を制御する方法を調べよう
 SEEDの指定
 配置配線の制約
 開発環境のバージョンアップで、コンパイル結果が変わるこ
とを受け入れよう。
 プロのFPGA使いは、開発環境のインストーラを全バージョ
ン残している。
 全てのファイルを残しましょう
6
最後に
7
公開されているFPGAのプロジェクトが、ファイル
全部圧縮してあげてあるのはそういう理由です。
生暖かく見守ってください

Mais conteúdo relacionado

Semelhante a Kyoto dev caffe

JA7YCQプログラミング勉強会 第2回 ~変数を理解しよう!~
 JA7YCQプログラミング勉強会 第2回 ~変数を理解しよう!~ JA7YCQプログラミング勉強会 第2回 ~変数を理解しよう!~
JA7YCQプログラミング勉強会 第2回 ~変数を理解しよう!~Neppo Telewisteria
 
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)Shinya Takamaeda-Y
 
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)Shinya Takamaeda-Y
 
GPU-FPGA協調プログラミングを実現するコンパイラの開発
GPU-FPGA協調プログラミングを実現するコンパイラの開発GPU-FPGA協調プログラミングを実現するコンパイラの開発
GPU-FPGA協調プログラミングを実現するコンパイラの開発Ryuuta Tsunashima
 
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォームZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォームHideki Takase
 
ACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyoACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyoTakefumi MIYOSHI
 
45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄Yukio Saito
 
ESP32開発環境まとめ
ESP32開発環境まとめESP32開発環境まとめ
ESP32開発環境まとめKenta IDA
 
Ac ri lt_fixstars_20210720
Ac ri lt_fixstars_20210720Ac ri lt_fixstars_20210720
Ac ri lt_fixstars_20210720直久 住川
 
Windows の Docker 上で PGX を動かしてみた
Windows の Docker 上で PGX を動かしてみたWindows の Docker 上で PGX を動かしてみた
Windows の Docker 上で PGX を動かしてみたHikari Morita
 
AppGameKit on raspberry pi概概要
AppGameKit on raspberry pi概概要AppGameKit on raspberry pi概概要
AppGameKit on raspberry pi概概要SI系、ゲーム系
 
FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向Shinya Takamaeda-Y
 
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計Fluentdでログを集めてGlusterFSに保存してMapReduceで集計
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計maebashi
 

Semelhante a Kyoto dev caffe (20)

JA7YCQプログラミング勉強会 第2回 ~変数を理解しよう!~
 JA7YCQプログラミング勉強会 第2回 ~変数を理解しよう!~ JA7YCQプログラミング勉強会 第2回 ~変数を理解しよう!~
JA7YCQプログラミング勉強会 第2回 ~変数を理解しよう!~
 
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
 
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
 
DAS_202109
DAS_202109DAS_202109
DAS_202109
 
GPU-FPGA協調プログラミングを実現するコンパイラの開発
GPU-FPGA協調プログラミングを実現するコンパイラの開発GPU-FPGA協調プログラミングを実現するコンパイラの開発
GPU-FPGA協調プログラミングを実現するコンパイラの開発
 
Riscv+fpga200606
Riscv+fpga200606Riscv+fpga200606
Riscv+fpga200606
 
FPGA
FPGAFPGA
FPGA
 
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォームZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
ACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyoACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyo
 
45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄
 
Go
GoGo
Go
 
ESP32開発環境まとめ
ESP32開発環境まとめESP32開発環境まとめ
ESP32開発環境まとめ
 
Dpdk pmd
Dpdk pmdDpdk pmd
Dpdk pmd
 
Ac ri lt_fixstars_20210720
Ac ri lt_fixstars_20210720Ac ri lt_fixstars_20210720
Ac ri lt_fixstars_20210720
 
Windows の Docker 上で PGX を動かしてみた
Windows の Docker 上で PGX を動かしてみたWindows の Docker 上で PGX を動かしてみた
Windows の Docker 上で PGX を動かしてみた
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
 
AppGameKit on raspberry pi概概要
AppGameKit on raspberry pi概概要AppGameKit on raspberry pi概概要
AppGameKit on raspberry pi概概要
 
FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向
 
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計Fluentdでログを集めてGlusterFSに保存してMapReduceで集計
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計
 

Mais de Natsutani Minoru

自作プログラミング言語の集い
自作プログラミング言語の集い自作プログラミング言語の集い
自作プログラミング言語の集いNatsutani Minoru
 
TFLiteのグラフ構造について
TFLiteのグラフ構造についてTFLiteのグラフ構造について
TFLiteのグラフ構造についてNatsutani Minoru
 
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話Natsutani Minoru
 
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話Natsutani Minoru
 
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話Natsutani Minoru
 
不足するAI人材に対する「パソナテックの人材育成ソリューション」
不足するAI人材に対する「パソナテックの人材育成ソリューション」不足するAI人材に対する「パソナテックの人材育成ソリューション」
不足するAI人材に対する「パソナテックの人材育成ソリューション」Natsutani Minoru
 
パソナテックのAI人材育成の取り組みのご紹介
パソナテックのAI人材育成の取り組みのご紹介パソナテックのAI人材育成の取り組みのご紹介
パソナテックのAI人材育成の取り組みのご紹介Natsutani Minoru
 
なにわテック20180127
なにわテック20180127なにわテック20180127
なにわテック20180127Natsutani Minoru
 
組込向けDeep Learning最新技術の紹介 量子化テクニックとDorefaNetについて
組込向けDeep Learning最新技術の紹介量子化テクニックとDorefaNetについて組込向けDeep Learning最新技術の紹介量子化テクニックとDorefaNetについて
組込向けDeep Learning最新技術の紹介 量子化テクニックとDorefaNetについてNatsutani Minoru
 

Mais de Natsutani Minoru (20)

robotics42.pptx
robotics42.pptxrobotics42.pptx
robotics42.pptx
 
自作プログラミング言語の集い
自作プログラミング言語の集い自作プログラミング言語の集い
自作プログラミング言語の集い
 
200821 swest
200821 swest200821 swest
200821 swest
 
Kyoto devcafe
Kyoto devcafeKyoto devcafe
Kyoto devcafe
 
TFLiteのグラフ構造について
TFLiteのグラフ構造についてTFLiteのグラフ構造について
TFLiteのグラフ構造について
 
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
 
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
 
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
 
Interpretable ml
Interpretable mlInterpretable ml
Interpretable ml
 
不足するAI人材に対する「パソナテックの人材育成ソリューション」
不足するAI人材に対する「パソナテックの人材育成ソリューション」不足するAI人材に対する「パソナテックの人材育成ソリューション」
不足するAI人材に対する「パソナテックの人材育成ソリューション」
 
ML meetup20190327
ML meetup20190327ML meetup20190327
ML meetup20190327
 
Kof
KofKof
Kof
 
Tfug20181105
Tfug20181105Tfug20181105
Tfug20181105
 
Rakuten20181027
Rakuten20181027Rakuten20181027
Rakuten20181027
 
Nagosta 20181020
Nagosta 20181020Nagosta 20181020
Nagosta 20181020
 
Road damge ai
Road damge aiRoad damge ai
Road damge ai
 
パソナテックのAI人材育成の取り組みのご紹介
パソナテックのAI人材育成の取り組みのご紹介パソナテックのAI人材育成の取り組みのご紹介
パソナテックのAI人材育成の取り組みのご紹介
 
Fpgax20180217
Fpgax20180217Fpgax20180217
Fpgax20180217
 
なにわテック20180127
なにわテック20180127なにわテック20180127
なにわテック20180127
 
組込向けDeep Learning最新技術の紹介 量子化テクニックとDorefaNetについて
組込向けDeep Learning最新技術の紹介量子化テクニックとDorefaNetについて組込向けDeep Learning最新技術の紹介量子化テクニックとDorefaNetについて
組込向けDeep Learning最新技術の紹介 量子化テクニックとDorefaNetについて
 

Kyoto dev caffe