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 startup 第一回 LT

1,126 views

Published on

昔ちょっとかじった人が久しぶりに触ってみた

Published in: Devices & Hardware
  • Login to see the comments

FPGA startup 第一回 LT

  1. 1. 昔ちょっとかじった人が 久しぶりにに触ってみた 15年ぶりだね ああ、間違いない。FPGAだ 大和 一洋 第1回FPGAスタートアップセミナーLT
  2. 2. 大学院時代、FPGAとの出会い 2000年代初頭 物理の実験(宇宙線測定)装置開発 多数のセンサ同時読み出しにFPGA利用 センサー センサー センサー ADC ADC ADC ALTERA APEX (VHDL) ホストシステムへ 数千チャンネル USB2.0 デバイス コントローラ
  3. 3. 直近10年ミラクル・リナックス社に勤務 Linux/OSSに関連したソフトウェア技術者 Linux OS デジタルサイネージ 運用監視ソフト GStreamer, H.264 OpenGL (Mesa) WebKit (C++) カーネル、ライブラリの不 具合調査・修正 (C言語) GLib MySQL, RabbitMQ Django (C++, Python, JS)
  4. 4. 文字列分割(トークナイザ)をFPGAで OSの基本機能のオフロードにトライ 文字列処理の基本機能: 分割 “I have a pen” ⇒ I, have, a, pen ■ C言語 strtok() ■ Java StringTokenier ■ Python split() 春から業務として取り組む 半年ぐらいフルタイム
  5. 5. ● Xilinx Virtex-7 XC7VX690T-2 ○ ALPHA DATA ADM-PCIE-7V3 ■ PCI Express: x8, Gen3 ● Vivado ● Vivado HLS (高位合成コンパイラ) ○ C++で記述 デバイスと開発環境
  6. 6. 時間を要したところ ● 並列的な処理(高速化)のための方式開発 ● ホストコンピュータとのデータ入出力効率化 ○ デバイスドライバ ○ 効率的な転送のための高位合成コンパイラへの指示 本日、Tipsを共有したい
  7. 7. ホストとFPGAのデータ転送での問題 分割器 (C++) AXI PCIe Bridge (LogiCORE) PCIe Root Complex CPU RAM AXIインターフェイス PCI Express FPGA DMAエンジン バースト 転送 バースト 転送 バースト 転送 バースト 転送 バースト 転送 シュミレーション 実動作 →時間→時間 期待(シュミレーション) より長い
  8. 8. 効率的なバースト転送のための設定 (1) for文やmemcpy()に与えるバースト長 (2) AXIインターフェイスへのパラメータ追加 #pragma HLS INTERFACE m_axi port=lengths offset=slave bundle=gmem max_read_burst_length=32 latency=0 ベストな値は? マニュアルでも曖昧な表現、試行錯誤的に決定 ● 実機評価で初めて気づいたのでハマった
  9. 9. 性能:対CPUで最大約10倍高速 入力サイズ数KB以下 (1) CPU:速い (2) FPGA:一定 スループット 最大約4.2GiB/s (1) (2)
  10. 10. 感想・まとめ ● 15年ぶりだけど、なんとか出来た ○ 高位合成、実用的と思うも、それ用に書く必要 ■ 既存の資産の流用は難しいのでは ■ C++でもCPU用に書く場合と頭の使ってる場所が違う感じ ● PCI Expressカード ○ バースト転送の効率重要 ■ Xilinx Vivado HLS: AXIインターフェイスのパラメータ設定 ● レポートにまとめて、12月初めに会社から公開予定 ● 実際は、SDAccel (OpenCL)でもやってみた ○ 興味ある方、お話しましょう

×