防御的プログラミング - 2022.1 日本語

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 日本語

Vitis コンパイラでは、非常に効率的なインプリメンテーションを作成できますが、場合によってはインプリメンテーションの問題が発生することがあります。たとえば、プロセスに書き込みトランザクションを完了するのに十分なデータがないときに書き込み要求が発行される場合などです。複数の同時カーネルがこの問題の影響を受け、カーネルの読み出し要求を実行するのに入力読み出しが完了することが必要な場合、デッドロック状態が発生する可能性があります。

このような状況を回避するため、アダプターに保守モードがあります。このモードでは、原則として、書き込みを完了するのに必要なデータが揃うまで、書き込み要求を遅らせます。このモードを有効にするには、コンパイル時に v++ コンパイラに次の --advanced.param オプションを指定します。

--advanced.param:compiler.axiDeadLockFree=yes

このモードを有効にするとパフォーマンスに影響することがあるので、防御的プログラミング手法として使用し、開発およびテスト時にこのオプションを挿入して最適化時には削除することもできます。アクセラレータが繰り返しハングする場合にも、このオプションを追加してみることをお勧めします。