Skip to content

Commit

Permalink
Merge pull request #5 from morpheus-org/functors
Browse files Browse the repository at this point in the history
Added Functors and Binary IO
  • Loading branch information
cstyl committed May 26, 2023
2 parents 2e58af9 + f98ec7a commit ec61590
Show file tree
Hide file tree
Showing 3,445 changed files with 776,416 additions and 483 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
4 changes: 2 additions & 2 deletions .github/workflows/unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,11 +87,11 @@ jobs:
sudo cmake --build . --target install --parallel 2
- name: Checkout Morpheus-v0.5.00
- name: Checkout Morpheus (develop)
uses: actions/checkout@v3
with:
repository: morpheus-org/morpheus
ref: master
ref: develop
path: morpheus

- name: Installing Morpheus
Expand Down
159 changes: 53 additions & 106 deletions cmake/morpheusoracle_utils.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -178,111 +178,68 @@ function(MORPHEUSORACLE_ADD_LIBRARY LIBRARY_NAME)
morpheusoracle_internal_add_library(${LIBRARY_NAME} ${ARGN})
endfunction()

# function(MORPHEUSORACLE_ADD_EXECUTABLE EXE_NAME)
# cmake_parse_arguments(PARSE "" "" "SOURCES;COMPONENTS;TESTONLYLIBS" ${ARGN})
# verify_empty(MORPHEUSORACLE_ADD_EXECUTABLE ${PARSE_UNPARSED_ARGUMENTS})

# morpheusoracle_is_enabled(COMPONENTS ${PARSE_COMPONENTS} OUTPUT_VARIABLE
# IS_ENABLED)

# if(IS_ENABLED)
# add_executable(${EXE_NAME} ${PARSE_SOURCES})
# # AJP, BMK altered:
# if(MORPHEUSORACLE_ENABLE_TESTS_AND_PERFSUITE)
# target_link_libraries(${EXE_NAME} PRIVATE common ${PARSE_TESTONLYLIBS})
# endif()

# if(PARSE_TESTONLYLIBS)
# target_link_libraries(${EXE_NAME} PRIVATE Morpheus::morpheus-oracle
# ${PARSE_TESTONLYLIBS})
# else()
# target_link_libraries(${EXE_NAME} PRIVATE Morpheus::morpheus-oracle)
# endif()
# else()
# message(
# STATUS
# "Skipping executable ${EXE_NAME} because not all necessary components enabled"
# )
# endif()
# endfunction()
# function(MORPHEUSORACLE_ADD_EXECUTABLE EXE_NAME) cmake_parse_arguments(PARSE
# "" "" "SOURCES;COMPONENTS;TESTONLYLIBS" ${ARGN})
# verify_empty(MORPHEUSORACLE_ADD_EXECUTABLE ${PARSE_UNPARSED_ARGUMENTS})

# morpheusoracle_is_enabled(COMPONENTS ${PARSE_COMPONENTS} OUTPUT_VARIABLE
# IS_ENABLED)

# if(IS_ENABLED) add_executable(${EXE_NAME} ${PARSE_SOURCES}) # AJP, BMK
# altered: if(MORPHEUSORACLE_ENABLE_TESTS_AND_PERFSUITE)
# target_link_libraries(${EXE_NAME} PRIVATE common ${PARSE_TESTONLYLIBS})
# endif()

# if(PARSE_TESTONLYLIBS) target_link_libraries(${EXE_NAME} PRIVATE
# Morpheus::morpheus-oracle ${PARSE_TESTONLYLIBS}) else()
# target_link_libraries(${EXE_NAME} PRIVATE Morpheus::morpheus-oracle) endif()
# else() message( STATUS "Skipping executable ${EXE_NAME} because not all
# necessary components enabled" ) endif() endfunction()

# function(MORPHEUSORACLE_ADD_EXECUTABLE_AND_TEST ROOT_NAME)

# cmake_parse_arguments(PARSE "" ""
# "SOURCES;CATEGORIES;COMPONENTS;TESTONLYLIBS" ${ARGN})
# verify_empty(MORPHEUSORACLE_ADD_EXECUTABLE_AND_RUN_VERIFY
# ${PARSE_UNPARSED_ARGUMENTS})

# morpheusoracle_is_enabled(COMPONENTS ${PARSE_COMPONENTS} OUTPUT_VARIABLE
# IS_ENABLED)

