Intel® FPGA SDK for OpenCL™: ベスト・プラクティス・ガイド

ID 683521
日付 12/08/2017
Public
ドキュメント目次

7.4.1. アレイインデックスに基づくローカル・メモリー・バンクの幾何学的構成の最適化

デフォルトでは、 Intel® FPGA SDK for OpenCL™オフライン・コンパイラーは、ローカル・メモリー・システムを自動的にバンキングすることでパフォーマンスを向上させる可能性があります。 インテル® FPGA SDK for OpenCL™ は、ローカル・メモリー・システムのバンキングジオメトリをカスタマイズできる高度な機能が含まれています。 ローカル・メモリー・バンクのジオメトリを設定するには、OpenCLカーネルにnumbanks( Nおよびbankwidth( Mカーネル属性を含めます。

次のコード例は、 numbanksおよびbankwidthに割り当てた値に基づいて、バンクのジオメトリがどのように変化するかを示しています。

表 11.  2×4ローカル・メモリー・システムのバンクジオメトリに対するバンク数とバンク数の影響この表の最初と最後の行は、2D配列の上下のインデックスにメモリーをバンクする方法を示しています。
コードの例 バンクの幾何学
local int
__attribute__((numbanks(2),
               bankwidth(16)))
               lmem[2][4]; 
local int 
__attribute__((numbanks(2), 
               bankwidth(8))) 
               lmem[2][4]; 
local int 
__attribute__((numbanks(2), 
               bankwidth(4))) 
               lmem[2][4]; 
local int 
__attribute__((numbanks(4), 
               bankwidth(8))) 
               lmem[2][4]; 
local int
__attribute__((numbanks(4),
               bankwidth(4)))
               lmem[2][4];