Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

unit-test: refactor infrastructure to remove most *.cpp #906

Merged
merged 10 commits into from
Apr 23, 2021
  •  
  •  
  •  
2 changes: 0 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,6 @@ IF (KokkosKernels_INSTALL_TESTING)
# Still need to figure out which backends
INCLUDE(cmake/kokkos_backends.cmake)
# Only build the tests
KOKKOSKERNELS_ADD_TEST_DIRECTORIES(test_common)
KOKKOSKERNELS_ADD_TEST_DIRECTORIES(perf_test)
KOKKOSKERNELS_ADD_TEST_DIRECTORIES(unit_test)
KOKKOSKERNELS_ADD_EXAMPLE_DIRECTORIES(example)
Expand Down Expand Up @@ -200,7 +199,6 @@ ELSE()
ADD_SUBDIRECTORY(install_test)
MESSAGE("The install test has been enabled, you will need to peform: make install before running the tests otherwise install_test will fail")
ENDIF()
KOKKOSKERNELS_ADD_TEST_DIRECTORIES(test_common)
KOKKOSKERNELS_ADD_TEST_DIRECTORIES(perf_test)
KOKKOSKERNELS_ADD_TEST_DIRECTORIES(unit_test)
KOKKOSKERNELS_ADD_EXAMPLE_DIRECTORIES(example)
Expand Down
153 changes: 54 additions & 99 deletions unit_test/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@

KOKKOSKERNELS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../test_common)
KOKKOSKERNELS_INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING ${CMAKE_CURRENT_SOURCE_DIR}/../test_common)

KOKKOSKERNELS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
KOKKOSKERNELS_INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING ${CMAKE_CURRENT_SOURCE_DIR})

Expand All @@ -14,8 +17,8 @@ KOKKOSKERNELS_INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING ${CMAKE_C
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/batched)
INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING ${CMAKE_CURRENT_SOURCE_DIR}/batched)

KOKKOSKERNELS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../test_common)
KOKKOSKERNELS_INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING ${CMAKE_CURRENT_SOURCE_DIR}/../test_common)
KOKKOSKERNELS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/common)
KOKKOSKERNELS_INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING ${CMAKE_CURRENT_SOURCE_DIR}/common)

# Kyungjoo: when kokkoskernels and kokkos are symbolic link and their src directories are overrided
# the following relative path does not work or users should put kokkoskernels and kokkos
Expand All @@ -34,190 +37,149 @@ TARGET_INCLUDE_DIRECTORIES(kokkoskernels_gtest PUBLIC $<BUILD_INTERFACE:${GTEST_
#Gtest minimally requires C++11
TARGET_COMPILE_FEATURES(kokkoskernels_gtest PUBLIC cxx_std_11)






IF (KOKKOS_ENABLE_CUDA)
KOKKOSKERNELS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/cuda)
KOKKOSKERNELS_INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING ${CMAKE_CURRENT_SOURCE_DIR}/cuda)

APPEND_GLOB(CUDA_BLAS_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/cuda/Test_Cuda_Blas*.cpp)
KOKKOSKERNELS_ADD_UNIT_TEST(
blas_cuda
SOURCES
Test_Main.cpp
${CUDA_BLAS_SOURCES}
cuda/Test_Cuda_Blas.cpp
COMPONENTS blas
)
)

APPEND_GLOB(CUDA_BATCHED_DLA_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/cuda/Test_Cuda_Batched*.cpp)
KOKKOSKERNELS_ADD_UNIT_TEST(
batched_dla_cuda
SOURCES
Test_Main.cpp
${CUDA_BATCHED_DLA_SOURCES}
cuda/Test_Cuda_Batched.cpp
COMPONENTS batched
)

APPEND_GLOB(CUDA_SPARSE_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/cuda/Test_Cuda_Sparse*.cpp)
IF (NOT KOKKOS_ENABLE_CUDA_UVM)
LIST(REMOVE_ITEM CUDA_SPARSE_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/cuda/Test_Cuda_Sparse_findRelOffset.cpp")
LIST(REMOVE_ITEM CUDA_SPARSE_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/cuda/Test_Cuda_Sparse_trsv.cpp")
ENDIF()
IF (NOT KOKKOSKERNELS_ENABLE_TPL_CUSPARSE)
LIST(REMOVE_ITEM CUDA_SPARSE_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/cuda/Test_Cuda_Sparse_Utils_cusparse.cpp")
ENDIF()
)

KOKKOSKERNELS_ADD_UNIT_TEST(
sparse_cuda
SOURCES
Test_Main.cpp
${CUDA_SPARSE_SOURCES}
cuda/Test_Cuda_Sparse.cpp
COMPONENTS sparse
)

APPEND_GLOB(CUDA_GRAPH_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/cuda/Test_Cuda_Graph*.cpp)

KOKKOSKERNELS_ADD_UNIT_TEST(
graph_cuda
SOURCES
Test_Main.cpp
${CUDA_GRAPH_SOURCES}
cuda/Test_Cuda_Graph.cpp
COMPONENTS graph
)

#currently float 128 test is not working. So common tests are explicitly added.
APPEND_GLOB(CUDA_COMMON_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/cuda/Test_Cuda_Common*.cpp)


KOKKOSKERNELS_ADD_UNIT_TEST(
common_cuda
SOURCES
Test_Main.cpp
${CUDA_COMMON_SOURCES}
cuda/Test_Cuda_Common.cpp
COMPONENTS common
)
ENDIF ()

IF (KOKKOS_ENABLE_HIP)
KOKKOSKERNELS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/hip)
KOKKOSKERNELS_INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING ${CMAKE_CURRENT_SOURCE_DIR}/hip)

