Skip to content

Commit

Permalink
Merge pull request #28 from kokkos/develop
Browse files Browse the repository at this point in the history
Add all the latest changes to master (3 C's)
  • Loading branch information
womeld authored Aug 14, 2020
2 parents 161a1fe + b82039e commit b3377b4
Show file tree
Hide file tree
Showing 192 changed files with 14,413 additions and 3,931 deletions.
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,8 @@

# output files
*.out

# CI temporary things
ci/build*
ci/install*
ci/output*
117 changes: 117 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
cmake_minimum_required(VERSION 3.12)
set(CMAKE_DISABLE_IN_SOURCE_BUILD ON)

project(FLCL VERSION 0.1.0 LANGUAGES Fortran C CXX)

set(default_build_type "RelWithDebInfo")
set(BUILD_SHARED_LIBS OFF)

include(CMakeDetermineFortranCompiler)
include(CMakeDetermineCCompiler)
include(CMakeDetermineCXXCompiler)

find_package(Kokkos REQUIRED)

include(CheckFortranCompilerFlag)
include(CheckCXXCompilerFlag)
include(CheckCCompilerFlag)

# use, i.e. don't skip the full RPATH for the build tree
#set(CMAKE_SKIP_BUILD_RPATH FALSE)

# when building, don't use the install RPATH already
# (but later on when installing)
#set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)

#set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")

# add the automatically determined parts of the RPATH
# which point to directories outside the build tree to the install RPATH
#set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)

# the RPATH to be used when installing, but only if it's not a system directory
#list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir)
#if("${isSystemDir}" STREQUAL "-1")
# set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
#endif("${isSystemDir}" STREQUAL "-1")

add_link_options(LINKER:--disable-new-dtags)


add_library(flcl-fortran
OBJECT
src/flcl-util-strings-f.f90
src/flcl-f.f90
src/flcl-util-kokkos-f.f90
)
target_include_directories(flcl-fortran
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>
INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>
$<INSTALL_INTERFACE:mod>
)
set_target_properties(
flcl-fortran
PROPERTIES
Fortran_MODULE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/mod"
)

add_library(flcl-cxx
OBJECT
src/flcl-cxx.cpp
src/flcl-util-cxx.cpp
)
target_link_libraries(flcl-cxx
PRIVATE
Kokkos::kokkos
)

add_library(FLCL
STATIC
$<TARGET_OBJECTS:flcl-fortran>
$<TARGET_OBJECTS:flcl-cxx>
)
target_include_directories(FLCL
INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>
$<INSTALL_INTERFACE:mod>
)
target_link_libraries(FLCL
INTERFACE
Kokkos::kokkos
)
add_library(FLCL::flcl ALIAS FLCL)

include(CMakePackageConfigHelpers)

write_basic_package_version_file(
"${PROJECT_BINARY_DIR}/flclConfigVersion.cmake"
COMPATIBILITY SameMinorVersion
)

configure_package_config_file(
"${PROJECT_SOURCE_DIR}/cmake/flclConfig.cmake.in"
"${PROJECT_BINARY_DIR}/flclConfig.cmake"
INSTALL_DESTINATION lib/cmake/flcl
)

install(
FILES
"${PROJECT_BINARY_DIR}/flclConfigVersion.cmake"
"${PROJECT_BINARY_DIR}/flclConfig.cmake"
DESTINATION lib/cmake/flcl
)

install(TARGETS FLCL EXPORT flclTargets)
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mod DESTINATION .)
install(
EXPORT flclTargets
DESTINATION lib/cmake/flcl
NAMESPACE FLCL::)

include(CTest)
add_subdirectory(test)



95 changes: 0 additions & 95 deletions build/Makefile

This file was deleted.

22 changes: 22 additions & 0 deletions ci/flcl-run-ci-darwin-ppc-gcc-cuda-3.0.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/bin/tcsh
setenv CI_PATH_PREFIX /home/$USER/kokkos-fortran-interop
setenv CI_KOKKOS_PATH /home/$USER/kt/3.0-ppc-gcc-7.4.0-cuda-10.1/lib64/cmake/Kokkos
setenv CI_BUILD_DIR $CI_PATH_PREFIX/ci/build-3.0-ppc-gcc-7.4.0-cuda-10.1
setenv CI_INSTALL_DIR $CI_PATH_PREFIX/ci/install-3.0-ppc-gcc-7.4.0-cuda-10.1
rm -rf $CI_BUILD_DIR
rm -rf $CI_INSTALL_DIR
mkdir -p $CI_BUILD_DIR
mkdir -p $CI_INSTALL_DIR
cd $CI_BUILD_DIR
module load cmake/3.15.3
module load gcc/7.4.0
module load cuda/10.1
cmake -DKokkos_DIR=$CI_KOKKOS_PATH \
-DCMAKE_CXX_COMPILER=/home/$USER/kokkos/kokkos-3.0.00/bin/nvcc_wrapper \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$CI_INSTALL_DIR $CI_PATH_PREFIX
cmake --build $CI_BUILD_DIR
cmake --install $CI_BUILD_DIR
setenv CUDA_LAUNCH_BLOCKING 1
setenv CUDA_MANAGED_FORCE_DEVICE_ALLOC 1
ctest
22 changes: 22 additions & 0 deletions ci/flcl-run-ci-darwin-ppc-gcc-cuda-3.1.1.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/bin/tcsh
setenv CI_PATH_PREFIX /home/$USER/kokkos-fortran-interop
setenv CI_KOKKOS_PATH /home/$USER/kt/3.1.1-ppc-gcc-7.4.0-cuda-10.1/lib64/cmake/Kokkos
setenv CI_BUILD_DIR $CI_PATH_PREFIX/ci/build-3.1.1-ppc-gcc-7.4.0-cuda-10.1
setenv CI_INSTALL_DIR $CI_PATH_PREFIX/ci/install-3.1.1-ppc-gcc-7.4.0-cuda-10.1
rm -rf $CI_BUILD_DIR
rm -rf $CI_INSTALL_DIR
mkdir -p $CI_BUILD_DIR
mkdir -p $CI_INSTALL_DIR
cd $CI_BUILD_DIR
module load cmake/3.15.3
module load gcc/7.4.0
module load cuda/10.1
cmake -DKokkos_DIR=$CI_KOKKOS_PATH \
-DCMAKE_CXX_COMPILER=/home/$USER/kokkos/kokkos-3.1.01/bin/nvcc_wrapper \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$CI_INSTALL_DIR $CI_PATH_PREFIX
cmake --build $CI_BUILD_DIR
cmake --install $CI_BUILD_DIR
setenv CUDA_LAUNCH_BLOCKING 1
setenv CUDA_MANAGED_FORCE_DEVICE_ALLOC 1
ctest
22 changes: 22 additions & 0 deletions ci/flcl-run-ci-darwin-ppc-gcc-cuda-debug-3.0.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/bin/tcsh
setenv CI_PATH_PREFIX /home/$USER/kokkos-fortran-interop
setenv CI_KOKKOS_PATH /home/$USER/kt/3.0-ppc-gcc-7.4.0-cuda-10.1-debug/lib64/cmake/Kokkos
setenv CI_BUILD_DIR $CI_PATH_PREFIX/ci/build-3.0-ppc-gcc-7.4.0-cuda-10.1-debug
setenv CI_INSTALL_DIR $CI_PATH_PREFIX/ci/install-3.0-ppc-gcc-7.4.0-cuda-10.1-debug
rm -rf $CI_BUILD_DIR
rm -rf $CI_INSTALL_DIR
mkdir -p $CI_BUILD_DIR
mkdir -p $CI_INSTALL_DIR
cd $CI_BUILD_DIR
module load cmake/3.15.3
module load gcc/7.4.0
module load cuda/10.1
cmake -DKokkos_DIR=$CI_KOKKOS_PATH \
-DCMAKE_CXX_COMPILER=/home/$USER/kokkos/kokkos-3.0.00/bin/nvcc_wrapper \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_INSTALL_PREFIX=$CI_INSTALL_DIR $CI_PATH_PREFIX
cmake --build $CI_BUILD_DIR
cmake --install $CI_BUILD_DIR
setenv CUDA_LAUNCH_BLOCKING 1
setenv CUDA_MANAGED_FORCE_DEVICE_ALLOC 1
ctest -V
22 changes: 22 additions & 0 deletions ci/flcl-run-ci-darwin-ppc-gcc-cuda-debug-3.1.1.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/bin/tcsh
setenv CI_PATH_PREFIX /home/$USER/kokkos-fortran-interop
setenv CI_KOKKOS_PATH /home/$USER/kt/3.1.1-ppc-gcc-7.4.0-cuda-10.1-debug/lib64/cmake/Kokkos
setenv CI_BUILD_DIR $CI_PATH_PREFIX/ci/build-3.1.1-ppc-gcc-7.4.0-cuda-10.1-debug
setenv CI_INSTALL_DIR $CI_PATH_PREFIX/ci/install-3.1.1-ppc-gcc-7.4.0-cuda-10.1-debug
rm -rf $CI_BUILD_DIR
rm -rf $CI_INSTALL_DIR
mkdir -p $CI_BUILD_DIR
mkdir -p $CI_INSTALL_DIR
cd $CI_BUILD_DIR
module load cmake/3.15.3
module load gcc/7.4.0
module load cuda/10.1
cmake -DKokkos_DIR=$CI_KOKKOS_PATH \
-DCMAKE_CXX_COMPILER=/home/$USER/kokkos/kokkos-3.1.01/bin/nvcc_wrapper \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_INSTALL_PREFIX=$CI_INSTALL_DIR $CI_PATH_PREFIX
cmake --build $CI_BUILD_DIR
cmake --install $CI_BUILD_DIR
setenv CUDA_LAUNCH_BLOCKING 1
setenv CUDA_MANAGED_FORCE_DEVICE_ALLOC 1
ctest -V
22 changes: 22 additions & 0 deletions ci/flcl-run-ci-darwin-ppc-gcc-openmp-3.0.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/bin/tcsh
setenv CI_PATH_PREFIX /home/$USER/kokkos-fortran-interop
setenv CI_KOKKOS_PATH /home/$USER/kt/3.0-ppc-gcc-7.4.0-openmp/lib64/cmake/Kokkos
setenv CI_BUILD_DIR $CI_PATH_PREFIX/ci/build-3.0-ppc-gcc-7.4.0-openmp
setenv CI_INSTALL_DIR $CI_PATH_PREFIX/ci/install-3.0-ppc-gcc-7.4.0-openmp
rm -rf $CI_BUILD_DIR
rm -rf $CI_INSTALL_DIR
mkdir -p $CI_BUILD_DIR
mkdir -p $CI_INSTALL_DIR
cd $CI_BUILD_DIR
module load cmake/3.15.3
module load gcc/7.4.0
setenv OMP_NUM_THREADS 4
setenv OMP_PROC_BIND false
cmake -DKokkos_DIR=$CI_KOKKOS_PATH \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$CI_INSTALL_DIR $CI_PATH_PREFIX
cmake --build $CI_BUILD_DIR
cmake --install $CI_BUILD_DIR
ctest
unsetenv OMP_NUM_THREADS
unsetenv OMP_PROC_BIND
22 changes: 22 additions & 0 deletions ci/flcl-run-ci-darwin-ppc-gcc-openmp-3.1.1.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/bin/tcsh
setenv CI_PATH_PREFIX /home/$USER/kokkos-fortran-interop
setenv CI_KOKKOS_PATH /home/$USER/kt/3.1.1-ppc-gcc-7.4.0-openmp/lib64/cmake/Kokkos
setenv CI_BUILD_DIR $CI_PATH_PREFIX/ci/build-3.1.1-ppc-gcc-7.4.0-openmp
setenv CI_INSTALL_DIR $CI_PATH_PREFIX/ci/install-3.1.1-ppc-gcc-7.4.0-openmp
rm -rf $CI_BUILD_DIR
rm -rf $CI_INSTALL_DIR
mkdir -p $CI_BUILD_DIR
mkdir -p $CI_INSTALL_DIR
cd $CI_BUILD_DIR
module load cmake/3.15.3
module load gcc/7.4.0
setenv OMP_NUM_THREADS 4
setenv OMP_PROC_BIND false
cmake -DKokkos_DIR=$CI_KOKKOS_PATH \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$CI_INSTALL_DIR $CI_PATH_PREFIX
cmake --build $CI_BUILD_DIR
cmake --install $CI_BUILD_DIR
ctest
unsetenv OMP_NUM_THREADS
unsetenv OMP_PROC_BIND
22 changes: 22 additions & 0 deletions ci/flcl-run-ci-darwin-ppc-gcc-openmp-debug-3.0.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/bin/tcsh
setenv CI_PATH_PREFIX /home/$USER/kokkos-fortran-interop
setenv CI_KOKKOS_PATH /home/$USER/kt/3.0-ppc-gcc-7.4.0-openmp-debug/lib64/cmake/Kokkos
setenv CI_BUILD_DIR $CI_PATH_PREFIX/ci/build-3.0-ppc-gcc-7.4.0-openmp-debug
setenv CI_INSTALL_DIR $CI_PATH_PREFIX/ci/install-3.0-ppc-gcc-7.4.0-openmp-debug
rm -rf $CI_BUILD_DIR
rm -rf $CI_INSTALL_DIR
mkdir -p $CI_BUILD_DIR
mkdir -p $CI_INSTALL_DIR
cd $CI_BUILD_DIR
module load cmake/3.15.3
module load gcc/7.4.0
setenv OMP_NUM_THREADS 4
setenv OMP_PROC_BIND false
cmake -DKokkos_DIR=$CI_KOKKOS_PATH \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_INSTALL_PREFIX=$CI_INSTALL_DIR $CI_PATH_PREFIX
cmake --build $CI_BUILD_DIR
cmake --install $CI_BUILD_DIR
ctest -V
unsetenv OMP_NUM_THREADS
unsetenv OMP_PROC_BIND
Loading

0 comments on commit b3377b4

Please sign in to comment.