DPCT1073
目次
DPCT1073#
メッセージ#
パラメーター <parameter name> のフィールド値を推測できなかったため、呼び出しは移行されませんでした。手動でこのコードを更新する必要があります。
詳細な説明#
インテル® DPC++ 互換性ツールは、移行したコードで使用されている呼び出しパラメーターのフィールド値を推測できませんでした。
修正方法の提案#
移行されていない呼び出しを、パラメーターの実際のフィールド値を使用した DPC++ 表現に手動で置き換えます。
例えば、以下のオリジナル CUDA* コードについて考えてみます。
1 CUDA_ARRAY_DESCRIPTOR desc;
2
3 void bar(CUDA_ARRAY_DESCRIPTOR *desc_ptr) {
4 CUarray arr;
5 cuArrayCreate(&arr, desc_ptr);
6 }
7
8 void foo(CUarray_format f, size_t h, unsigned int n, size_t w) {
9 desc.Height = h;
10 desc.Width = w;
11 desc.Format = f;
12 desc.NumChannels = n;
13 bar(&desc);
14 }
このコードは、以下の SYCL* コードに移行されます。
1 size_t desc_x_ct1, desc_y_ct1;
2 unsigned desc_channel_num_ct1;
3 sycl::image_channel_type desc_channel_type_ct1;
4
5 /*
6 DPCT1082:1: Migration of CUDA_ARRAY_DESCRIPTOR * type is not supported.
7 */
8 void bar(CUDA_ARRAY_DESCRIPTOR *desc_ptr) {
9 dpct::image_matrix_p arr;
10 /*
11 DPCT1073:0: The field values of parameter 'desc_ptr' could not be deduced, so
12 the call was not migrated.手動でこのコードを更新する必要があります。
13 */
14 cuArrayCreate(&arr, desc_ptr);
15 }
16
17 void foo(sycl::image_channel_type f, size_t h, unsigned int n, size_t w) {
18 desc_y_ct1 = h;
19 desc_x_ct1 = w;
20 desc_channel_type_ct1 = f;
21 desc_channel_num_ct1 = n;
22 bar(&desc);
23 }
このコードを以下のように手動で調整します。
1 size_t desc_x_ct1, desc_y_ct1;
2 unsigned desc_channel_num_ct1;
3 sycl::image_channel_type desc_channel_type_ct1;
4
5 void bar() {
6 dpct::image_matrix_p arr;
7 arr = new dpct::image_matrix(desc_channel_type_ct1, desc_channel_num_ct1,
8 desc_x_ct1, desc_y_ct1);
9 }
10
11 void foo(sycl::image_channel_type f, size_t h, unsigned int n, size_t w) {
12 desc_y_ct1 = h;
13 desc_x_ct1 = w;
14 desc_channel_type_ct1 = f;
15 desc_channel_num_ct1 = n;
16 bar();
17 }