APPEND_GLOB(HIP_BLAS_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/hip/Test_HIP_Blas*.cpp)
KOKKOSKERNELS_ADD_UNIT_TEST(
blas_hip
SOURCES
Test_Main.cpp
${HIP_BLAS_SOURCES}
hip/Test_HIP_Blas.cpp
COMPONENTS blas
)
)

# APPEND_GLOB(HIP_BATCHED_DLA_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/hip/Test_HIP_Batched*.cpp)
# KOKKOSKERNELS_ADD_UNIT_TEST(
# batched_dla_hip
# SOURCES
# Test_Main.cpp
# ${HIP_BATCHED_DLA_SOURCES}
# hip/Test_HIP_Batched.cpp
# COMPONENTS batched
# )

# APPEND_GLOB(HIP_SPARSE_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/hip/Test_HIP_Sparse*.cpp)
# # HIP does not provide UVM, these two tests are henced remove permanently
# # IF (NOT KOKKOS_ENABLE_CUDA_UVM)
# LIST(REMOVE_ITEM HIP_SPARSE_SOURCES
# "${CMAKE_CURRENT_SOURCE_DIR}/hip/Test_HIP_Sparse_findRelOffset.cpp")
# LIST(REMOVE_ITEM HIP_SPARSE_SOURCES
# "${CMAKE_CURRENT_SOURCE_DIR}/hip/Test_HIP_Sparse_trsv.cpp")
# # ENDIF()
# )

# KOKKOSKERNELS_ADD_UNIT_TEST(
# sparse_hip
# SOURCES
# Test_Main.cpp
# ${HIP_SPARSE_SOURCES}
# hip/Test_HIP_Sparse.cpp
# COMPONENTS sparse
# )

# APPEND_GLOB(HIP_GRAPH_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/hip/Test_HIP_Graph*.cpp)

# KOKKOSKERNELS_ADD_UNIT_TEST(
# graph_hip
# SOURCES
# Test_Main.cpp
# ${HIP_GRAPH_SOURCES}
# hip/Test_HIP_Graph.cpp
# COMPONENTS graph
# )

#currently float 128 test is not working. So common tests are explicitly added.
APPEND_GLOB(HIP_COMMON_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/hip/Test_HIP_Common*.cpp)
KOKKOSKERNELS_ADD_UNIT_TEST(
common_hip
SOURCES
Test_Main.cpp
${HIP_COMMON_SOURCES}
hip/Test_HIP_Common.cpp
COMPONENTS common
)
ENDIF ()

IF (KOKKOS_ENABLE_OPENMP)
KOKKOSKERNELS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/openmp)
KOKKOSKERNELS_INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING ${CMAKE_CURRENT_SOURCE_DIR}/openmp)

APPEND_GLOB(OPENMP_BLAS_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/openmp/Test_OpenMP_Blas*.cpp)

# IF (KOKKOS_ENABLE_DEBUG)
# SET(DISABLE_SLOW_DGEMM_DOUBLE_TEST "--gtest_filter=-openmp.gemm_double")
# ENDIF()

KOKKOSKERNELS_ADD_UNIT_TEST(
blas_openmp
SOURCES
Test_Main.cpp
${OPENMP_BLAS_SOURCES}
openmp/Test_OpenMP_Blas.cpp
COMPONENTS blas
)

APPEND_GLOB(OPENMP_BATCHED_DLA_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/openmp/Test_OpenMP_Batched*.cpp)
KOKKOSKERNELS_ADD_UNIT_TEST(
batched_dla_openmp
SOURCES
Test_Main.cpp
${OPENMP_BATCHED_DLA_SOURCES}
openmp/Test_OpenMP_Batched.cpp
COMPONENTS batched
)

APPEND_GLOB(OPENMP_SPARSE_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/openmp/Test_OpenMP_Sparse*.cpp)

KOKKOSKERNELS_ADD_UNIT_TEST(
sparse_openmp
SOURCES
Test_Main.cpp
${OPENMP_SPARSE_SOURCES}
openmp/Test_OpenMP_Sparse.cpp
COMPONENTS sparse
)

