DPCT1043
目次
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 }