# if(IS_ENABLED)
# set(EXE_NAME ${PACKAGE_NAME}_${ROOT_NAME})
# morpheusoracle_add_executable(${EXE_NAME} SOURCES ${PARSE_SOURCES})
# if(PARSE_TESTONLYLIBS)
# target_link_libraries(${EXE_NAME} PRIVATE ${PARSE_TESTONLYLIBS})
# endif()
# morpheusoracle_add_test(NAME ${ROOT_NAME} EXE ${EXE_NAME})
# else()
# message(
# STATUS
# "Skipping executable/test ${ROOT_NAME} because not all necessary components enabled"
# )
# endif()
# cmake_parse_arguments(PARSE "" "" "SOURCES;CATEGORIES;COMPONENTS;TESTONLYLIBS"
# ${ARGN}) verify_empty(MORPHEUSORACLE_ADD_EXECUTABLE_AND_RUN_VERIFY
# ${PARSE_UNPARSED_ARGUMENTS})

# endfunction()
# morpheusoracle_is_enabled(COMPONENTS ${PARSE_COMPONENTS} OUTPUT_VARIABLE
# IS_ENABLED)

# function(MORPHEUSORACLE_ADD_TEST)
# if(IS_ENABLED) set(EXE_NAME ${PACKAGE_NAME}_${ROOT_NAME})
# morpheusoracle_add_executable(${EXE_NAME} SOURCES ${PARSE_SOURCES})
# if(PARSE_TESTONLYLIBS) target_link_libraries(${EXE_NAME} PRIVATE
# ${PARSE_TESTONLYLIBS}) endif() morpheusoracle_add_test(NAME ${ROOT_NAME} EXE
# ${EXE_NAME}) else() message( STATUS "Skipping executable/test ${ROOT_NAME}
# because not all necessary components enabled" ) endif()

# cmake_parse_arguments(PARSE "" "" "COMPONENTS" ${ARGN})

# morpheusoracle_is_enabled(COMPONENTS ${PARSE_COMPONENTS} OUTPUT_VARIABLE
# IS_ENABLED)

# if(IS_ENABLED)
# cmake_parse_arguments(
# TEST "WILL_FAIL"
# "FAIL_REGULAR_EXPRESSION;PASS_REGULAR_EXPRESSION;EXE;NAME" "CATEGORIES"
# ${PARSE_UNPARSED_ARGUMENTS})
# if(TEST_EXE)
# set(EXE ${TEST_EXE})
# else()
# set(EXE ${TEST_NAME})
# endif()
# if(WIN32)
# add_test(
# NAME ${TEST_NAME}
# WORKING_DIRECTORY ${LIBRARY_OUTPUT_PATH}
# COMMAND ${EXE}${CMAKE_EXECUTABLE_SUFFIX})
# else()
# add_test(NAME ${TEST_NAME} COMMAND ${EXE})
# endif()
# if(TEST_WILL_FAIL)
# set_tests_properties(${TEST_NAME} PROPERTIES WILL_FAIL ${TEST_WILL_FAIL})
# endif()
# if(TEST_FAIL_REGULAR_EXPRESSION)
# set_tests_properties(
# ${TEST_NAME} PROPERTIES FAIL_REGULAR_EXPRESSION
# ${TEST_FAIL_REGULAR_EXPRESSION})
# endif()
# if(TEST_PASS_REGULAR_EXPRESSION)
# set_tests_properties(
# ${TEST_NAME} PROPERTIES PASS_REGULAR_EXPRESSION
# ${TEST_PASS_REGULAR_EXPRESSION})
# endif()
# verify_empty(MORPHEUSORACLE_ADD_TEST ${TEST_UNPARSED_ARGUMENTS})
# else()
# message(
# STATUS
# "Skipping test ${TEST_NAME} because not all necessary components enabled"
# )
# endif()
# endfunction()

# function(MORPHEUSORACLE_ADD_TEST)

# cmake_parse_arguments(PARSE "" "" "COMPONENTS" ${ARGN})

# morpheusoracle_is_enabled(COMPONENTS ${PARSE_COMPONENTS} OUTPUT_VARIABLE
# IS_ENABLED)

