Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

ソフトウェア技術者はFPGAをどのように使うか

8.722 Aufrufe

Veröffentlicht am

ソフトウェア技術者はFPGAをどのように使うか

  1. 1. ソフトウェア技術者はFPGAを どのように使うか 2013年8月31日 きしだなおき
  2. 2. FPGAとは ● Field Programmable Gate Array – Field 現場で – Programmable プログラム可能な – Gate 論理素子 – Array いっぱい並んだやつ ● 現場でプログラムできる論理回路
  3. 3. 回路の合成 ● 例:3入力でORとANDの組み合わせ
  4. 4. 回路にはいろいろある ● XORやNOTなどいろいろ組み合わせると大変 ● 使われない素子が多くなる ● 回路に無駄
  5. 5. LUT 入力出力 000 0 100 0 010 0 110 1 001 1 101 1 011 1 111 1
  6. 6. LUT ● あらかじめメモリにもっておけばいい ● 製品としては4入力LUTや6入力LUT 入力出力 000 0 100 0 010 0 110 1 001 1 101 1 011 1 111 1
  7. 7. 論理ブロック ● Logical Element(LE) Altera ● Logical Cell(LC) Xilinx
  8. 8. 配線 ● LUTが格子状に配置 ● 周囲に配線 ● アイランドスタイル
  9. 9. 乗算回路とメモリ ● 乗算やメモリを論理ブロックの組み合わせで実現 すると効率がわるい ● 乗算回路やメモリがのってる
  10. 10. FPGAとASIC ● ASIC – Application Specific Integrated Circuit – 特定用途向け集積回路 – 設計・製造に時間がかかる – 大量に生産する必要がある – 製造に数千万円から数億円 – ひとつあたりのコストは安い – 大量生産向き – つまりふつうのチップ
  11. 11. ASICと比べたFPGA ● 設計してすぐ動かせる ● ひとつから作れる ● ひとつあたりのコストは高い ● 消費電力や速度はASICより不利 ● 少量生産やプロトタイプなど
  12. 12. FPGAとCPU ● CPUとは
  13. 13. FPGAなら ● 命令を読み込まず回路をそのとおり並べれる
  14. 14. FPGAの利点 ● 命令を読み込む必要がない ● 処理間のデータのやりとりにメモリを介する必要 がない ● 細かな並列化 ● 大量のI/O – CPUでのI/Oは命令のひとつ ● でもCPUは最適化が進んでいるし高性能製品が ある
  15. 15. GPUとFPGA ● GPUとは – 浮動小数演算器をたくさんならべてデータを配って同 時に計算
  16. 16. スループットとレイテンシ ● スループット – 単位時間あたりの処理量 ● レイテンシ – ひとつの処理にかかる時間 ● シングルスレッドなら – スループット=単位時間÷レイテンシ – レイテンシ=単位時間÷スループット
  17. 17. スループット
  18. 18. データが処理時間の倍の速さで来たら
  19. 19. GPUの場合
  20. 20. 処理がABに分割できたら
  21. 21. FPGAとGPU ● GPU – 浮動小数計算が得意 – 製品が安い – 大量のコア – 最悪レイテンシが遅くなる – データ間演算が苦手 – CPUが必要
  22. 22. FPGAとGPU ● FPGA – レイテンシをコントロールできる – 浮動小数計算は苦手 – データ間演算もできる – 単独で動かせる ● でもGPUが高性能低価格化してる – 性質としてFPGAが優れてても製品としてGPUが進ん でいる
  23. 23. FPGAでの開発 ● 回路記述 – VHDLやVerilogHDLなど ● 論理合成 – HDLを論理回路に変換 ● 配置配線 – 論理回路を実際の回路に配置 ● コンフィギュレーション – FPGAに回路情報を設定
  24. 24. HDLの問題点 ● 書くのが面倒 ● 書くのが面倒 ● 論理合成に時間がかかる – 数時間かかったりする ● デバッグが面倒 ● デバッグが面倒 ● テストも面倒 ● テストも面倒 ● いろいろ面倒
  25. 25. IPを使う ● Intellectual Property ● ようするにライブラリ ● だれかが作って検証してる
  26. 26. SoC ● System on Chip ● CPU回路のせちゃえ – ソフトコアCPU ● 物理CPUのせちゃえ – FPGAの微細化 – チップに余裕 – 再構成可能回路が大量にあってもしかたない – そうだARMを乗せよう
  27. 27. 高位合成 ● CとかJavaとかで書いてHDLに変換 ● アルゴリズムの検証がソフトウェアとして行える – デバッガなどが使える – コンパイルが速い
  28. 28. FPGAのつかいどころ ● 信号処理 ● 金融計算 ● ネットワーク処理 ● 科学計算?
  29. 29. 信号処理 ● 4K2Kテレビなど情報量が増大 ● レイテンシも重要 ● 浮動小数演算に課題 – 浮動小数演算器が載ってくる
  30. 30. 金融計算 ● 時間=お金 ● 回路切り替えにも工夫 – 回路切り替えで処理が止まるならFPGAで時間短縮す る意味がない
  31. 31. ネットワーク処理 ● 40Gbイーサとか100Gbイーサとかが普及すると 処理についていけない ● 暗号処理や圧縮処理をFPGAで行うとよさげ ● CPUはアプリケーション処理に専念
  32. 32. 科学計算 ● 並列処理ができるので科学計算に期待されてい た ● いまはだいたいGPUでおk – レイテンシは問題にならない – GPU安い – 大量に導入できる – すでに製品が普及してる
  33. 33. データストリーム処理 ● FPGAに向いているのはレイテンシが重要な処理 ● データ処理に従来のDBMSは使えない
  34. 34. DBMS ● データベースマネージメントシステム ● データが保存 ● さまざまなクエリーが流れる
  35. 35. DSMS ● データストリームマネージメントシステム ● クエリーが保存 ● データが流れる
  36. 36. ソフトウェア技術者とFPGA ● ハードウェアの勉強によい – CPUの動きを実感できる – ハードウェアに興味がもてる ● いまメモリなどハードウェアの革変器 ● ついていきやすい! ● 実用は? – まだ手軽に使える製品がない
  37. 37. 普及のシナリオ1 ● FPGAにCPUも乗る ● ふつうにパソコンのCPUとして使われる ● みんなFPGA
  38. 38. 普及のシナリオ2 ● ネットワークカードにFPGAが乗る ● 大規模サービスが採用 ● 小規模サービスも採用 ● FPGA付きネットワークカードが当然に ● みんなFPGA ● GPGPUならぬGPFPGA! ● 本命

×