Article header library 127325  1

インテル® FPGA の HLS コンパイラ

インテル® HLS コンパイラがインテル® Quartus® Prime 開発ソフトウェア v17.1 から、すべてのエディション(Pro / Standard / Lite)で使用できるようになりました。これから HLS コンパイラを使用するユーザ向けに、最適な情報を紹介します。

インテル® HLS コンパイラとは?

インテル® HLS コンパイラとは、インテル® FPGA に対して最適化された High Level Synthesis (HLS) ツール、いわゆる高位合成ツールです。本ツールを使用することにより、C や C++ 言語のソフトウェア・プログラミング言語から インテル® FPGA へ実装するための回路(デザイン)を作成することができます。

今まではハードウェアの知識が必要だったデザインの作成を、ソフトウェア設計者でも作成できるようになったので、C や C++ の言語で記述されたフィルタ処理や CPU では重かったソフトウェア処理部分を インテル® FPGA 向けの回路にオフロードさせ、システムの最適化が行えるようになりました。

Article header library 127325 pic01  2

C/C++ から FPGA への書き込みまで

インテル® HLS コンパイラの資料

このページへアクセスすると、インテルが用意している資料を見ることができます。

インテル® HLS コンパイラの紹介ページ (インテル)
英語版はこちら
※ ドキュメントは「資料」(英語ページは「Document」)タブをクリックしてください。

以下の資料が用意されています。

  • 製品概要
  • 画像処理ホワイト・ペーパ
  • 入門ガイド
  • ユーザ・ガイド
  • リファレンス・マニュアル
  • ベスト・プラクティス・ガイド
  • クイック・リファレンス・ガイド
  • ホワイト・ペーパ「QRD 分解の最適化」

先ほど資料を複数紹介しましたが、どの順番で参照するのが良いか迷いますよね?インテル® HLS コンパイラの使用方法を学ぶ上で、全体的なフローが理解できる資料の参照順序を紹介します。

1. 製品概要

インテル® HLS コンパイラの製品概要です。ツールの大まかな全体像を理解することができます。

まずは、インテル® HLS コンパイラを使用する上で必要な環境の構築方法について知ることが必要です。また、今後インテル® HLS コンパイラを用いる際に参考となる Example Design の内容を、事前に把握することも可能です。

こちらの記事もわかりやすく説明されているので、ぜひご覧ください。

HLS はじめてガイド - HLS コンパイラの環境構築(Windows® 編)

2. ユーザ・ガイド

ツールのセットアップが終わったら実際に行うフローを学びます。ユーザ・ガイドではインテル® HLS コンパイラを使用してコンポーネントを作成し、合成や検証、シミュレーションの各手順を理解することができます。

インテル® FPGA 製品向けに設計する IP の合成、検証、シミュレーションの各手順を解説しています。合成時にシミュレーション用のテストベンチを作成することなど、検証やシミュレーション時の基本的なコマンドも含めた情報が記載されています。また、生成された IP を Quartus® Prime で使用する為の手順や インテル® HLS コンパイラの制限事項、レポートの概要説明も含まれています。

3. ベスト・プラクティス・ガイド

インテル® HLS コンパイラにて、パフォーマンスを最適化する方法について習得することができます。具体的には、ループの最適化やメモリ最適なメモリ・アーキテクチャの構成、コンポーネントのデータ型とコンバートの最適化によるパフォーマンスとロジック使用領域削減などです。

実際にコンポーネントを作成しても期待通りの性能になっていない場合は、資料に掲載されている最適化を行います。この資料では、ツールを使用してどこがボトルネックになっていて、どう最適化させるのかの一例を学ぶことができます。

最低限は上記の順序で資料を参照することにより、インテル® HLS コンパイラの機能を一通り学ぶことが可能です。また、その他の資料にも有益な情報が記載されています。上記フローには記載していませんが、適時参照してください。

その他の資料については、以下のとおりです。

その他資料

画像処理ホワイト・ペーパ

画像処理を例として、インテル® HLS コンパイラの設計フローを確認できます。アルゴリズムの説明や C++ 実装、そして 実際に インテル® HLS コンパイラを使用してのハードウェア化、検証、最適化までの流れを解説しています。

インテル® HLS コンパイラを使用する際に、どういうフローで実装すれば良いのかを具体例を用いて解説されているため、仕様検討から実装、最適化までの流れを知るためには最適な資料です。

入門ガイド

インテル® HLS コンパイラを使用する上で必要なツールやライセンス設定、Example Design の紹介など環境構築に必要な情報が掲載されています。ツールをこれからご使用するユーザにとても有益な資料です。

また、ライセンスによるトラブル・シューティングについても記載されているので、ライセンス設定が上手くできない場合にも参考になります。

リファレンス・マニュアル

コマンド・オプションやコンポーネント属性の指定などに困った時に参照します。

インテル® HLS コンパイラのコマンド・オプションやコンポーネント、インターフェイスの属性記述など実設計時に必要な情報が掲載されています。コンポーネント属性やインターフェイスが決まり、ソース・コード編集時や インテル® HLS コンパイラにおけるコマンド実行時に参照してください。

また、Appendix ではクリック・リファレンスとしてコマンドラインの引数やコンポーネント属性など一覧がまとまっています。引数やコマンドなどの検索にも使用できます。

ホワイト・ペーパ「QRD 分解の最適化」

固有値分解を例に、最適化の方法を理解することができます。

ベスト・プラクティス・ガイドで紹介している最適化の方法を使用し、QR 分解のコードのパフォーマンス向上の例を紹介しています。インテル® HLS コンパイラを用いる上で、具体的な最適化の方法を実例を用いて理解することができます。

HLS コンパイラを体験してみましょう

このページで紹介した順番で資料を参照すれば、すぐにインテル® HLS コンパイラの評価を行うことができます。

インテル ® HLS コンパイラを用いて、工数の削減やソフトウェア設計者がハードウェア設計を行う第一歩となれば嬉しいです。

環境構築の方法や簡易チュートリアルといった記事や資料を用意しています。ぜひ、インテル® HLS コンパイラを使用してみてください。


おすすめ記事/資料はこちら

おすすめワークショップはこちら

関連タグ