cl_khr_byte_addressable_store

提供: Tommy6
移動: 案内検索
OpenCL > OpenCLマニュアル > OpenCL拡張機能 > cl khr byte addressable store

OpenCL 1.1 でこの機能はコア機能になりました。

OpenCL 1.1以前のOpenCLでは以下のような制約がありました

32ビットより小さな組み込み型 char, uchar, char2, uchar2, short, ushort, half には以下のような制約があります。

  • char, uchar, char2, uchar2, short, ushort, half 型のポインタや配列、あるいは構造体の要素で char, uchar, char2, uchar2, short, ushort, half 型のものへの書き込みはサポートされていません。

以下は、32ビットより小さい組み込みデータ型について、サポートされていない操作の例です。

__kernel void
do_proc (__global char *pA, short b, __global short *pB) {
  char x[100];
  __private char *px = x;
  int id = (int)get_global_id(0);
  short f;
  f = pB[id] + b; ← 問題ありません
  px[1] = pA[1]; ← エラー。px に書き込むことはできません
  pB[id] = b; ← エラー。pB に書き込むことはできません
}


―――― Revision 48, Version 1.0, The OpenCL Specification より翻訳

cl_khr_bye_addressable_store 拡張機能は、この制約を受けないようにするものです。

OpenCL 1.1 でこの機能はコア仕様として取り込ました。