DPCT1043#

メッセージ#

SYCL* ではバージョン管理の API が異なります。初期コードが生成されましたが、調整する必要があります。

詳細な説明#

生成されたコードは sycl::info::device::version を使用しており、オリジナルコードとは異なる情報を提供し、異なるタイプを使用しています。

修正方法の提案#

生成されたコードを調整します。

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

1   void foo() { 
2     int version; 
3     cudaDriverGetVersion(&version); 
4     if (version >= 12000) { 
5       code path 1 
6     } else { 
7       code path 2 
8     } 
9   }

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

1   void foo() { 
2     int version; 
3     /* 
4     DPCT1043:0: The version-related API is different in SYCL. An initial code was 
5     generated, but you need to adjust it.
6     */ 
7     version = dpct::get_current_device().get_major_version(); 
8     if (version >= 12000) { 
9        ... 
10    } else { 
11       ... 
12    } 
13  }

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

1   void foo() { 
2     code path 1 
3   }