Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

FPGA・リコンフィギャラブルシステム研究の最新動向

FPGA・リコンフィギャラブルシステム研究の最新動向(2015年3月11日 電子情報通信学会総合大会@立命館大学BKC チュートリアル「若手による高性能コンピュータシステムの最新動向解説」にて)

  • Be the first to comment

FPGA・リコンフィギャラブルシステム研究の最新動向

  1. 1. 若手による高性能コンピュータシステムの最新動向解説 FPGA・リコンフィギャラブル システム研究の最新動向 高前田 伸也 奈良先端科学技術大学院大学 情報科学研究科 E-mail: shinya_at_is_naist_jp 2015年3月11日 13:00-15:55
  2. 2. FPGAとは? 2015-03-11 Shinya T-Y, NAIST 2
  3. 3. Heterogeneous Computing Era OoO Core OoO Core OoO Core OoO Core L2 L2 L2 L2 L3 Cache DDR3 DRAM Multicore (Intel Corei7) L2 Cache GDDR5 DRAM GPU (NVIDIA GeForce) DDR3 DRAM Manycore (Intel Xeon Phi) DDR3 DRAM FPGA (Xilinx Virtex-7) 2015-03-11 Shinya T-Y, NAIST 3
  4. 4. FPGA (Field Programmable Gate Array) n  中身を改変可能なLSI (PLD: Programmable Logic Device) l  設計者が独自のデジタル回路を形成することができる l  対してCPUやGPUはFLD (Fixed Logic Device)? n  CPUなどとの大きな違いは? l  CPUの振る舞いはソフトウェア(プログラム)で規定される •  ユーザはCPUそのものの回路を変更することはできない l  FPGAの振る舞いはハードウェアそのものの変更で変えられる Digital circuits 2015-03-11 Shinya T-Y, NAIST 4
  5. 5. Basic Structure of an FPGA (Island-Style) SB CB CB LB SB CB CB LB SB CB CB LB SB CB SB CB CB LB SB CB CB LB SB CB CB LB SB CB SB CB CB LB SB CB CB LB SB CB CB LB SB CB SB CB SB CB SB CB SB IOB IOB IOB IOB IOB IOB IOBIOBIOB IOBIOBIOB FPGA SB LB CB IOB Logic Block Switch Block Connection Block I/O Block Wire •  An LB has logical circuit components for both combinational circuits and sequential circuits •  They are connected via interconnection components (SB, CB and wire) 2015-03-11 Shinya T-Y, NAIST 5
  6. 6. Basic Structure of an FPGA (Island-Style) SB CB CB LB SB CB CB LB SB CB CB LB SB CB SB CB CB LB SB CB CB LB SB CB CB LB SB CB SB CB CB LB SB CB CB LB SB CB CB LB SB CB SB CB SB CB SB CB SB IOB IOB IOB IOB IOB IOB IOBIOBIOB IOBIOBIOB FPGA SB LB CB IOB Logic Block Switch Block Connection Block I/O Block Wire •  An LB has logical circuit components for both combinational circuits and sequential circuits •  They are connected via interconnection components (SB, CB and wire) 2015-03-11 Shinya T-Y, NAIST 6
  7. 7. Logic Block n  Two basic elements in a logic block l  LUT (Look Up Table): for combinational circuits l  Flip-flop: for memory (sequential circuits) SB CB CB LB SB CB CB LB SB CB CB LB SB CB SB CB CB LB SB CB CB LB SB CB CB LB SB CB SB CB CB LB SB CB CB LB SB CB CB LB SB CB SB CB SB CB SB CB SB IOB IOB IOB IOB IOB IOB IOBIOBIOB IOBIOBIOB FPGA Logic Block LUT D Q 2015-03-11 Shinya T-Y, NAIST 7
  8. 8. LUT: Look Up Table n  LUTs realize combinational logics n  An LUT returns a 1-bit value corresponding to the input bit-vector (=Boolean function) l  N-input LUT has 2N combinations of results: 4-input LUT has 16 a[0] a[1] a[2] a[N-1] N-input LUT b Input Output 000…0 0 000…1 1 … … 111…1 0 2015-03-11 Shinya T-Y, NAIST 8
  9. 9. FPGA in Anywhere n  LSI設計・検証のプラットフォームとして l  LSIの機能を製造前に検証 l  HWの完成を待たなくても SWの開発検証ができる l  ソフトウェアシミュレータによる 回路シミュレーションよりも 高速に検証できる n  最終製品に組み込むLSIとして l  画像処理 l  ネットワーク機器 n  アクセラレータとして l  データベースエンジン l  ウェブ検索エンジン l  証券取引アクセラレータ l  石油探索アクセラレータ Object Detection Stock Trading 2015-03-11 Shinya T-Y, NAIST 9
  10. 10. ASIC vs. FPGA n  ASIC (Application Specific Integrated Circuit) l  それぞれのアプリケーションに特化した専用回路を設計 •  専用パイプライン・高い周波数で高い性能 n  FPGA (Field Programmable Gate Array) l  どのアプリケーションも数種類のFPGAで実現:少量生産もOK l  製品リリース後の回路構成の改変が可能 The number of units Cost ASIC FPGA FPGA is cheaper ASIC is cheaper 2015-03-11 Shinya T-Y, NAIST 10
  11. 11. 増え続けるFPGAの回路規模 n  トランジスタの スケーリングにより FPGの回路規模も増大 l  5年で6倍以上に増加 l  今後も更なる増加が予想 •  マルチダイ化 •  3次元積層 n  その分設計が大変に l  設計検証の時間が増大 l  効率的な開発方式が必要 •  RTLのみの開発の限界 •  高位合成処理系の利用 From Xilinx UG8722015-03-11 Shinya T-Y, NAIST 11
  12. 12. FPGAボードの基礎 Xilinx VC707 Evaluation Board 価格: 40万円程度 PCI-express (Connected to PC) FPGA (Xilinx Virtex-7 XC7V485T) Ethernet DDR3 SODIMM DRAM (Memory) SD Card Power In 2015-03-11 Shinya T-Y, NAIST 12
  13. 13. Digilent NetFPGA SUME FPGA (Xilinx Virtex-7 XC7V690T) DDR3 SODIMM (4GB x2) PCI-express10Gbps Ethernet x4 SATA-3 x2 価格: $24,500 (アカデミック価格: $1,695) 2015-03-11 Shinya T-Y, NAIST 13
  14. 14. Digilent Nexys3 FPGA: Xilinx Spartan-6 LX16 Size: Pipelined CPU ×2 Price: 2万円?(アカデミック) Digilent ZedBoard FPGA: Xilinx Zynq-7020 Size: Pipelined CPU ×8 (+ ARM DualCore) Price: 5万円 (アカデミック) 2015-03-11 Shinya T-Y, NAIST 14
  15. 15. ScalableCore System FPGA: Xilinx Spartan-6 ×100 Size: Pipelined CPU x200? Price: 100万円程度? 2015-03-11 Shinya T-Y, NAIST 15
  16. 16. How to Develop a Software? Writing a software in programming languages Preprocess Compile Assemble Link CompilerFlow Execution on a CPU int main(){� int a = 1 + 2;� printf(“Hello %dn”, a);� return 0;� }� add $t0, $t1, $t2� li $v0, 1� syscall� ELF01ABF00F1...� Executable Binary 2015-03-11 Shinya T-Y, NAIST 16
  17. 17. How to Develop a (FPGA) Hardware? Writing a hardware design in HDL (Hardware Description Language) Synthesis Technology Mapping Place and Route Bitstream Generation EDAFlow Configuration of the bitstream to an FPGA module top� (input CLK, RST, � output reg [7:0] LED);� always @(posedge CLK) begin� LED <= LED + 1;� end� endmodule� 1A0C021E...� Original HW on an FPGA Bitstream 2015-03-11 Shinya T-Y, NAIST 17
  18. 18. 近年のFPGAを取り巻く環境 2015-03-11 Shinya T-Y, NAIST 18
  19. 19. ARM搭載FPGAの登場 (1) n  ARMプロセッサ+FPGA (Xilinx Zynq, Altera SoC) l  専用インターコネクトで密結合,キャッシュ・DRAM共有 l  普通のLinuxが動作する→大量なソフトウェア資源が利用可能 Zynq-7000 All Programmable SoC http://japan.xilinx.com/products/silicon-devices/soc/zynq-7000.html AlteraのARMベースSoC https://www.altera.com/ja_JP/pdfs/literature/br/br-soc-fpga_j.pdf 2015-03-11 Shinya T-Y, NAIST 19
  20. 20. ARM搭載FPGAの登場 (2) n  普通のFPGAとは何が違う? l  そもそも通常のFPGA上もCPU搭載可能(ソフトマクロ) l  コア性能が数倍∼10倍違う •  MicroBlaze: 100MHz∼200MHz, In-order, Single issue •  ARM: 600MHz∼1GHz, OoO, Super scalar n  独自のHW/SW協調SoCの実現が容易になる l  面倒な処理は処理はCPU上のソフトウェアで実現 •  ネットワーク・ファイルシステムなど l  並列処理部はFPGA上の専用ハードウェアで実現 •  並列度とメモリ帯域に応じて演算器を追加し高速化 •  必要に応じて演算精度を削り更に高速化 l  データ共有が遅いんじゃないの? •  PCI-e経由よりも通信オーバーヘッドは小さい –  キャッシュ・DRAM共有のおかげ 2015-03-11 Shinya T-Y, NAIST 20
  21. 21. 例)Zynq 7000 アーキテクチャ n  ARM Cortex-A9 (Dual-core, OoO, 8-stage) n  3種類のCPU-PL間接続 (すべてAXIインターフェース) AXI GP Port AXI HP Port AXI ACP Port Cache DRAM GP •  低速 •  制御レジスタ アクセス用 HP •  高バンド幅 •  DRAMへの バースト転送向け ACP •  低レイテンシ •  キャッシュ コヒーレント •  CPUとの データ共有向け http://www.ioe.nchu.edu.tw/Pic/CourseItem/4468_20_Zynq_Architecture.pdf http://japan.xilinx.com/support/documentation/data_sheets/j_ds190-Zynq-7000-Overview.pdf 2015-03-11 Shinya T-Y, NAIST 21
  22. 22. 浮動小数点ユニット搭載FPGA n  従来FPGAのDSP(乗算)ユニットは整数のみ対応 l  浮動小数点演算は変換ロジックを組み合わせて実現 (ソフトマクロ)→大きな回路・電力オーバーヘッド •  そのため浮動小数点演算ではGPUが有利だった n  Altera次期モデルがハードマクロ浮動小数点DSPを搭載 l  コンピューティングデバイスとしてのFPGAの利用が増加? Altera Expands Floating-Point Hardware Support Across Its Product Lines http://www.bdti.com/InsideDSP/2014/07/22/Altera 2015-03-11 Shinya T-Y, NAIST 22
  23. 23. IPコアベースのシステム開発環境の普及 n  IPコアを開発・追加して繋げばシステム完成J l  標準的なインターコネクトでIPコア達を接続 l  EDAツールが自動的にインターコネクトと(いくつかの) デバイス依存のインターフェースを生成してくれるため楽 l  いかにしてIPコアを簡単に開発するかが重要 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-03-11 Shinya T-Y, NAIST 23
  24. 24. 高位合成処理系の普及 n  FPGA向け商用高位合成ツールが多数登場 l  Xilinx Vivado HLS •  C/C++で振る舞いを定義・プラグマ追加で性能チューニング l  その他C言語ベースImpulse C・CWB・eXCiteなど l  OpenCLベース: Altera OpenCLやXilinx SDAccel •  ホストPCありき・ホストPC上SWのお作法も定義 https://www.youtube.com/ watch?v=URUVkq6zQhQ 2015-03-11 Shinya T-Y, NAIST 24
  25. 25. オープンソースな高位合成ツールの登場 n  LegUp: トロント大で開発されているCベース処理系 l  C記述をMIPS CPU用SW部とHW部に自動分割・論文多数 n  Synthesijer: Javaによる高位合成処理系 l  Java言語仕様に改変なし,サブセットをそのまま合成可能 9 クイックスタート 5/8 (5) 間隔をおいて変数ledをtrue/falseするプログラムを書く Lチカに相当する変数 適当なウェイト 点滅 自動コンパイルが裏で動くので,Javaコードとしての正しさは 即座にチェックされる 2 Synthesijer とは ✔ JavaプログラムをFPGA上のハードウェアに変換 ✔ 複雑なアルゴリズムのハードウェア実装を楽に ✔ オブクジェクト指向設計による再利用性の向上 ✔ 特殊な記法,追加構文はない ✔ ソフトウェアとして実行可能.動作の確認、検証が容易 ✔ 書けるプログラムに制限は加える (動的なnew,再帰は不可など) Javaコンパイラ フロントエンド Synthesijer エンジン Javaコンパイラ バックエンド 合成 配置配線 while(){ if(...){ … }else{ … … } …. } 複雑な状態遷移も,Javaの制御構文を使って楽に設計できる 同じJavaプログラムをソフトウェアとしても FPGA上のハードウェアとしても実行可能 Open-source http://www.sigemb.jp/ESS/2014/files/IPSJ-ESS2014003-1.pdf 2015-03-11 Shinya T-Y, NAIST 25
  26. 26. 国際会議等にみる傾向 2015-03-11 Shinya T-Y, NAIST 26
  27. 27. 主要な国際会議・論文誌 n  国際会議 l  FCCM, ACM FPGA, FPL, FPT, ASAP, ReConFig, ARC, HEART l  計算機アーキテクチャ全般やLSI設計技術を対象とする国際会議 でも頻繁に取り扱われる •  計算機アーキテクチャ系: ISCA, MICRO, ASPLOS, HPCA •  LSI設計技術系: DAC, ASP-DAC, DATE l  その他データベース系やプログラミング言語系の国際会議でも n  論文誌 l  ACM Tr. on Reconfigurable Technology and Systems (TRETS) l  IEICE英文論文誌D Special Section on Reconfigurable Systems 2015-03-11 Shinya T-Y, NAIST 27
  28. 28. 主要国際会議におけるRECONF研究動向 n  定番のテーマ l  画像処理 l  バイオインフォマティクス l  ネットワーク処理 (IPv6パケット処理) l  ソフトプロセッサ (CPU on FPGA) l  CGRAアーキテクチャ n  最近の流行 l  データベース (NoSQL, memcached) l  機械学習 (Deep Learning) l  設計技術 (HW/SW協調設計・抽象化方式・設計支援) l  高位合成言語 (C/Java/etc-to-HDLコンパイラ・最適化) 2015-03-11 Shinya T-Y, NAIST 28
  29. 29. Memcachedアクセラレータ n  FPGAイーサでmemcachedのリクエストをキャッシュ ホストに行くリクエストを減らす[Fukuda+, FPL’14] n  GET処理アクセラレータをNICに入れてメモリ共有 [Lim+, ISCA’13] 2015-03-11 Shinya T-Y, NAIST 29
  30. 30. システムレベル設計支援:メモリ抽象化 n  オンチップメモリは高速だが小さい→仮想メモリ導入 n  LEAP[Adler+,FPGA’11] l  オンチップメモリ・ボードメモリ・ホストメモリを合わせて抽 象化するライブラリ l  キャッシュ階層によりFPGA上のメモリを仮想的に拡大 n  flipSyrup[Takamaeda+,ReConFig’14] l  巨大なオンチップメモリが利用できることを想定して ハードウェア設計が可能に(仮想メモリ on Verilog HDL) Read Write RAM 1-cycle RAMs w/o Capacity Limits RAM RAM Logic (a) Baseline Design Read Write Sub-logic 0 Abst Memory Abst Memory Abst Channel Abst Channel Read Write Virtual Connection Region 0 Sub-logic N-1 Abst Memory Abst Channel Region N-1 = Entire Original Logic (b) Partitioned Design 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) Abstraction IP-core (Region 0) (Automatically Generated) FPGA Region 0 I/O Abstraction System Sub-logic 0 FPGA Region N-1 Connected to Other FPGAs (c) Generated System2015-03-11 Shinya T-Y, NAIST 30
  31. 31. 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-03-11 Shinya T-Y, NAIST 31
  32. 32. 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-03-11 Shinya T-Y, NAIST 32
  33. 33. 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-03-11 Shinya T-Y, NAIST 33
  34. 34. 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-03-11 Shinya T-Y, NAIST 34
  35. 35. 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-03-11 Shinya T-Y, NAIST 35
  36. 36. 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-03-11 Shinya T-Y, NAIST 36
  37. 37. 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-03-11 Shinya T-Y, NAIST 37
  38. 38. 新たなハードウェア記述言語 n  Verilog HDL/VHDLの問題点 l  すべてをレジスタ転送レベルで書かなければならないため大変 l  抽象度・再利用性が低い n  Verilog HDL/VHDLに変わる新しいHDL l  Bluespec: System Verilog + Haskell風味 l  Chisel: Scalaベースのハードウェア設計DSL l  Synthesijer.Scala: ScalaでHDLを生成 2015-03-11 Shinya T-Y, NAIST 38
  39. 39. 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-03-11 Shinya T-Y, NAIST 39
  40. 40. 機械学習アクセラレータ 2015-03-11 Shinya T-Y, NAIST 40
  41. 41. CNN and DNN n  CNN: Convolutional Neural Network l  畳み込みニューラルネットワーク •  畳み込み演算・プーリング(選択)を多層に積む From “DaDianNao: A Machine-Learning Supercomputer (MICRO’14)” 2015-03-11 Shinya T-Y, NAIST 41
  42. 42. Deep Learning on FPGAs n  データフローアーキテクチャの採用 l  ニューロン・シナプスの値が乗算・加算パイプラインを流れる n  ニューロンのネットワークをHW実装したわけではない l  DNNモデルを高速化し何かを予測したいだけ Zhang+, Optimizing FPGA-based Accelerator Design for Deep Convolutional Neural Networks, FPGA’15 2015-03-11 Shinya T-Y, NAIST 42
  43. 43. FPGA-based Machine Learning System n  Microsoft Bing Search Engine (Catapult) l  A commercial FPGA-based web search engine l  Machine-learning (DNN) algorithms as hardware pipeline Putnam+, A Reconfigurable Fabric for Accelerating Large-Scale Datacenter Services, ISCA'14 2015-03-11 Shinya T-Y, NAIST 43
  44. 44. DaDianNao: A Machine-Learning Supercomputer n  CNN/DNNのためのプログラマブルアクセラレータ n  IEEE/ACM MICRO’14ベストペーパー l  µアーキテクチャのトップカンファレンスでベストペーパー We show that, on a subset of the largest known neural network layers, it is possible to achieve a speedup of 450.65x over a GPU, and reduce the energy by 150.31x on average for a 64-chip system. 2015-03-11 Shinya T-Y, NAIST 44
  45. 45. Chip Layout of DaDianNao 2015-03-11 Shinya T-Y, NAIST 45
  46. 46. Multi-chip System for large network 2015-03-11 Shinya T-Y, NAIST 46
  47. 47. Various Operations on Identical NFU 2015-03-11 Shinya T-Y, NAIST 47
  48. 48. Energy Reduction (Inference) n  GPUと比較して150倍程度電力効率を改善 l  必要なメモリeDRAMでオンチップに入れてしまい それを沢山ならべてしまえば高効率 2015-03-11 Shinya T-Y, NAIST 48
  49. 49. 今後の展望 2015-03-11 Shinya T-Y, NAIST 49
  50. 50. 今後の展望 n  FPGA+CPU+GPU? l  Zynq Ultrascale: ARM64 Quad-coreを搭載するFPGAをリリース n  →シングルチップヘテロジニアスシステムが普及 l  開発支援・プログラミングモデルがより重要に l  高位合成処理系・デバッグ環境等の整備が必要 2015-03-11 Shinya T-Y, NAIST 50
  51. 51. まとめ n  FPGAとは? n  近年のFPGAを取り巻く環境 l  ARM搭載FPGAの搭載 l  ハードマクロ浮動小数点ユニットの搭載 l  安価な商用高位合成系の普及 l  オープンソース高位合成系の登場 n  国際会議等にみる傾向 l  データベース l  機械学習(ディープラーニング) l  設計支援・高位合成処理系 l  専用アクセラレータ 2015-03-11 Shinya T-Y, NAIST 51

×