DPCT1059#
メッセージ#
SYCL* は、4 チャネルのイメージ形式のみをサポートしています。コードを調整します。
説明#
SYCL* は、4 チャネルのイメージ形式のみをサポートしています。この警告は、ツールがオリジナルコードに対応するサポートされていないイメージ形式のコードを生成すると出力されます。移行したコードでイメージ形式を変更できます。この回避策は、コードのパフォーマンスに影響する可能性があります。
例えば、以下は移行された SYCL* コードです。
1 // migrated SYCL code, which is using unsupported image format: 2
3 dpct::image_wrapper<cl::sycl::uint2, 2> tex; // 2-channel image is not supported
4
5 void test_image(dpct::image_accessor_ext<cl::sycl::uint2, 2> acc) {
6 cl::sycl::uint2 tex_data;
7 tex_data = acc.read(0, 0);
8 }
9 int main() {
10 ... dpct::get_default_queue().submit([&](cl::sycl::handler &cgh) {
11 ... auto acc = tex.get_access(cgh);
12 auto smpl = tex.get_sampler();
13 ... cgh.single_task<class dpct_single_kernel>([=] {
14 test_image(dpct::image_accessor_ext<cl::sycl::uint2, 2>(smpl, acc));
15 });
16 });
17...18 }
このコードを手動で以下のように調整します。
1 dpct::image_wrapper<cl::sycl::uint4, 2> tex;
2
3 void test_image(dpct::image_accessor_ext<cl::sycl::uint4, 2> acc) {
4 cl::sycl::uint4 tex_data;
5 tex_data = acc.read(0, 0);
6 }
7 int main() {
8 ... dpct::get_default_queue().submit([&](cl::sycl::handler &cgh) {
9 ... auto acc = tex.get_access(cgh);
10 auto smpl = tex.get_sampler();
11 ... cgh.single_task<class dpct_single_kernel>([=] {
12 test_image(dpct::image_accessor_ext<cl::sycl::uint4, 2>(smpl, acc));
13 });
14 });
15 ... 16 }
修正方法の提案#
コードを修正する必要があります。