APPEND_GLOB(OPENMP_GRAPH_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/openmp/Test_OpenMP_Graph*.cpp)

KOKKOSKERNELS_ADD_UNIT_TEST(
graph_openmp
SOURCES
Test_Main.cpp
${OPENMP_GRAPH_SOURCES}
openmp/Test_OpenMP_Graph.cpp
COMPONENTS graph
)

APPEND_GLOB(OPENMP_COMMON_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/openmp/Test_OpenMP_Common*.cpp)

KOKKOSKERNELS_ADD_UNIT_TEST(
common_openmp
SOURCES
Test_Main.cpp
${OPENMP_COMMON_SOURCES}
openmp/Test_OpenMP_Common.cpp
COMPONENTS common
)
ENDIF ()

IF (KOKKOS_ENABLE_SERIAL)
KOKKOSKERNELS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/serial)
KOKKOSKERNELS_INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING ${CMAKE_CURRENT_SOURCE_DIR}/serial)

APPEND_GLOB(SERIAL_BLAS_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/serial/Test_Serial_Blas*.cpp)

# IF (KOKKOS_ENABLE_DEBUG)
# SET(DISABLE_SLOW_DGEMM_DOUBLE_TEST "--gtest_filter=-serial.gemm_double")
Expand All @@ -227,92 +189,85 @@ IF (KOKKOS_ENABLE_SERIAL)
blas_serial
SOURCES
Test_Main.cpp
${SERIAL_BLAS_SOURCES}
# ARGS ${DISABLE_SLOW_DGEMM_DOUBLE_TEST}
serial/Test_Serial_Blas.cpp
COMPONENTS blas
)
)

APPEND_GLOB(SERIAL_BATCHED_DLA_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/serial/Test_Serial_Batched*.cpp)
KOKKOSKERNELS_ADD_UNIT_TEST(
batched_dla_serial
SOURCES
Test_Main.cpp
${SERIAL_BATCHED_DLA_SOURCES}
serial/Test_Serial_Batched.cpp
COMPONENTS batched
)

APPEND_GLOB(SERIAL_SPARSE_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/serial/Test_Serial_Sparse*.cpp)
)

KOKKOSKERNELS_ADD_UNIT_TEST(
sparse_serial
SOURCES
Test_Main.cpp
${SERIAL_SPARSE_SOURCES}
serial/Test_Serial_Sparse.cpp
COMPONENTS sparse
)

APPEND_GLOB(SERIAL_GRAPH_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/serial/Test_Serial_Graph*.cpp)

KOKKOSKERNELS_ADD_UNIT_TEST(
graph_serial
SOURCES
Test_Main.cpp
${SERIAL_GRAPH_SOURCES}
serial/Test_Serial_Graph.cpp
COMPONENTS graph
)

APPEND_GLOB(SERIAL_COMMON_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/serial/Test_Serial_Common*.cpp)

KOKKOSKERNELS_ADD_UNIT_TEST(
common_serial
SOURCES
Test_Main.cpp
${SERIAL_COMMON_SOURCES}
serial/Test_Serial_Common.cpp
COMPONENTS common
)
ENDIF ()

IF (KOKKOS_ENABLE_PTHREAD)
KOKKOSKERNELS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/threads)
KOKKOSKERNELS_INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING ${CMAKE_CURRENT_SOURCE_DIR}/threads)

APPEND_GLOB(THREADS_BLAS_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/threads/Test_Threads_Blas*.cpp)

KOKKOSKERNELS_ADD_UNIT_TEST(
blas_threads
SOURCES
Test_Main.cpp
${THREADS_BLAS_SOURCES}
threads/Test_Threads_Blas.cpp
COMPONENTS blas
)
)

APPEND_GLOB(THREADS_SPARSE_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/threads/Test_Threads_Sparse*.cpp)
KOKKOSKERNELS_ADD_UNIT_TEST(
batched_dla_threads
SOURCES
Test_Main.cpp
threads/Test_Threads_Batched.cpp
COMPONENTS batched
)

KOKKOSKERNELS_ADD_UNIT_TEST(
sparse_threads
SOURCES
Test_Main.cpp
${THREADS_SPARSE_SOURCES}
threads/Test_Threads_Sparse.cpp
COMPONENTS sparse
)

APPEND_GLOB(THREADS_GRAPH_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/threads/Test_Threads_Graph*.cpp)

KOKKOSKERNELS_ADD_UNIT_TEST(
graph_threads
SOURCES
Test_Main.cpp
${THREADS_GRAPH_SOURCES}
threads/Test_Threads_Graph.cpp
COMPONENTS graph
)


APPEND_GLOB(THREADS_COMMON_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/threads/Test_Threads_Common*.cpp)

KOKKOSKERNELS_ADD_UNIT_TEST(
common_threads
SOURCES
Test_Main.cpp
${THREADS_COMMON_SOURCES}
threads/Test_Threads_Common.cpp
COMPONENTS common
)
ENDIF ()

Expand Down
Loading