Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
arbd
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
tbgl
tools
arbd
Commits
6b61039e
Commit
6b61039e
authored
2 years ago
by
cmaffeo2
Browse files
Options
Downloads
Patches
Plain Diff
Add debug and other options to CMake file
parent
65d25f8e
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/CMakeLists.txt
+56
-9
56 additions, 9 deletions
src/CMakeLists.txt
with
56 additions
and
9 deletions
src/CMakeLists.txt
+
56
−
9
View file @
6b61039e
## Specify the project
cmake_minimum_required
(
VERSION 3.9 FATAL_ERROR
)
if
(
NOT CMAKE_CUDA_ARCHITECTURES
)
set
(
CMAKE_CUDA_ARCHITECTURES 70 75
)
endif
()
# option(USE_CUDA "Use CUDA" ON)
set
(
USE_CUDA ON
)
if
(
USE_CUDA
)
# set the project name and version
project
(
arbd VERSION 1.2 LANGUAGES CXX CUDA
)
else
(
USE_CUDA
)
project
(
arbd VERSION 1.2 LANGUAGES CXX
)
endif
()
# specify the C++ standard
#
# specify the C++ standard
set
(
CMAKE_CXX_STANDARD 14
)
set
(
CMAKE_CXX_STANDARD_REQUIRED True
)
set
(
CMAKE_VERBOSE_MAKEFILE True
)
# Set a default build type if none was specified
set
(
default_build_type
"Release"
)
if
(
NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES
)
message
(
STATUS
"Setting build type to '
${
default_build_type
}
' as none was specified."
)
set
(
CMAKE_BUILD_TYPE
"
${
default_build_type
}
"
CACHE
STRING
"Choose the type of build."
FORCE
)
# # Set the possible values of build type for cmake-gui
set_property
(
CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
"Debug"
"Release"
"RelWithDebInfo"
"MinSizeRel"
)
endif
()
if
(
CMAKE_CXX_COMPILER_ID STREQUAL
"GNU"
)
## Some CMake uses -O2 for relase, override here
set
(
CMAKE_CXX_FLAGS_RELEASE
"
${
CMAKE_CXX_FLAGS_RELEASE
}
-O3"
)
if
(
CMAKE_BUILD_TYPE STREQUAL
"Release"
)
set
(
CMAKE_CUDA_FLAGS
"
${
CMAKE_CUDA_FLAGS
}
-O3"
)
endif
()
endif
()
## OPTIONS
option
(
USE_NCCL
"Use NCCL for single node GPU peer communication"
ON
)
option
(
USE_NCCL
"Use NCCL for single node GPU peer communication"
False
)
option
(
USE_NVTX
"Build with NVTX profiling ranges"
False
)
option
(
DEBUG
"Build with debug flags"
False
)
# (not yet optional) message(STATUS "USE_CUDA: ${USE_CUDA}")
message
(
STATUS
"USE_NCCL:
${
USE_NCCL
}
"
)
message
(
STATUS
"USE_NVTX:
${
USE_NVTX
}
"
)
message
(
STATUS
"DEBUG:
${
DEBUG
}
"
)
## Set flags before adding executable
# configure_file(TutorialConfig.h.in TutorialConfig.h)
message
(
STATUS
"USE_CUDA:
${
USE_CUDA
}
"
)
if
(
USE_CUDA
)
add_definitions
(
-DUSE_CUDA
)
## CUDA_INCLUDE_DIRS wasn't getting set on my system with cmake 3.14.1, so check if in env
if
(
DEFINED ENV{CUDA_INCLUDE_DIRS}
)
set
(
CUDA_INCLUDE_DIRS $ENV{CUDA_INCLUDE_DIRS}
)
endif
()
message
(
STATUS
"CUDA_INC:
${
CUDA_INCLUDE_DIRS
}
"
)
#
message(STATUS "CUDA_INC: ${CUDA_INCLUDE_DIRS}")
include_directories
(
${
CUDA_INCLUDE_DIRS
}
)
endif
()
if
(
USE_NVTX
)
add_definitions
(
-DUSE_NVTX
)
endif
()
if
(
USE_NCCL
)
add_definitions
(
-DUSE_NCCL
)
target_link_libraries
(
arbd PRIVATE nccl
)
endif
()
## Two lines below needed?
set
(
CMAKE_CUDA_SEPARABLE_COMPILATION ON
)
set
(
CMAKE_POSITION_INDEPENDENT_CODE ON
)
...
...
@@ -83,9 +127,12 @@ add_executable(arbd arbd.cpp
useful.cu
)
target_link_libraries
(
arbd PRIVATE curand
)
message
(
STATUS
"Run:
${
MPIEXEC
}
${
MPIEXEC_NUMPROC_FLAG
}
${
MPIEXEC_MAX_NUMPROCS
}
${
MPIEXEC_PREFLAGS
}
EXECUTABLE
${
MPIEXEC_POSTFLAGS
}
ARGS"
)
## target_link_libraries(ARBD PUBLIC) MPI::MPI_CXX)
## Add optional libraries
if
(
USE_CUDA
)
target_link_libraries
(
arbd PRIVATE curand
)
endif
()
if
(
USE_NCCL
)
target_link_libraries
(
arbd PRIVATE nccl
)
endif
()
install
(
TARGETS arbd
)
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment