サイト内検索

はじめに

こんにちは、1●年前の新人、まさです。
新卒でアルティマに入社して、10 年以上が経過 しました。

機械工学を専攻して日々勉学に励んでいた学生生活から一変、アルティマに入社後はインテル® (旧アルテラ)製品を担 当し、未熟ながらも FAE (Field Application Engineer)としてお客様への提案活動を行う中で、厳しくも温か いご指導をいただきながら成長してきました。

そのおかげで、今では FPGA の製品知識はもちろんのこと、インテル FPGA の開発ツール Quartus® を使用したパフォーマンス向上テクニックについても習得し、日々、私の培ったノウハウ の展開を行っています。

機械学習(Machine Learning)で Quartus の設定を最適化??

パフォーマンス向上のための設定はいくつもあ りますが、関係するすべての設定を有効にしたからといって、ベストの結果が得ら れるとは限りません。

使用する FPGA や設計した回路、 FPGA のリソース(使用率)にも依存してしまうため、経験やノウハウが必要になります。そのため実際のサポートでは、FPGA や回路構成を考慮しながら、その都度、変更を行う設定を決め、それらをお客様にお伝えします。

もちろん 1 回の変更でターゲットの動作周波数を満たすこともあれば、何度も設定のカットアンドトライを行ってパフォーマンスを上げることも必要になってきます。
FPGA の大規模化によって組み込まれる機能も増 えて、実現できる機能が飛躍的に増しています。それに伴い、Quartus で設定できる機能もどんどん多くなってきています。

使い方を熟知していればどんどん使いこなして、FPGA のパフォーマンスを上げることができるのですが、設定項目が多すぎて、すべての機能をお伝えすることが難しくなりつつあります。
最近は IoT、AI、Deep Learning / Machine Learning という言葉をよく耳にするようになり、実際、AI が使われている製品やソフトウェアも数多く出回るようになりました。
そんな中、EDA ツール業界にも機械学習 (Machine Learning)機能が備わったツールが登場しました。
それが、Plunify (プルニファイ)社の InTime (インタイム)です。

InTime はコンパイルを行う毎に「機械学習」により結果を分析し、次にコンパイルするための設定を 自動で行うので、少ないコンパイル回数で目標を早く達成できます。
ということで、早速試してみました。

GUI はシンプルで設定項目も少なく(図1.)、ツールもサクサク動作し、操作性も良いです。

図1. InTime 起動画面

まず、Quartus で作成したプロジェクト・ファイルを選択します。
次に、コンパイルを行う回数を設定します。

マルチプロセッサ対応の PC の場合は、個別のプロセッサ毎に並列にコンパイルを実行させることも できますし、同一ネットワークに複数マシンが存在する場合は、各マシンを使って並列にコンパイルさせることも 可能です。
そして、Start Recipe ボタンをクリックして、コンパイルを開始し ます。(図2.)

図2. InTime 設定項目

複数ある Quartus 設定の組み合わせを InTime が機械学習で決定し コンパイルを実行してくれるので、あとは待つだけです。(図3.)

図3. InTime 実行中

InTime はQuartus の最適な設定を決めますが、バックグランドではQuartus が実行されています。

実行終了後、タイミング結果がグラフィカルにレポートされます。(図4.)

図4. InTime のレポート

縦軸は、TNS ( Total Negative Slack ) 遅延値で、横軸はラウンド 数です。

図4. の例では、1 ラウンド 10 コンパイル× 4 ラウンド実行しており、 4 ラウンド目に急速にタイ ミングが収束していることがわかります。

これが機械学習の効果ですね。

今回は、サンプルデザインを使って一通りの操作とコンパイルレポートの確認を行いました。
この InTime ツールを使うことで、使用する FPGA のスピードグレードを 1 つ下げることができデバイスコストの削減にもつながりそうな気がします。
いろいろなデザインで試してみたいです。


ここまでブログを読んで「 InTime を使ってみたいな」と思った方 に耳より情報です!
今なら Plunify 社より 2 週間の評価ライセンスが発行されており、どなたでも 無料で InTimeをお試しいただけます。
実際にタイミングが収束しないデザインがありましたら、この評価ライセンスを使用してツールの実力を実感してみてくださいね。


また、評価の時間がなかなか確保できないお客様に変わり、アルテ ィマにてコンパイル作業を請け負うプランも用意しています。
詳しくは下記をご覧ください。
Plunify

まとめ

InTime の機械学習により、 Quartus の最適設 定でコンパイルを行うことができ、FPGA の性能を最大限に引き出すことができる。

つぶやき

あ、、InTime を使うことで、私が10年以上かけて培ってきた Quartus を使った パフォーマンスアップのノウハウを知りたい人がいなくなるかも、、、