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: SYCL* ではバージョン管理の API が異なります。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 }