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アクセラレータの作り方

5,050 views

Published on

FPGAアクセラレータの作り方について、モヤモヤしていたのでまとめました。

Published in: Devices & Hardware
  • Follow the link, new dating source: ❤❤❤ http://bit.ly/39mQKz3 ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Sex in your area is here: ❤❤❤ http://bit.ly/39mQKz3 ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

FPGAアクセラレータの作り方

  1. 1. FPGAアクセラレータの 作り方 @Vengineer 2016/9/18 追記) 2016/9/23 : Microsoft Catapult
  2. 2. Vengineer DEATH 無限ゲームのなか いつものように、 よろしくお願いします。 @Vengineer に居ます
  3. 3. ご利用は、自己責任でお願いします。
  4. 4. Intel (Altera) Xilinx PCIe Altera SDK for OpenCL SDAccel SoC Altera SDK for OpenCL SDSoC FPGAアクセラレータ用ツール
  5. 5. Altera SDK for OpenCL 参考資料 Altera SDK for OpenCL解体新書 perlスクリプト編 http://www.slideshare.net/ssuser479fa3/altera-sdk-for-opencl-perl Altera SDK for OpenCL解体新書 : ホストとデバイスの関係 http://www.slideshare.net/ssuser479fa3/altera-sdk-for-opencl
  6. 6. CPU ホスト側の メモリ Kernel−A Kernel−B Kernel−C DMA PCIe PCIe DMA デバイス側の メモリ MIF PCIeボード x86-64だけでなく、 POWERもサポート
  7. 7. CPU ホスト側の メモリ Kernel−A Kernel−B Kernel−C ホスト側のメモリの一部を デバイス側のメモリとして使用し、 CPU側からアクセスできるように マップする Linuxをブートするときに、 引数として、cma=128M のようにして 事前に割り当てる CMA(Continuous Memory Allocator) 参考資料)、 https://aelseb.wordpress.com/2015/04/11/contiguous-memory-on-arm-and-cache-coherency/ SoC FPGA
  8. 8. Xilinx SDAccel
  9. 9. x86 + PCIeボード 参考資料)、http://japan.xilinx.com/products/design-tools/software-zone/sdaccel.html KernelをC/C++でも 書けるのが特徴
  10. 10. OpenCLによる開発フロー 参考資料)、http://japan.xilinx.com/support/documentation/sw_manuals_j/xilinx2015_4/ug1021-sdaccel-tutorial.pdf アクセラレートするカーネルコードは、 OpenCLだけでなく、C/C++でも書けるのが特徴
  11. 11. リコンフィギャラブルシステム 参考資料)、http://japan.xilinx.com/support/documentation/backgrounders/j_sdaccel-backgrounder.pdf
  12. 12. Xilinx SDSoC 参考資料 SDSoC解体新書2016.2版ソフトウェア編 (チラ見) http://www.slideshare.net/ssuser479fa3/sdsoc
  13. 13. Zynq/Zynq Ultrascale+ MPSoC 参考資料)、http://japan.xilinx.com/products/design-tools/software-zone/sdaccel.html 対応ボード  ・zed/microzed/zybo/zc702/zc706  ・zcu102 (Zynq Ultrascale+ MPSoC)
  14. 14. Full System Optimizing Compiler 参考資料)、http://japan.xilinx.com/support/documentation/backgrounders/j_sdsoc-development-environment-backgrounder.pdf sds/sds++
  15. 15. ハイエンド プラットフォーム
  16. 16. ハイエンドプラットフォーム アプリケーションとFPGA間でのデータの移動は不 要。固有デバイスドライバも不要  Intel : Xeon + FPGA    Broadwell + Arria 10    Broadwell + Arria 10 GX MCP  IBM : CAPI    POWER8 + FPGA (Xilinx/Altera)
  17. 17. Intel Xeon + FPGA 参考資料 「Xeon+FPGA への妄想」 どうやって実装するのか? http://www.slideshare.net/ssuser479fa3/xeonfpga
  18. 18. Broadwell Xeon (E5-26xx v4) + Arria 10 FPGA http://www.pactroninc.com/qpi/ Pectron Grantley HSX/BSX QPI SDP
  19. 19. http://www.nextplatform.com/2016/03/14/intel-marrying-fpga-beefy-bro adwell-open-compute-future/ 開発中のBroadwell + Arria 10 GX MCP
  20. 20. https://cpufpga.files.wordpress.com/2016/04/harp_isca_2016_final.pdf AppicationとUser logicを作るだけ!
  21. 21. ・ASE(VCS : Synopsys HDL Simulator) ・SDP (Intel Software Development Platform) ・BDX(Intel QuickAssist CCI-P FPGA BDX Xeon+FPGA) Xeon + FPGA開発環境
  22. 22. https://cpufpga.files.wordpress.com/2016/04/harp_isca_2016_final.pdf ASE = Intel AFU simulation environment AFU : Accelerator Function Unit
  23. 23. https://cpufpga.files.wordpress.com/2016/04/harp_isca_2016_final.pdf Altera SDK for OpenCL
  24. 24. Xeon + FPGA in the Cloud IP Libraryがある
  25. 25. IBM CAPI 参考資料 FPGAアクセラレータの作り方 (IBM POWER + CAPI編) http://www.slideshare.net/ssuser479fa3/ibm-capi-hdl
  26. 26. http://www.nallatech.com/wp-content/uploads/IBM_CAPI_Users_Guide_1-2.pdf 一見すると、 CPUとFPGAだがFPGAの中に ある PSL と POWER8の中にある CAPP が重要 IBM CAPI Coherent Accelerator Processor Interface
  27. 27. AFU POWER8とFPGAの関係 CAPP PCIe FPGA PHB : PCIe Host Bridge CAPP : Coherently Attached Processor Proxy PSL : Power Service Layer AFU : Accelerator Function Unit PHB CPU POWER8 PSL
  28. 28. AFU CAPIのソフトウェア構成 PCIe FPGA Applicationは、 libcxl (ユーザ空間) API => Linux CXLデバイスドライバ経由で FPGAのAFUにアクセスする FPGA(AFU)独自の デバイスドライバは不要 PSL CXL Application POWER8 libcxl
  29. 29. コピー不要 &デバイスドライバ不要 メモリ移動 メモリ移動終了待ち起動 終了待ち起動 http://www.nallatech.com/wp-content/uploads/Ent2014-CAPI-on-Power8.pdf
  30. 30. Applicationのテンプレートコード // AFUの確認 struct cxl_afu_h *afu_h = cxl_afu_next(NULL); // AFUを獲得 afu_h = cxl_afu_open_h(afu_h,CXL_VIEW_DEDICATED); // AFUの起動 cxl_afu_attach(afu_h, (uint64_t) wed); // 必要ならMMIOをマップ cxl_mmio_map(afu_h, CXL_MMIO_BIG_ENDIAN); // ここで何かをやる cxl_mmio_unmap(afu_h); // MMIOをアンマップ cxl_afu_free(afu_h);  // AFUを開放
  31. 31. Microsoft Catapult Project Catapult https://www.microsoft.com/en-us/research/p roject/project-catapult/
  32. 32. https://www.microsoft.com/en-us/research/publication/a-reconfigurable-fabric-for- accelerating-large-scale-datacenter-services/ Board Design サーバーユニットに1つのFPGAボードを搭載
  33. 33. https://www.microsoft.com/en-us/research/publication/a-reconfigurable-fabric-for- accelerating-large-scale-datacenter-services/ Catapult Shell Architecture Shell  ・x8 PCIe Core  ・DMA Engine  ・DDR3−4GB x 2  ・Inter-FPGA Router  ・SLIII x 4  ・Peripherals + Role ・Appilication
  34. 34. https://www.microsoft.com/en-us/research/wp-content/uploads/2016%2F07/caulfield_a drian_reconfig_fabric_r01.pdf Factory Summit 2014の資料 「マイクロソフトはどうやってBingをFPGAで実装したか」 http://qiita.com/kazunori279/items/6f517648e8a408254a50 で詳しく解説されています。
  35. 35. https://www.microsoft.com/en-us/research/project/project-clicknp/ Application : ClickNP
  36. 36. おしまい

×