lチカからはじめるfpga入門
TRANSCRIPT
はじめてのFPGA〜LチカからはじめるFPGA⼊⾨
ABC2017 (秋)Michihiro Imaoka
今岡 通博
https://www.facebook.com/[email protected],@imaoca
http://www.itmedia.co.jp/author/208685/
今岡 通博 imaoka michihiro@imaoca今岡⼯学事務所 個⼈事業主代表組込み系受託開発、FPGA応⽤製品、書籍等執筆、回路設計、基板設計、⾮常勤講師
愛媛県松⼭市在住
・元⽇本DEC(Digital Equipment Corp.)他・最近は原稿を書いていることが多い・セキュリティ・キャンプの講師とか・ハードウエアスタートアップ⽀援・Microsoft MVP(Windows Development)・FPGAスタートアップ主宰・Androidの会コミュニティ運営委員
講演概要
最近注⽬集めているAIチップ。AIのハードウエア化(チップ化)に於いてFPGAの存在がますます重要になってきます。しかしソフトウエア技術者の中にはFPGAは敷居が⾼いと誤解されている⽅も多いのではないでしょうか。本講演でははじめてFPGAを触る⽅を対象にLEDの点滅させる回路から解説します。Arduinoよりもずっと簡単で効率的であることがお解り頂けると思います。
AI 特 DNN FPGA 注目 背景
• AI FPGA神 Intel入
• 型 限界
• NN 実行 並列化 余地
• 低消費電力/高速化
• 学習済 化
• AI 化 家電
FPGA Field Programable Gate Array
• 半導体 一種
• 回路 書 込 変更
各社 動向
• Microsoft : Catapult,BrainWave• Amazon : AWS F1• Google : TPU• IBM : Power-PC + GPU
Silicon alternatives for DNNs
CPU GPU FPGA(Soft DPU) Hard DPU ASICs
Flexibility EfficencyCerebrasGoogle TPUGraphcoreGroqIntel NervanaMovidiusWave Computing
BrainWaveBaidu SDADeephi TechESETeradeepEtc.
DSP
出典Microsoft Accelerating Persistent Neural Networks at Datacenter Scale
8
FPGAs ideal for adapting to rapidly evolving MLCNNs, LSTMs, MLPs, reinforcement learning, feature extraction, decision trees, etc.Inference-optimized numerical precisionExploit sparsity, deep compression for larger, faster models
Excellent inference performance at low batch sizesUltra-low latency serving on modern DNNs >10X lower than CPUs and GPUsScale to many FPGAs in single DNN service
The power of Deep Learning on FPGA
Performance
Flexibility
ScaleMicrosoft has the world’s largest cloud investment in FPGAsMultiple Exa-Ops of aggregate AI capacityBrainWave runs on Microsoft’s scale infrastructure
出典Microsoft Accelerating Persistent Neural Networks at Datacenter Scale
概要
LEDを点滅させる回路をFPGAでつくります
環境
• Quartus II 13.0sp1 Web Edition• Verilog-HDL• Intel(Altera) Cyclone IV
手順
■HDL(Hardware Definition Language)でソースコードを作成
■シンセサイズ
■ピン配置を決定
■プログラマーでFPGAに回路を書き込む
module led_170311 (out,clk);
input clk; output out; reg[24:0]count;
assign out = count[24];
always @(posedge(clk)) begincount = count + 1;
end
endmodule
RTL Viewer
DEMO
因 Arduino
void setup() { pinMode(13, OUTPUT);}
void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); }
【ご清聴ありがとうございました】はじめてのFPGA〜
LチカからはじめるFPGA⼊⾨
Michihiro Imaoka今岡 通博
https://www.facebook.com/[email protected],@imaoca
http://www.itmedia.co.jp/author/208685/
=告知 願 =
日本Android 会 協賛企業絶賛募集中
日本Android 会FPGA部 設立 登録 願
https://www.facebook.com/groups/380071492406698/
出展