diff --git a/host-configs/lassen-4.14.0-ppc64le-gcc@8.3.1-cuda@10.1.243.cmake b/host-configs/lassen-4.14.0-ppc64le-gcc@8.3.1-cuda@10.1.243.cmake index 502d9a1c4..8e2adf7e9 100644 --- a/host-configs/lassen-4.14.0-ppc64le-gcc@8.3.1-cuda@10.1.243.cmake +++ b/host-configs/lassen-4.14.0-ppc64le-gcc@8.3.1-cuda@10.1.243.cmake @@ -28,4 +28,4 @@ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath -Wl,/usr/tce/pa # path to global hwloc install set(HWLOC_DIR "/usr/global/tools/hwloc/blueos_3_ppc64le_ib/hwloc-1.11.10-cuda/" CACHE PATH "") -set(NVML_DIR "/usr/tce/packages/cuda/cuda-10.1.243" CACHE PATH "") +set(NVML_ROOT "/usr/tce/packages/cuda/cuda-10.1.243" CACHE PATH "") diff --git a/src/CMake/thirdparty/FindNVML.cmake b/src/CMake/thirdparty/FindNVML.cmake index 380857b82..5e67dd1e7 100644 --- a/src/CMake/thirdparty/FindNVML.cmake +++ b/src/CMake/thirdparty/FindNVML.cmake @@ -3,8 +3,21 @@ # # SPDX-License-Identifier: MIT -# First check for user-specified NVML_DIR -if(NVML_DIR) +# First try finding CUDAToolkit +find_package(CUDAToolkit) + +if(CUDAToolkit_FOUND) + set(NVML_FOUND TRUE CACHE INTERNAL "") + + find_path(NVML_INCLUDE_DIRS + NAMES nvml.h + REQUIRED + HINTS ${CUDAToolkit_INCLUDE_DIRS}) + set(NVML_INCLUDE_DIRS ${NVML_INCLUDE_DIRS} CACHE PATH "" FORCE) + + set(NVML_LIBRARY CUDA::nvml CACHE PATH "" FORCE) +# If CUDAToolkit wasn't found, check for user-specified NVML_DIR +elseif(NVML_DIR) message(STATUS "Looking for NVML using NVML_DIR = ${NVML_DIR}") set(NVML_FOUND TRUE CACHE INTERNAL "") @@ -23,10 +36,14 @@ if(NVML_DIR) elseif(NOT NVML_FOUND) find_path(NVML_INCLUDE_DIRS NAMES nvml.h + REQUIRED + HINTS ${NVML_ROOT}/include ) find_library(NVML_LIBRARY - NAMES libnvml.so + NAMES nvml nvidia-ml + REQUIRED + HINTS ${NVML_ROOT}/lib/stubs ) if(NVML_INCLUDE_DIRS AND NVML_LIBRARY) @@ -42,8 +59,3 @@ elseif(NOT NVML_FOUND) message(STATUS " [*] NVML_LIBRARY = ${NVML_LIBRARY}") endif() endif() - -# Abort if all methods fail -if(NOT NVML_FOUND) - message(FATAL_ERROR "Nvidia support needs explict NVML_DIR") -endif() diff --git a/src/variorum/CMakeLists.txt b/src/variorum/CMakeLists.txt index fab2688c7..e696d5a48 100644 --- a/src/variorum/CMakeLists.txt +++ b/src/variorum/CMakeLists.txt @@ -135,7 +135,7 @@ if(VARIORUM_WITH_INTEL_GPU) target_link_libraries(variorum PUBLIC ${APMIDG_LIBRARY}) endif() if(VARIORUM_WITH_NVIDIA_GPU) -target_link_libraries(variorum PUBLIC ${NVML_HEADER}) +target_link_libraries(variorum PUBLIC ${NVML_LIBRARY}) endif() if(VARIORUM_WITH_AMD_CPU) target_link_libraries(variorum PUBLIC ${ESMI_LIBRARY})