# if(IS_ENABLED) cmake_parse_arguments( TEST "WILL_FAIL"
# "FAIL_REGULAR_EXPRESSION;PASS_REGULAR_EXPRESSION;EXE;NAME" "CATEGORIES"
# ${PARSE_UNPARSED_ARGUMENTS}) if(TEST_EXE) set(EXE ${TEST_EXE}) else() set(EXE
# ${TEST_NAME}) endif() if(WIN32) add_test( NAME ${TEST_NAME} WORKING_DIRECTORY
# ${LIBRARY_OUTPUT_PATH} COMMAND ${EXE}${CMAKE_EXECUTABLE_SUFFIX}) else()
# add_test(NAME ${TEST_NAME} COMMAND ${EXE}) endif() if(TEST_WILL_FAIL)
# set_tests_properties(${TEST_NAME} PROPERTIES WILL_FAIL ${TEST_WILL_FAIL})
# endif() if(TEST_FAIL_REGULAR_EXPRESSION) set_tests_properties( ${TEST_NAME}
# PROPERTIES FAIL_REGULAR_EXPRESSION ${TEST_FAIL_REGULAR_EXPRESSION}) endif()
# if(TEST_PASS_REGULAR_EXPRESSION) set_tests_properties( ${TEST_NAME} PROPERTIES
# PASS_REGULAR_EXPRESSION ${TEST_PASS_REGULAR_EXPRESSION}) endif()
# verify_empty(MORPHEUSORACLE_ADD_TEST ${TEST_UNPARSED_ARGUMENTS}) else()
# message( STATUS "Skipping test ${TEST_NAME} because not all necessary
# components enabled" ) endif() endfunction()

function(MORPHEUSORACLE_ADD_EXECUTABLE_AND_TEST ROOT_NAME)
cmake_parse_arguments(PARSE "" "" "SOURCES;CATEGORIES;ARGS" ${ARGN})
verify_empty(MORPHEUSORACLE_ADD_EXECUTABLE_AND_TEST ${PARSE_UNPARSED_ARGUMENTS})
verify_empty(MORPHEUSORACLE_ADD_EXECUTABLE_AND_TEST
${PARSE_UNPARSED_ARGUMENTS})

morpheusoracle_add_test_executable(${ROOT_NAME} SOURCES ${PARSE_SOURCES})
if(PARSE_ARGS)
Expand All @@ -304,8 +261,8 @@ function(MORPHEUSORACLE_ADD_EXECUTABLE_AND_TEST ROOT_NAME)
${ARG_STR_LIST})
endforeach()
else()
morpheusoracle_add_test(NAME ${ROOT_NAME} EXE ${ROOT_NAME}
FAIL_REGULAR_EXPRESSION " FAILED ")
morpheusoracle_add_test(NAME ${ROOT_NAME} EXE ${ROOT_NAME}
FAIL_REGULAR_EXPRESSION " FAILED ")
endif()
endfunction()

Expand Down Expand Up @@ -368,7 +325,6 @@ function(MORPHEUSORACLE_ADD_EXECUTABLE ROOT_NAME)
target_link_libraries(${EXE_NAME} PRIVATE Morpheus::morpheus-oracle)
endfunction()


function(MORPHEUSORACLE_INTERNAL_ADD_LIBRARY LIBRARY_NAME)
cmake_parse_arguments(PARSE "STATIC;SHARED" "" "HEADERS;SOURCES" ${ARGN})

Expand All @@ -395,15 +351,6 @@ function(MORPHEUSORACLE_INTERNAL_ADD_LIBRARY LIBRARY_NAME)
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})

install(
FILES ${PARSE_HEADERS}
DESTINATION ${MORPHEUSORACLE_HEADER_INSTALL_DIR}
COMPONENT ${PACKAGE_NAME})

install(FILES ${PARSE_HEADERS}
DESTINATION ${MORPHEUSORACLE_HEADER_INSTALL_DIR})

endfunction(MORPHEUSORACLE_INTERNAL_ADD_LIBRARY LIBRARY_NAME)

function(MORPHEUSORACLE_IS_ENABLED)
Expand Down
14 changes: 14 additions & 0 deletions experiments/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
project(MorpheusOracleExperiments CXX)

cmake_minimum_required(VERSION 3.16)

find_package(MorpheusOracle REQUIRED)
message(STATUS "Found Morpheus at ${MorpheusOracle_DIR}")

option(MorpheusOracleExperiments_ENABLE_GENERIC "Enable Morpheus Generic backends" OFF)
option(MorpheusOracleExperiments_ENABLE_SERIAL "Enable Serial Execution Space" OFF)
option(MorpheusOracleExperiments_ENABLE_OPENMP "Enable OpenMP Execution Space" OFF)
option(MorpheusOracleExperiments_ENABLE_CUDA "Enable Cuda Execution Space" OFF)
option(MorpheusOracleExperiments_ENABLE_HIP "Enable HIP Execution Space" OFF)

add_subdirectory(tuners_comparison)
Loading

0 comments on commit ec61590

Please sign in to comment.