インテルのみ表示可能 — GUID: rol1511996059714
Ixiasoft
3.1. コンポーネントに適したインターフェイスの選択
コンポーネント・インターフェイスが異なると、コンポーネントの結果の品質 (QoR) に影響します。このとき、コンポーネント・アルゴリズムは変更されません。インターフェイスの違いによる影響について考慮した上で、コンポーネントのインターフェイスを選択してください。
コンポーネントに最適なインターフェイスが、すぐに明らかにならない場合もあるでしょう。その場合は、さまざまなインターフェイスをコンポーネントに対して試してみて、最適なQoRを実現することが必要になることがあります。 インテル®HLSコンパイラー プロ・エディションで提供されるコンポーネントの高速コンパイル時間や、その結果得られるHigh Level Designレポートを活用して、コンポーネントに最適なQoRを提供するインターフェイスを決定します。
この項では、ベクトルの追加例を使用して、コンポーネント・アルゴリズムを同じ状態に保った場合のコンポーネント・インターフェイスの変更による影響について説明します。この例では、ベクトル a とベクトル b の2つの入力ベクトルがあり、結果をベクトル c に格納します。ベクトルの長さは N です (これは非常に大きくなる可能性があります)。
#pragma unroll 8 for (int i = 0; i < N; ++i) { c[i] = a[i] + b[i]; }
インテル®HLSコンパイラー プロ・エディションでは、ループに依存関係が存在しない場合、このアルゴリズムの並列性を抽出するために、ループをパイプライン処理します。また、ループを (係数8で) 展開することで、より多くの並列性が抽出できます。
生成されたコンポーネントの理想的なレイテンシーは、N/8サイクルです。次の項で挙げる例では、1024の値は N に使用されるため、理想的なレイテンシーは128サイクル (1024/8) です。
次のいくつかの項で示すとおり、この例のバリエーションでは、異なるインターフェイスを使用しています。それぞれのインターフェイスがこのコンポーネントのQoRにどのような影響を及ぼすかを確認してください。
このような例のそれぞれのバリエーションについては、 <quartus_installdir>/hls/examples/tutorials/interfaces/overview にあるチュートリアルを確認してください。