Skip to content

Commit 143d217

Browse files
authored
[SYCLomatic] Report DPCT diagnostic warning for unsupported NVTX API (#881)
Signed-off-by: Ni, Wenhui <[email protected]>
1 parent 5061379 commit 143d217

File tree

3 files changed

+117
-2
lines changed

3 files changed

+117
-2
lines changed

clang/lib/DPCT/APINames_NVTX.inc

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
//===--------------- APINames_NVTX.inc ------------------------------------===//
2+
//
3+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4+
// See https://llvm.org/LICENSE.txt for license information.
5+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6+
//
7+
//===----------------------------------------------------------------------===//
8+
/****************************************************************************
9+
*
10+
* ENTRY(Interface APIName, APINAME, ProcessedOrNot, Flag, Priority, MigrationDesc)
11+
* Interface APIName: name of Interface API available in official document
12+
* APIName: name of API
13+
*
14+
* ProcessedOrNot: false|true
15+
* false: this API has not been processed.
16+
* true: this API has been processed, need check MigrationDesc field to
17+
see if it has be migrated Commently.
18+
*
19+
* Flag: Bit map for all kind of flag for this API.
20+
* default(all bits are 0): NO_FLAG
21+
* bit 0: API_CALL_REMOVED
22+
* bit 1: API_CALL_UNSUPPORTED
23+
* Priority: migration priority, eg. P0 - P4
24+
* P0: should support in Beta release.
25+
* P4: should support in Gold.
26+
*
27+
* MigrationDesc: Comment[: Comment] | Unsupported: Comment
28+
* Comment: this API has been migrated.
29+
* Unsupported: this API can not be migrated currently.
30+
* Must add Comment to explain why this API is Unsupported.
31+
* Comment: extra comment on the migration.
32+
*
33+
****************************************************************************/
34+
35+
ENTRY(nvtxNameCuDeviceA, nvtxNameCuDeviceA, false, NO_FLAG, P4, "comment")
36+
ENTRY(nvtxNameCuDeviceW, nvtxNameCuDeviceW, false, NO_FLAG, P4, "comment")
37+
ENTRY(nvtxNameCuContextA, nvtxNameCuContextA, false, NO_FLAG, P4, "comment")
38+
ENTRY(nvtxNameCuContextW, nvtxNameCuContextW, false, NO_FLAG, P4, "comment")
39+
ENTRY(nvtxNameCuStreamA, nvtxNameCuStreamA, false, NO_FLAG, P4, "comment")
40+
ENTRY(nvtxNameCuStreamW, nvtxNameCuStreamW, false, NO_FLAG, P4, "comment")
41+
ENTRY(nvtxNameCuEventA, nvtxNameCuEventA, false, NO_FLAG, P4, "comment")
42+
ENTRY(nvtxNameCuEventW, nvtxNameCuEventW, false, NO_FLAG, P4, "comment")
43+
ENTRY(nvtxNameCudaDeviceA, nvtxNameCudaDeviceA, false, NO_FLAG, P4, "comment")
44+
ENTRY(nvtxNameCudaDeviceW, nvtxNameCudaDeviceW, false, NO_FLAG, P4, "comment")
45+
ENTRY(nvtxNameCudaStreamA, nvtxNameCudaStreamA, false, NO_FLAG, P4, "comment")
46+
ENTRY(nvtxNameCudaStreamW, nvtxNameCudaStreamW, false, NO_FLAG, P4, "comment")
47+
ENTRY(nvtxNameCudaEventA, nvtxNameCudaEventA, false, NO_FLAG, P4, "comment")
48+
ENTRY(nvtxNameCudaEventW, nvtxNameCudaEventW, false, NO_FLAG, P4, "comment")
49+
ENTRY(nvtxInitialize, nvtxInitialize, false, NO_FLAG, P4, "comment")
50+
ENTRY(nvtxDomainMarkEx, nvtxDomainMarkEx, false, NO_FLAG, P4, "comment")
51+
ENTRY(nvtxMarkEx, nvtxMarkEx, false, NO_FLAG, P4, "comment")
52+
ENTRY(nvtxMarkA, nvtxMarkA, false, NO_FLAG, P4, "comment")
53+
ENTRY(nvtxMarkW, nvtxMarkW, false, NO_FLAG, P4, "comment")
54+
ENTRY(nvtxDomainRangeStartEx, nvtxDomainRangeStartEx, false, NO_FLAG, P4, "comment")
55+
ENTRY(nvtxRangeStartEx, nvtxRangeStartEx, false, NO_FLAG, P4, "comment")
56+
ENTRY(nvtxRangeStartA, nvtxRangeStartA, false, NO_FLAG, P4, "comment")
57+
ENTRY(nvtxRangeStartW, nvtxRangeStartW, false, NO_FLAG, P4, "comment")
58+
ENTRY(nvtxDomainRangeEnd, nvtxDomainRangeEnd, false, NO_FLAG, P4, "comment")
59+
ENTRY(nvtxRangeEnd, nvtxRangeEnd, false, NO_FLAG, P4, "comment")
60+
ENTRY(nvtxDomainRangePushEx, nvtxDomainRangePushEx, false, NO_FLAG, P4, "comment")
61+
ENTRY(nvtxRangePushEx, nvtxRangePushEx, false, NO_FLAG, P4, "comment")
62+
ENTRY(nvtxRangePushA, nvtxRangePushA, false, NO_FLAG, P4, "comment")
63+
ENTRY(nvtxRangePushW, nvtxRangePushW, false, NO_FLAG, P4, "comment")
64+
ENTRY(nvtxDomainRangePop, nvtxDomainRangePop, false, NO_FLAG, P4, "comment")
65+
ENTRY(nvtxRangePop, nvtxRangePop, false, NO_FLAG, P4, "comment")
66+
ENTRY(nvtxDomainResourceCreate, nvtxDomainResourceCreate, false, NO_FLAG, P4, "comment")
67+
ENTRY(nvtxDomainResourceDestroy, nvtxDomainResourceDestroy, false, NO_FLAG, P4, "comment")
68+
ENTRY(nvtxDomainNameCategoryA, nvtxDomainNameCategoryA, false, NO_FLAG, P4, "comment")
69+
ENTRY(nvtxDomainNameCategoryW, nvtxDomainNameCategoryW, false, NO_FLAG, P4, "comment")
70+
ENTRY(nvtxNameCategoryA, nvtxNameCategoryA, false, NO_FLAG, P4, "comment")
71+
ENTRY(nvtxNameCategoryW, nvtxNameCategoryW, false, NO_FLAG, P4, "comment")
72+
ENTRY(nvtxNameOsThreadA, nvtxNameOsThreadA, false, NO_FLAG, P4, "comment")
73+
ENTRY(nvtxNameOsThreadW, nvtxNameOsThreadW, false, NO_FLAG, P4, "comment")
74+
ENTRY(nvtxDomainRegisterStringA, nvtxDomainRegisterStringA, false, NO_FLAG, P4, "comment")
75+
ENTRY(nvtxDomainRegisterStringW, nvtxDomainRegisterStringW, false, NO_FLAG, P4, "comment")
76+
ENTRY(nvtxDomainCreateA, nvtxDomainCreateA, false, NO_FLAG, P4, "comment")
77+
ENTRY(nvtxDomainCreateW, nvtxDomainCreateW, false, NO_FLAG, P4, "comment")
78+
ENTRY(nvtxDomainDestroy, nvtxDomainDestroy, false, NO_FLAG, P4, "comment")
79+
ENTRY(nvtxDomainSyncUserCreate, nvtxDomainSyncUserCreate, false, NO_FLAG, P4, "comment")
80+
ENTRY(nvtxDomainSyncUserDestroy, nvtxDomainSyncUserDestroy, false, NO_FLAG, P4, "comment")
81+
ENTRY(nvtxDomainSyncUserAcquireStart, nvtxDomainSyncUserAcquireStart, false, NO_FLAG, P4, "comment")
82+
ENTRY(nvtxDomainSyncUserAcquireFailed, nvtxDomainSyncUserAcquireFailed, false, NO_FLAG, P4, "comment")
83+
ENTRY(nvtxDomainSyncUserAcquireSuccess, nvtxDomainSyncUserAcquireSuccess, false, NO_FLAG, P4, "comment")
84+
ENTRY(nvtxDomainSyncUserReleasing, nvtxDomainSyncUserReleasing, false, NO_FLAG, P4, "comment")
85+
ENTRY(nvtxNameClDeviceA, nvtxNameClDeviceA, false, NO_FLAG, P4, "comment")
86+
ENTRY(nvtxNameClDeviceW, nvtxNameClDeviceW, false, NO_FLAG, P4, "comment")
87+
ENTRY(nvtxNameClContextA, nvtxNameClContextA, false, NO_FLAG, P4, "comment")
88+
ENTRY(nvtxNameClContextW, nvtxNameClContextW, false, NO_FLAG, P4, "comment")
89+
ENTRY(nvtxNameClCommandQueueA, nvtxNameClCommandQueueA, false, NO_FLAG, P4, "comment")
90+
ENTRY(nvtxNameClCommandQueueW, nvtxNameClCommandQueueW, false, NO_FLAG, P4, "comment")
91+
ENTRY(nvtxNameClMemObjectA, nvtxNameClMemObjectA, false, NO_FLAG, P4, "comment")
92+
ENTRY(nvtxNameClMemObjectW, nvtxNameClMemObjectW, false, NO_FLAG, P4, "comment")
93+
ENTRY(nvtxNameClSamplerA, nvtxNameClSamplerA, false, NO_FLAG, P4, "comment")
94+
ENTRY(nvtxNameClSamplerW, nvtxNameClSamplerW, false, NO_FLAG, P4, "comment")
95+
ENTRY(nvtxNameClProgramA, nvtxNameClProgramA, false, NO_FLAG, P4, "comment")
96+
ENTRY(nvtxNameClProgramW, nvtxNameClProgramW, false, NO_FLAG, P4, "comment")
97+
ENTRY(nvtxNameClEventA, nvtxNameClEventA, false, NO_FLAG, P4, "comment")
98+
ENTRY(nvtxNameClEventW, nvtxNameClEventW, false, NO_FLAG, P4, "comment")

clang/lib/DPCT/MapNames.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4372,15 +4372,16 @@ std::map<std::string, bool> MigrationStatistics::MigrationTable{
43724372
#include "APINames_CUB.inc"
43734373
#include "APINames_NCCL.inc"
43744374
#include "APINames_NVML.inc"
4375+
#include "APINames_NVTX.inc"
43754376
#include "APINames_cuBLAS.inc"
4377+
#include "APINames_cuDNN.inc"
43764378
#include "APINames_cuFFT.inc"
4377-
#include "APINames_nvGRAPH.inc"
43784379
#include "APINames_cuRAND.inc"
43794380
#include "APINames_cuSOLVER.inc"
43804381
#include "APINames_cuSPARSE.inc"
4382+
#include "APINames_nvGRAPH.inc"
43814383
#include "APINames_nvJPEG.inc"
43824384
#include "APINames_thrust.inc"
4383-
#include "APINames_cuDNN.inc"
43844385
#undef ENTRY_MEMBER_FUNCTION
43854386
#undef ENTRY
43864387
};

clang/test/dpct/NVTX/NVTX-linux.cu

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// UNSUPPORTED: system-windows
2+
// RUN: dpct --format-range=none -in-root %S -out-root %T %S/NVTX-linux.cu --cuda-include-path="%cuda-path/include" -- -std=c++14 -x cuda --cuda-host-only
3+
// RUN: FileCheck --input-file %T/NVTX-linux.dp.cpp --match-full-lines %s
4+
5+
// CHECK: #include <sycl/sycl.hpp>
6+
// CHECK: #include <dpct/dpct.hpp>
7+
#include "nvToolsExtCuda.h"
8+
9+
int main() {
10+
CUdevice *device;
11+
cuDeviceGet(device, 0);
12+
// CHECK: /*
13+
// CHECK-NEXT: DPCT1007:{{[0-9]+}}: Migration of nvtxNameCuDeviceA is not supported.
14+
// CHECK-NEXT: */
15+
nvtxNameCuDeviceA(*device, "nvtx_device");
16+
}

0 commit comments

Comments
 (0)