mirror of
https://github.com/smyalygames/FiniteVolumeGPU.git
synced 2025-09-14 19:22:17 +02:00
67 lines
1.8 KiB
CMake
67 lines
1.8 KiB
CMake
cmake_minimum_required(VERSION 3.21)
|
|
cmake_policy(VERSION 3.21.3...3.31.6)
|
|
|
|
if(NOT DEFINED ROCM_PATH)
|
|
if(NOT DEFINED ENV{ROCM_PATH})
|
|
execute_process(COMMAND hipconfig --rocmpath
|
|
OUTPUT_VARIABLE ROCM_PATH)
|
|
message(STATUS "ROCm SDK path: ${ROCM_PATH}")
|
|
set(ROCM_PATH "${ROCM_PATH}" CACHE PATH
|
|
"Path to where ROCm is installed")
|
|
else()
|
|
set(ROCM_PATH $ENV{ROCM_PATH} CACHE PATH
|
|
"Path to where ROCm is installed")
|
|
endif()
|
|
endif()
|
|
set(CMAKE_HIP_FLAGS "${CMAKE_HIP_FLAGS} -isystem ${ROCM_PATH}/include")
|
|
|
|
project(FiniteVolumeGPU LANGUAGES CXX HIP CUDA)
|
|
|
|
set(CMAKE_CXX_STANDARD 23)
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
# Dependencies
|
|
|
|
find_package(hip REQUIRED)
|
|
|
|
|
|
|
|
# HIP
|
|
if((DEFINED ENV{HIP_PLATFORM}) AND ("$ENV{HIP_PLATFORM}" STREQUAL "nvidia"))
|
|
message("Building for NVIDIA backend.")
|
|
|
|
enable_language(CUDA)
|
|
set(CUDA_SEPARABLE_COMPILATION ON)
|
|
|
|
find_package(CUDAToolkit REQUIRED)
|
|
|
|
set(kernel_lang CUDA)
|
|
set(kernel_libs CUDA::cudart CUDA::cuda_driver)
|
|
|
|
set(CMAKE_CUDA_ARCHITECTURES $ENV{GPU_ARCH})
|
|
|
|
# Remove any preprocessor definitions for AMD
|
|
remove_definitions(-D__HIP_PLATFORM_HCC__ -D__HIP_PLATFORM_AMD__)
|
|
# Add CUDA preprocessor definitions
|
|
add_definitions(-D__HIP_PLATFORM_NVCC__ -D__HIP_PLATFORM_NVIDIA__)
|
|
else()
|
|
message("Building for AMD backend.")
|
|
|
|
set(kernel_lang HIP)
|
|
set(kernel_libs hip::device)
|
|
|
|
set(CMAKE_HIP_ARCHITECTURES $ENV{GPU_ARCH})
|
|
|
|
# Remove any preprocessor definitions for CUDA
|
|
remove_definitions(-D__HIP_PLATFORM_NVCC__ -D__HIP_PLATFORM_NVIDIA__)
|
|
# Add AMD preprocessor definitions
|
|
add_definitions(-D__HIP_PLATFORM_HCC__ -D__HIP_PLATFORM_AMD__)
|
|
endif()
|
|
|
|
set(CMAKE_CXX_STANDARD 23)
|
|
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
add_subdirectory(GPUSimulators/gpu/hip)
|
|
add_subdirectory(GPUSimulators/gpu/cuda)
|