Skip to content

Commit b3377b4

Browse files
authored
Merge pull request #28 from kokkos/develop
Add all the latest changes to master (3 C's)
2 parents 161a1fe + b82039e commit b3377b4

192 files changed

Lines changed: 14413 additions & 3931 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,8 @@
1111

1212
# output files
1313
*.out
14+
15+
# CI temporary things
16+
ci/build*
17+
ci/install*
18+
ci/output*

CMakeLists.txt

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
cmake_minimum_required(VERSION 3.12)
2+
set(CMAKE_DISABLE_IN_SOURCE_BUILD ON)
3+
4+
project(FLCL VERSION 0.1.0 LANGUAGES Fortran C CXX)
5+
6+
set(default_build_type "RelWithDebInfo")
7+
set(BUILD_SHARED_LIBS OFF)
8+
9+
include(CMakeDetermineFortranCompiler)
10+
include(CMakeDetermineCCompiler)
11+
include(CMakeDetermineCXXCompiler)
12+
13+
find_package(Kokkos REQUIRED)
14+
15+
include(CheckFortranCompilerFlag)
16+
include(CheckCXXCompilerFlag)
17+
include(CheckCCompilerFlag)
18+
19+
# use, i.e. don't skip the full RPATH for the build tree
20+
#set(CMAKE_SKIP_BUILD_RPATH FALSE)
21+
22+
# when building, don't use the install RPATH already
23+
# (but later on when installing)
24+
#set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
25+
26+
#set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
27+
28+
# add the automatically determined parts of the RPATH
29+
# which point to directories outside the build tree to the install RPATH
30+
#set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
31+
32+
# the RPATH to be used when installing, but only if it's not a system directory
33+
#list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir)
34+
#if("${isSystemDir}" STREQUAL "-1")
35+
# set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
36+
#endif("${isSystemDir}" STREQUAL "-1")
37+
38+
add_link_options(LINKER:--disable-new-dtags)
39+
40+
41+
add_library(flcl-fortran
42+
OBJECT
43+
src/flcl-util-strings-f.f90
44+
src/flcl-f.f90
45+
src/flcl-util-kokkos-f.f90
46+
)
47+
target_include_directories(flcl-fortran
48+
PUBLIC
49+
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>
50+
INTERFACE
51+
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>
52+
$<INSTALL_INTERFACE:mod>
53+
)
54+
set_target_properties(
55+
flcl-fortran
56+
PROPERTIES
57+
Fortran_MODULE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/mod"
58+
)
59+
60+
add_library(flcl-cxx
61+
OBJECT
62+
src/flcl-cxx.cpp
63+
src/flcl-util-cxx.cpp
64+
)
65+
target_link_libraries(flcl-cxx
66+
PRIVATE
67+
Kokkos::kokkos
68+
)
69+
70+
add_library(FLCL
71+
STATIC
72+
$<TARGET_OBJECTS:flcl-fortran>
73+
$<TARGET_OBJECTS:flcl-cxx>
74+
)
75+
target_include_directories(FLCL
76+
INTERFACE
77+
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>
78+
$<INSTALL_INTERFACE:mod>
79+
)
80+
target_link_libraries(FLCL
81+
INTERFACE
82+
Kokkos::kokkos
83+
)
84+
add_library(FLCL::flcl ALIAS FLCL)
85+
86+
include(CMakePackageConfigHelpers)
87+
88+
write_basic_package_version_file(
89+
"${PROJECT_BINARY_DIR}/flclConfigVersion.cmake"
90+
COMPATIBILITY SameMinorVersion
91+
)
92+
93+
configure_package_config_file(
94+
"${PROJECT_SOURCE_DIR}/cmake/flclConfig.cmake.in"
95+
"${PROJECT_BINARY_DIR}/flclConfig.cmake"
96+
INSTALL_DESTINATION lib/cmake/flcl
97+
)
98+
99+
install(
100+
FILES
101+
"${PROJECT_BINARY_DIR}/flclConfigVersion.cmake"
102+
"${PROJECT_BINARY_DIR}/flclConfig.cmake"
103+
DESTINATION lib/cmake/flcl
104+
)
105+
106+
install(TARGETS FLCL EXPORT flclTargets)
107+
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mod DESTINATION .)
108+
install(
109+
EXPORT flclTargets
110+
DESTINATION lib/cmake/flcl
111+
NAMESPACE FLCL::)
112+
113+
include(CTest)
114+
add_subdirectory(test)
115+
116+
117+

