インテル® FPGA SDK for OpenCL™プロ・エディション: プログラミング・ガイド

ID 683846
日付 4/01/2019
Public
ドキュメント目次

5.9.2. データ構造パディング挿入の無効化

インテル® FPGA SDK for OpenCL™オフライン・コンパイラーでは、structデータ構造体のメンバー間への自動的なパディング挿入を無効にする指示を出すことができます。
自動パディング挿入を無効にするには、カーネル・ソースコードのstructデータ構造の前に、packed属性を挿入します。
例えば、次のようになります。
struct __attribute__((packed)) Context
{
   float param1;
   float param2;
   int param3;
   uint param4;
};
__kernel void algorithm(__global float * restrict A, 
                        __global struct Context * restrict c)
{
   if ( c->param3 )
   {
      // Dereference through a pointer and so on
   }
}
詳細は、 インテル® FPGA SDK for OpenCL™ : ベスト・プラクティス・ガイドの、構造体をパディング付きまたはパディングなしで整列するの章を参照ください。