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 }