build/Makefile

Lines changed: 0 additions & 95 deletions
This file was deleted.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/bin/tcsh
2+
setenv CI_PATH_PREFIX /home/$USER/kokkos-fortran-interop
3+
setenv CI_KOKKOS_PATH /home/$USER/kt/3.0-ppc-gcc-7.4.0-cuda-10.1/lib64/cmake/Kokkos
4+
setenv CI_BUILD_DIR $CI_PATH_PREFIX/ci/build-3.0-ppc-gcc-7.4.0-cuda-10.1
5+
setenv CI_INSTALL_DIR $CI_PATH_PREFIX/ci/install-3.0-ppc-gcc-7.4.0-cuda-10.1
6+
rm -rf $CI_BUILD_DIR
7+
rm -rf $CI_INSTALL_DIR
8+
mkdir -p $CI_BUILD_DIR
9+
mkdir -p $CI_INSTALL_DIR
10+
cd $CI_BUILD_DIR
11+
module load cmake/3.15.3
12+
module load gcc/7.4.0
13+
module load cuda/10.1
14+
cmake -DKokkos_DIR=$CI_KOKKOS_PATH \
15+
-DCMAKE_CXX_COMPILER=/home/$USER/kokkos/kokkos-3.0.00/bin/nvcc_wrapper \
16+
-DCMAKE_BUILD_TYPE=Release \
17+
-DCMAKE_INSTALL_PREFIX=$CI_INSTALL_DIR $CI_PATH_PREFIX
18+
cmake --build $CI_BUILD_DIR
19+
cmake --install $CI_BUILD_DIR
20+
setenv CUDA_LAUNCH_BLOCKING 1
21+
setenv CUDA_MANAGED_FORCE_DEVICE_ALLOC 1
22+
ctest
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/bin/tcsh
2+
setenv CI_PATH_PREFIX /home/$USER/kokkos-fortran-interop
3+
setenv CI_KOKKOS_PATH /home/$USER/kt/3.1.1-ppc-gcc-7.4.0-cuda-10.1/lib64/cmake/Kokkos
4+
setenv CI_BUILD_DIR $CI_PATH_PREFIX/ci/build-3.1.1-ppc-gcc-7.4.0-cuda-10.1
5+
setenv CI_INSTALL_DIR $CI_PATH_PREFIX/ci/install-3.1.1-ppc-gcc-7.4.0-cuda-10.1
6+
rm -rf $CI_BUILD_DIR
7+
rm -rf $CI_INSTALL_DIR
8+
mkdir -p $CI_BUILD_DIR
9+
mkdir -p $CI_INSTALL_DIR
10+
cd $CI_BUILD_DIR
11+
module load cmake/3.15.3
12+
module load gcc/7.4.0
13+
module load cuda/10.1
14+
cmake -DKokkos_DIR=$CI_KOKKOS_PATH \
15+
-DCMAKE_CXX_COMPILER=/home/$USER/kokkos/kokkos-3.1.01/bin/nvcc_wrapper \
16+
-DCMAKE_BUILD_TYPE=Release \
17+
-DCMAKE_INSTALL_PREFIX=$CI_INSTALL_DIR $CI_PATH_PREFIX
18+
cmake --build $CI_BUILD_DIR
19+
cmake --install $CI_BUILD_DIR
20+
setenv CUDA_LAUNCH_BLOCKING 1
21+
setenv CUDA_MANAGED_FORCE_DEVICE_ALLOC 1
22+
ctest
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/bin/tcsh
2+
setenv CI_PATH_PREFIX /home/$USER/kokkos-fortran-interop
3+
setenv CI_KOKKOS_PATH /home/$USER/kt/3.0-ppc-gcc-7.4.0-cuda-10.1-debug/lib64/cmake/Kokkos
4+
setenv CI_BUILD_DIR $CI_PATH_PREFIX/ci/build-3.0-ppc-gcc-7.4.0-cuda-10.1-debug
5+
setenv CI_INSTALL_DIR $CI_PATH_PREFIX/ci/install-3.0-ppc-gcc-7.4.0-cuda-10.1-debug
6+
rm -rf $CI_BUILD_DIR
7+
rm -rf $CI_INSTALL_DIR
8+
mkdir -p $CI_BUILD_DIR
9+
mkdir -p $CI_INSTALL_DIR
10+
cd $CI_BUILD_DIR
11+
module load cmake/3.15.3
12+
module load gcc/7.4.0
13+
module load cuda/10.1
14+
cmake -DKokkos_DIR=$CI_KOKKOS_PATH \
15+
-DCMAKE_CXX_COMPILER=/home/$USER/kokkos/kokkos-3.0.00/bin/nvcc_wrapper \
16+
-DCMAKE_BUILD_TYPE=Debug \
17+
-DCMAKE_INSTALL_PREFIX=$CI_INSTALL_DIR $CI_PATH_PREFIX
18+
cmake --build $CI_BUILD_DIR
19+
cmake --install $CI_BUILD_DIR
20+
setenv CUDA_LAUNCH_BLOCKING 1
21+
setenv CUDA_MANAGED_FORCE_DEVICE_ALLOC 1
22+
ctest -V
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/bin/tcsh
2+
setenv CI_PATH_PREFIX /home/$USER/kokkos-fortran-interop
3+
setenv CI_KOKKOS_PATH /home/$USER/kt/3.1.1-ppc-gcc-7.4.0-cuda-10.1-debug/lib64/cmake/Kokkos
4+
setenv CI_BUILD_DIR $CI_PATH_PREFIX/ci/build-3.1.1-ppc-gcc-7.4.0-cuda-10.1-debug
5+
setenv CI_INSTALL_DIR $CI_PATH_PREFIX/ci/install-3.1.1-ppc-gcc-7.4.0-cuda-10.1-debug
6+
rm -rf $CI_BUILD_DIR
7+
rm -rf $CI_INSTALL_DIR
8+
mkdir -p $CI_BUILD_DIR
9+
mkdir -p $CI_INSTALL_DIR
10+
cd $CI_BUILD_DIR
11+
module load cmake/3.15.3
12+
module load gcc/7.4.0
13+
module load cuda/10.1
14+
cmake -DKokkos_DIR=$CI_KOKKOS_PATH \
15+
-DCMAKE_CXX_COMPILER=/home/$USER/kokkos/kokkos-3.1.01/bin/nvcc_wrapper \
16+
-DCMAKE_BUILD_TYPE=Debug \
17+
-DCMAKE_INSTALL_PREFIX=$CI_INSTALL_DIR $CI_PATH_PREFIX
18+
cmake --build $CI_BUILD_DIR
19+
cmake --install $CI_BUILD_DIR
20+
setenv CUDA_LAUNCH_BLOCKING 1
21+
setenv CUDA_MANAGED_FORCE_DEVICE_ALLOC 1
22+
ctest -V
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/bin/tcsh
2+
setenv CI_PATH_PREFIX /home/$USER/kokkos-fortran-interop
3+
setenv CI_KOKKOS_PATH /home/$USER/kt/3.0-ppc-gcc-7.4.0-openmp/lib64/cmake/Kokkos
4+
setenv CI_BUILD_DIR $CI_PATH_PREFIX/ci/build-3.0-ppc-gcc-7.4.0-openmp
5+
setenv CI_INSTALL_DIR $CI_PATH_PREFIX/ci/install-3.0-ppc-gcc-7.4.0-openmp
6+
rm -rf $CI_BUILD_DIR
7+
rm -rf $CI_INSTALL_DIR
8+
mkdir -p $CI_BUILD_DIR
9+
mkdir -p $CI_INSTALL_DIR
10+
cd $CI_BUILD_DIR
11+
module load cmake/3.15.3
12+
module load gcc/7.4.0
13+
setenv OMP_NUM_THREADS 4
14+
setenv OMP_PROC_BIND false
15+
cmake -DKokkos_DIR=$CI_KOKKOS_PATH \
16+
-DCMAKE_BUILD_TYPE=Release \
17+
-DCMAKE_INSTALL_PREFIX=$CI_INSTALL_DIR $CI_PATH_PREFIX
18+
cmake --build $CI_BUILD_DIR
19+
cmake --install $CI_BUILD_DIR
20+
ctest
21+
unsetenv OMP_NUM_THREADS
22+
unsetenv OMP_PROC_BIND
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/bin/tcsh
2+
setenv CI_PATH_PREFIX /home/$USER/kokkos-fortran-interop
3+
setenv CI_KOKKOS_PATH /home/$USER/kt/3.1.1-ppc-gcc-7.4.0-openmp/lib64/cmake/Kokkos
4+
setenv CI_BUILD_DIR $CI_PATH_PREFIX/ci/build-3.1.1-ppc-gcc-7.4.0-openmp
5+
setenv CI_INSTALL_DIR $CI_PATH_PREFIX/ci/install-3.1.1-ppc-gcc-7.4.0-openmp
6+
rm -rf $CI_BUILD_DIR
7+
rm -rf $CI_INSTALL_DIR
8+
mkdir -p $CI_BUILD_DIR
9+
mkdir -p $CI_INSTALL_DIR
10+
cd $CI_BUILD_DIR
11+
module load cmake/3.15.3
12+
module load gcc/7.4.0
13+
setenv OMP_NUM_THREADS 4
14+
setenv OMP_PROC_BIND false
15+
cmake -DKokkos_DIR=$CI_KOKKOS_PATH \
16+
-DCMAKE_BUILD_TYPE=Release \
17+
-DCMAKE_INSTALL_PREFIX=$CI_INSTALL_DIR $CI_PATH_PREFIX
18+
cmake --build $CI_BUILD_DIR
19+
cmake --install $CI_BUILD_DIR
20+
ctest
21+
unsetenv OMP_NUM_THREADS
22+
unsetenv OMP_PROC_BIND
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/bin/tcsh
2+
setenv CI_PATH_PREFIX /home/$USER/kokkos-fortran-interop
3+
setenv CI_KOKKOS_PATH /home/$USER/kt/3.0-ppc-gcc-7.4.0-openmp-debug/lib64/cmake/Kokkos
4+
setenv CI_BUILD_DIR $CI_PATH_PREFIX/ci/build-3.0-ppc-gcc-7.4.0-openmp-debug
5+
setenv CI_INSTALL_DIR $CI_PATH_PREFIX/ci/install-3.0-ppc-gcc-7.4.0-openmp-debug
6+
rm -rf $CI_BUILD_DIR
7+
rm -rf $CI_INSTALL_DIR
8+
mkdir -p $CI_BUILD_DIR
9+
mkdir -p $CI_INSTALL_DIR
10+
cd $CI_BUILD_DIR
11+
module load cmake/3.15.3
12+
module load gcc/7.4.0
13+
setenv OMP_NUM_THREADS 4
14+
setenv OMP_PROC_BIND false
15+
cmake -DKokkos_DIR=$CI_KOKKOS_PATH \
16+
-DCMAKE_BUILD_TYPE=Debug \
17+
-DCMAKE_INSTALL_PREFIX=$CI_INSTALL_DIR $CI_PATH_PREFIX
18+
cmake --build $CI_BUILD_DIR
19+
cmake --install $CI_BUILD_DIR
20+
ctest -V
21+
unsetenv OMP_NUM_THREADS
22+
unsetenv OMP_PROC_BIND

0 commit comments

Comments
 (0)