DPCT1076#

メッセージ#

デバイス属性を認識できませんでした。ソースコードの調整が必要な場合があります。

詳細な説明#

この警告は、オリジナルコードのデバイス属性パラメーターが列挙型定数ではなく、列挙型変数であり、推測できない場合に表示されます。

修正方法の提案

コードを確認して、調整してください。

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

1  void foo(bool condition, int *val) { 
2   cudaDeviceAttr attr; 
3   if (condition) 
4     attr = cudaDevAttrHostNativeAtomicSupported; 
5   else 
6     attr = cudaDevAttrComputeCapabilityMajor; 
7 
8    ...
9 
10  cudaDeviceGetAttribute(val, attr, 0); 
11 }

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

1  void foo(bool condition, int *val) { 
2   int attr; 
3   if (condition) 
4     attr = 86; 
5   else 
6     attr = 75; 
7 
8     ... 
9 
10  /* 
11  DPCT1076:1: The device attribute was not recognized. You may need to adjust 
12  the code.
13  */ 
14  cudaDeviceGetAttribute(val, attr, 0); 
15 }

このコードは次のように書き換えられます。

1  void foo(bool condition, int *val) { 
2   ... 
3 
4   if (condition) 
5     *val = dpct::dev_mgr::instance().get_device(0).is_native_atomic_supported(); 
6   else 
7     *val = dpct::dev_mgr::instance().get_device(0).get_major_version(); 
8  }

ヘルプが必要な場合は、SYCL* への移行フォーラム (英語) にアクセスしてください。