Skip to content

Commit

Permalink
Quick and Dirty CMake fix and .gitignore
Browse files Browse the repository at this point in the history
  • Loading branch information
Iroy30 committed Jan 25, 2019
1 parent e604ddb commit ba044c4
Show file tree
Hide file tree
Showing 3 changed files with 104 additions and 37 deletions.
36 changes: 36 additions & 0 deletions .gitignore
@@ -0,0 +1,36 @@
## Common
__pycache__
*.pyc
*.a
*.o
*.so
*.dylib
.cache
.coverage
.vscode
*.swp
*.pytest_cache
DartConfiguration.tcl
.DS_Store

## Python build directories & artifacts
htmlcov
dist/
cudf.egg-info/
python/build
python/cudf/bindings/*.cpp

## Patching
*.diff
*.orig
*.rej

## C++ build directories & artifacts
CMakeFiles/
Debug
build/

## Eclipse IDE
.project
.cproject
.settings
99 changes: 65 additions & 34 deletions CMakeLists.txt
Expand Up @@ -49,44 +49,75 @@ set(CMAKE_CUDA_STANDARD_REQURIED ON)

#set(CUDA_USE_STATIC_CUDA_RUNTIME OFF CACHE INTERNAL "")

find_package(CUDA)
set_package_properties(
CUDA PROPERTIES TYPE REQUIRED
PURPOSE "NVIDIA CUDA® parallel computing platform and programming model."
URL "https://developer.nvidia.com/cuda-zone")

if(CUDA_FOUND)
message(STATUS "CUDA ${CUDA_VERSION} found in ${CUDA_TOOLKIT_ROOT_DIR}")

set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-std=c++11;--expt-extended-lambda; -Xcompiler -rdynamic -lineinfo)
# Suppress SHFL warnings caused by modern GPU.
# TODO: remove this when modern GPU is removed or fixed to use shfl_sync
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS}; -Wno-deprecated-declarations; -Xptxas --disable-warnings)
# set warnings as errors
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-Werror cross-execution-space-call;-Xcompiler -Wall,-Wno-error=sign-compare)

message(STATUS "CUDA_NVCC_FLAGS: ${CUDA_NVCC_FLAGS}")
else()
message(FATAL_ERROR "CUDA not found, please check your settings.")
endif()
#find_package(CUDA)
#set_package_properties(
# CUDA PROPERTIES TYPE REQUIRED
# PURPOSE "NVIDIA CUDA® parallel computing platform and programming model."
# URL "https://developer.nvidia.com/cuda-zone")

#if(CUDA_FOUND)
# message(STATUS "CUDA ${CUDA_VERSION} found in ${CUDA_TOOLKIT_ROOT_DIR}")

# set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-std=c++11;--expt-extended-lambda; -Xcompiler -rdynamic -lineinfo)
# # Suppress SHFL warnings caused by modern GPU.
# # TODO: remove this when modern GPU is removed or fixed to use shfl_sync
# set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS}; -Wno-deprecated-declarations; -Xptxas --disable-warnings)
# # set warnings as errors
# set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-Werror cross-execution-space-call;-Xcompiler -Wall,-Wno-error=sign-compare)

# message(STATUS "CUDA_NVCC_FLAGS: ${CUDA_NVCC_FLAGS}")
#else()
# message(FATAL_ERROR "CUDA not found, please check your settings.")
#endif()

message(STATUS "Using C++ standard: c++${CMAKE_CXX_STANDARD}")

set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/" ${CMAKE_MODULE_PATH})
message(STATUS "CMAKE_MODULE_PATH:" "${CMAKE_MODULE_PATH}")

IF(CUDA_VERSION_MAJOR GREATER 7)
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-gencode;arch=compute_60,code=sm_60)
ENDIF(CUDA_VERSION_MAJOR GREATER 7)

IF(CUDA_VERSION_MAJOR GREATER 8)
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-gencode;arch=compute_70,code=sm_70)
ENDIF(CUDA_VERSION_MAJOR GREATER 8)

IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-g;-G;-lineinfo)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)

#IF(CUDA_VERSION_MAJOR GREATER 7)
# set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-gencode;arch=compute_60,code=sm_60)
#ENDIF(CUDA_VERSION_MAJOR GREATER 7)

#IF(CUDA_VERSION_MAJOR GREATER 8)
# set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-gencode;arch=compute_70,code=sm_70)
#ENDIF(CUDA_VERSION_MAJOR GREATER 8)

#IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
# set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-g;-G;-lineinfo)
#ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)


if(CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
option(CMAKE_CXX11_ABI "Enable the GLIBCXX11 ABI" OFF)
if(CMAKE_CXX11_ABI)
message(STATUS "cuGraph: Enabling the GLIBCXX11 ABI")
else()
message(STATUS "cuGraph: Disabling the GLIBCXX11 ABI")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler -D_GLIBCXX_USE_CXX11_ABI=0")
endif(CMAKE_CXX11_ABI)
endif(CMAKE_COMPILER_IS_GNUCXX)

# Keith testing space
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_60,code=sm_60")
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_70,code=sm_70 -gencode=arch=compute_70,code=compute_70")

set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --expt-extended-lambda -Xcompiler -rdynamic -lineinfo")
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Werror cross-execution-space-call -Wno-deprecated-declarations -Xptxas --disable-warnings")
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-declarations -Xptxas --disable-warnings")
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Werror cross-execution-space-call -Xcompiler -Wall,-Wno-error=sign-compare,-Wno-error=unused-but-set-variable")

# Debug options
if(CMAKE_BUILD_TYPE MATCHES Debug)
message(STATUS "Building with debugging flags")
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -g -G -lineinfo")
endif(CMAKE_BUILD_TYPE MATCHES Debug)

message(STATUS "CMAKE_CUDA_FLAGS: ${CMAKE_CUDA_FLAGS}")


###################################################################################################
# - cmake custom modules --------------------------------------------------------------------------
Expand Down Expand Up @@ -151,7 +182,7 @@ endif (NVGRAPH_INCLUDE AND NVGRAPH_LIBRARY)
include_directories(
"${CMAKE_CURRENT_SOURCE_DIR}/include"
"${CMAKE_CURRENT_SOURCE_DIR}/src"
"${CUDA_INCLUDE_DIRS}"
"${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}"
"${CUDF_INCLUDE}"
"${NVGRAPH_INCLUDE}"
"${CMAKE_CURRENT_BINARY_DIR}/gunrock/"
Expand All @@ -162,7 +193,7 @@ include_directories(

###################################################################################################
# - library targets -------------------------------------------------------------------------------
cuda_add_library(cugraph SHARED
add_library(cugraph SHARED
src/grmat.cu
src/cugraph.cu
src/pagerank.cu
Expand Down
6 changes: 3 additions & 3 deletions src/tests/CMakeLists.txt
Expand Up @@ -5,7 +5,7 @@

cmake_minimum_required(VERSION 3.12 FATAL_ERROR)

project(CUGRAPH_TESTS LANGUAGES C CXX)
project(CUGRAPH_TESTS LANGUAGES C CXX CUDA)

###################################################################################################
# - add nvgraph -----------------------------------------------------------------------------------
Expand All @@ -28,7 +28,7 @@ project(CUGRAPH_TESTS LANGUAGES C CXX)
# - compiler function -----------------------------------------------------------------------------
function(configure_test TEST_NAME Tests_SRCS)
# message(STATUS "${TEST_NAME} will link against: gdf, cugraph")
cuda_add_executable(${TEST_NAME} ${Tests_SRCS})
add_executable(${TEST_NAME} ${Tests_SRCS})
target_link_libraries(${TEST_NAME} gmock_main gmock GTest::GTest cudf cugraph nvgraph)
#if(NVG_PLUGIN)
# if(NOT TARGET nvgraph)
Expand Down Expand Up @@ -64,7 +64,7 @@ include_directories(
"${CMAKE_CURRENT_SOURCE_DIR}/../include"
"${CMAKE_CURRENT_SOURCE_DIR}/.."
"${CMAKE_CURRENT_SOURCE_DIR}"
"${CUDA_INCLUDE_DIRS}"
"${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}"
)

###################################################################################################
Expand Down

0 comments on commit ba044c4

Please sign in to comment.