summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2022-08-15 15:26:15 (GMT)
committerKitware Robot <kwrobot@kitware.com>2022-08-15 15:26:23 (GMT)
commit4befac3b328a35e7a1eb34ce229f13710fa651a2 (patch)
tree9c61c182e664071c954bbc62cecfaebbb0900866
parenta1dbe7b31735b3def3dcfb6334a5576b7750db63 (diff)
parentcd200c6c2d21806d7ba064f4edf45a5c94094286 (diff)
downloadCMake-4befac3b328a35e7a1eb34ce229f13710fa651a2.zip
CMake-4befac3b328a35e7a1eb34ce229f13710fa651a2.tar.gz
CMake-4befac3b328a35e7a1eb34ce229f13710fa651a2.tar.bz2
Merge topic 'nvtx3'
cd200c6c2d FindCUDAToolkit: nvtx3 target Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7568
-rw-r--r--Help/release/dev/find-cuda-toolkit-nvtx3.rst8
-rw-r--r--Modules/FindCUDAToolkit.cmake32
2 files changed, 40 insertions, 0 deletions
diff --git a/Help/release/dev/find-cuda-toolkit-nvtx3.rst b/Help/release/dev/find-cuda-toolkit-nvtx3.rst
new file mode 100644
index 0000000..b16ed9f
--- /dev/null
+++ b/Help/release/dev/find-cuda-toolkit-nvtx3.rst
@@ -0,0 +1,8 @@
+find-cuda-toolkit-nvtx3
+-----------------------
+
+* The :module:`FindCUDAToolkit` module now provides a target for
+ :ref:`nvtx3 <cuda_toolkit_nvtx3>` for CUDA 10.0+, which supersedes
+ :ref:`nvToolsExt <cuda_toolkit_nvToolsExt>`. A deprecation warning is emitted
+ when using ``nvToolsExt`` if the project requires CMake 3.25 and CUDA 10.0+
+ is used.
diff --git a/Modules/FindCUDAToolkit.cmake b/Modules/FindCUDAToolkit.cmake
index 538e132..c1368da 100644
--- a/Modules/FindCUDAToolkit.cmake
+++ b/Modules/FindCUDAToolkit.cmake
@@ -121,6 +121,7 @@ of the following libraries that are part of the CUDAToolkit:
- :ref:`nvidia-ML<cuda_toolkit_nvML>`
- :ref:`nvRTC<cuda_toolkit_nvRTC>`
- :ref:`nvToolsExt<cuda_toolkit_nvToolsExt>`
+- :ref:`nvtx3<cuda_toolkit_nvtx3>`
- :ref:`OpenCL<cuda_toolkit_opencl>`
- :ref:`cuLIBOS<cuda_toolkit_cuLIBOS>`
@@ -362,6 +363,8 @@ Targets Created:
nvToolsExt
""""""""""
+.. deprecated:: 3.25 With CUDA 10.0+, use :ref:`nvtx3 <cuda_toolkit_nvtx3>`.
+
The `NVIDIA Tools Extension <https://docs.nvidia.com/gameworks/content/gameworkslibrary/nvtx/nvidia_tools_extension_library_nvtx.htm>`_.
This is a shared library only.
@@ -369,6 +372,20 @@ Targets Created:
- ``CUDA::nvToolsExt``
+.. _`cuda_toolkit_nvtx3`:
+
+nvtx3
+"""""
+
+.. versionadded:: 3.25
+
+The header-only `NVIDIA Tools Extension Library <https://nvidia.github.io/NVTX/doxygen/index.html>`_.
+Introduced in CUDA 10.0.
+
+Targets created:
+
+- ``CUDA::nvtx3``
+
.. _`cuda_toolkit_opencl`:
OpenCL
@@ -1011,6 +1028,21 @@ if(CUDAToolkit_FOUND)
endif()
_CUDAToolkit_find_and_add_import_lib(nvToolsExt ALT nvToolsExt64)
+ if(CUDAToolkit_VERSION VERSION_GREATER_EQUAL 10.0)
+ # nvToolsExt is deprecated since nvtx3 introduction.
+ # Warn only if the project requires a sufficiently new CMake to make migration possible.
+ if(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_GREATER_EQUAL 3.25)
+ set_property(TARGET CUDA::nvToolsExt PROPERTY DEPRECATION "nvToolsExt has been superseded by nvtx3 since CUDA 10.0 and CMake 3.25. Use CUDA::nvtx3 and include <nvtx3/nvToolsExt.h> instead.")
+ endif()
+
+ # Header-only variant. Uses dlopen().
+ if(NOT TARGET CUDA::nvtx3)
+ add_library(CUDA::nvtx3 INTERFACE IMPORTED)
+ target_include_directories(CUDA::nvtx3 SYSTEM INTERFACE "${CUDAToolkit_INCLUDE_DIRS}")
+ target_link_libraries(CUDA::nvtx3 INTERFACE ${CMAKE_DL_LIBS})
+ endif()
+ endif()
+
_CUDAToolkit_find_and_add_import_lib(OpenCL)
endif()