cl_khr_byte_addressable_store
提供: Tommy6
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 に書き込むことはできません }
cl_khr_bye_addressable_store 拡張機能は、この制約を受けないようにするものです。
OpenCL 1.1 でこの機能はコア仕様として取り込ました。