DPCT1074#

メッセージ#

SYCL* イメージクラスは、オリジナルコードで使用されている一部のフラグをサポートしていません。サポートされないフラグは無視されます。SYCL* イメージから読み取られたデータは、元のコードで指定されるように正規化できませんでした。

説明#

SYCL* イメージから読み取ったデータを、標準の SYCL* API を使用して (0, 1] の範囲の浮動小数点に正規化することができません。オリジナルコードで使用されているフラグは、座標正規化モードを除いてすべて無視されます。

修正方法の提案#

コードを手動で調整してください。

例えば、以下のオリジナル CUDA* コードについて考えてみます。

1 cuSetTexFlags(tex, CU_TRSF_NORMALIZED_COORDINATES); // Need manually fix the read code if the flag CU_TRSF_READ_AS_INTEGER is unset. 2 ... 3 result = tex2D(tex, 0.5f, 0.5f);

このコードは、以下の SYCL* コードに移行されます。

1 tex.set(sycl::coordinate_normalization_mode::normalized); 
2 ... 3 result = tex.read(0.5f, 0.5f); // data normalization does not match original code

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

1 tex.set(sycl::coordinate_normalization_mode::normalized); 
2 ... 3 result = normalization(tex.read(0.5f, 0.5f)); // Implement the function "normalization" to normalize the result data as required.