DPCT1060#

メッセージ#

SYCL* レンジは、1D、2D、または 3D ベクトルにのみ移行できます。コードを調整します。

説明#

この警告は、元のコードのメモリーの次元数が 3 を超えると発行されます。SYCL* レンジは 1、2、3 次元のみをサポートするため、移行されたコードは SYCL* に準拠しません。

移行されたコードを修正するには、低次元配列を用いて高次元配列をシミュレートします。

次の変更例は、3D 配列によって 4D 配列をシミュレートする方法を示します。

以下は、移行された SYCL* コードです。

1 dpct::constant_memory<int, 4> array(dimX, dimY, dimZ, dimW); 
2 void kernel(sycl::id<1> idx, 
3 dpct::accessor<int, dpct::constant, 4> const_array) { 
4...5 ... = const_array[x][y][z][w]; 
6 ... 7 }

このコードを手動で以下のように調整します。

1 dpct::constant_memory<int, 3> array(dimX, dimY, dimZ * dimW); 
2 void kernel(sycl::id<1> idx, 
3 dpct::accessor<int, dpct::constant, 3> const_array) { 
4 ... = const_array[x][y][w * dimZ + z]; 
5 ... 6 }

修正方法の提案#

コードを修正する必要があります。