add cuda building and compilation. There is still some hardcoded stuff

pull/28/head
gnumlab 1 year ago
parent 1b667c2c1e
commit f953c52591

@ -651,7 +651,48 @@ if(MPI_FOUND)
endif()
endif()
# Optionally check for CUDA requirement
option(PSB_BUILD_CUDA "Build CUDA code" OFF)
if(PSB_BUILD_CUDA)
if(NOT DEFINED PSB_CUDA_PATH)
set(PSB_CUDA_PATH "/opt/cuda/12.8")
endif()
# Include the CMakeLists for the cbind library
include(${CMAKE_CURRENT_LIST_DIR}/cuda/CMakeLists.txt)
include_directories("${PSB_CUDA_PATH}/include")
message(STATUS "${PSB_CUDA_PATH}")
# find_package(CUDA REQUIRED)
enable_language(CUDA)
# Check for CUDA version
set(PSB_CUDA_VERSION 12800)
if(PSB_CUDA_VERSION)
message(STATUS "CUDA version: ${PSB_CUDA_VERSION}")
# Define macros for CUDA version
# add_definitions(-DPSB_HAVE_CUDA)
# add_definitions(-DPSB_CUDA_VERSION=${PSB_CUDA_VERSION})
math(EXPR PSB_CUDA_SHORT_VERSION "${PSB_CUDA_VERSION} / 1000")
# add_definitions(-DPSB_CUDA_SHORT_VERSION=${PSB_CUDA_SHORT_VERSION})
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DPSB_HAVE_CUDA")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DPSB_CUDA_VERSION=${PSB_CUDA_VERSION}")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DPSB_CUDA_SHORT_VERSION=${PSB_CUDA_SHORT_VERSION}")
set(CHAVECUDA "#define PSB_HAVE_CUDA")
set(CSHORTVCUDA "#define PSB_CUDA_SHORT_VERSION ${PSB_CUDA_SHORT_VERSION}")
set(CVERSIONCUDA "#define PSB_CUDA_VERSION ${PSB_CUDA_VERSION}")
else()
message(FATAL_ERROR "CUDA version not found!")
endif()
endif()
#------------------------------------------
# Configure the psb_config.h file
@ -955,46 +996,46 @@ message(STATUS "Copied .h files to ${CMAKE_BINARY_DIR}/include")
# Optionally check for CUDA requirement
option(PSB_BUILD_CUDA "Build CUDA code" OFF)
#option(PSB_BUILD_CUDA "Build CUDA code" OFF)
if(PSB_BUILD_CUDA)
if(NOT DEFINED PSB_CUDA_PATH)
set(PSB_CUDA_PATH "/opt/cuda/12.8")
endif()
# if(NOT DEFINED PSB_CUDA_PATH)
# set(PSB_CUDA_PATH "/opt/cuda/12.8")
#endif()
# Include the CMakeLists for the cbind library
include(${CMAKE_CURRENT_LIST_DIR}/cuda/CMakeLists.txt)
include_directories("${PSB_CUDA_PATH}/include")
message(STATUS "${PSB_CUDA_PATH}")
#include(${CMAKE_CURRENT_LIST_DIR}/cuda/CMakeLists.txt)
#include_directories("${PSB_CUDA_PATH}/include")
#message(STATUS "${PSB_CUDA_PATH}")
# find_package(CUDA REQUIRED)
enable_language(CUDA)
#enable_language(CUDA)
# Check for CUDA version
set(PSB_CUDA_VERSION 12800)
if(PSB_CUDA_VERSION)
message(STATUS "CUDA version: ${PSB_CUDA_VERSION}")
#set(PSB_CUDA_VERSION 12800)
#if(PSB_CUDA_VERSION)
# message(STATUS "CUDA version: ${PSB_CUDA_VERSION}")
# Define macros for CUDA version
# add_definitions(-DPSB_HAVE_CUDA)
# add_definitions(-DPSB_CUDA_VERSION=${PSB_CUDA_VERSION})
math(EXPR PSB_CUDA_SHORT_VERSION "${PSB_CUDA_VERSION} / 1000")
#math(EXPR PSB_CUDA_SHORT_VERSION "${PSB_CUDA_VERSION} / 1000")
# add_definitions(-DPSB_CUDA_SHORT_VERSION=${PSB_CUDA_SHORT_VERSION})
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DPSB_HAVE_CUDA")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DPSB_CUDA_VERSION=${PSB_CUDA_VERSION}")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DPSB_CUDA_SHORT_VERSION=${PSB_CUDA_SHORT_VERSION}")
#set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DPSB_HAVE_CUDA")
#set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DPSB_CUDA_VERSION=${PSB_CUDA_VERSION}")
#set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DPSB_CUDA_SHORT_VERSION=${PSB_CUDA_SHORT_VERSION}")
set(CHAVECUDA "#define PSB_HAVE_CUDA")
set(CSHORTVCUDA "#define PSB_CUDA_SHORT_VERSION ${PSB_CUDA_SHORT_VERSION}")
set(CVERSIONCUDA "#define PSB_CUDA_VERSION ${PSB_CUDA_VERSION}")
#set(CHAVECUDA "#define PSB_HAVE_CUDA")
#set(CSHORTVCUDA "#define PSB_CUDA_SHORT_VERSION ${PSB_CUDA_SHORT_VERSION}")
#set(CVERSIONCUDA "#define PSB_CUDA_VERSION ${PSB_CUDA_VERSION}")
else()
message(FATAL_ERROR "CUDA version not found!")
endif()
#else()
#message(FATAL_ERROR "CUDA version not found!")
#endif()

Loading…
Cancel
Save