-
Notifications
You must be signed in to change notification settings - Fork 8
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
Debug/ams def libs #60
Draft
koparasy
wants to merge
23
commits into
develop
Choose a base branch
from
debug/ams_def_libs
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from all commits
Commits
Show all changes
23 commits
Select commit
Hold shift + click to select a range
847c9cc
Completely turnoff torch
koparasy 96bf52d
Modifications on cmakes to align our configurations
koparasy bb2988b
Fixes to correctly find static hdf5
koparasy 3a0fe69
Merge branch 'develop' into debug/ams_def_libs
rblake-llnl a3422bc
Checking in a version that links shared.
rblake-llnl 765f6f5
Updating chunk to 256KB.
rblake-llnl 53a3990
We need to separate public/private to link shared/static combos
rblake-llnl e1a2c39
Bugfix, this should have been interface.
rblake-llnl b71e967
Checking in CMake changes to get pytorch working.
rblake-llnl d783ae4
Fix bug of DeltaUQ when running on CUDA. Data are not copied correctl…
koparasy 1f4b81a
Merge remote-tracking branch 'origin/uq/tests' into debug/ams_def_libs
rblake-llnl b83e364
Adding cuda device synchronizes frequently and peeking at cuda errors
koparasy 8c51165
Fix Load Balancer to not call init on constructor and thus avoid Broa…
koparasy bd9ecb4
Merge remote-tracking branch 'origin/bugfix/load_balance' into debug/…
rblake-llnl 67dbe8c
Guard destructor
koparasy 1b2f6f2
Merge remote-tracking branch 'origin/bugfix/load_balance' into debug/…
rblake-llnl 5580eea
Rename DBTypes to prefix with 'DB'
koparasy 0acb0a3
Merge remote-tracking branch 'origin/features/rename_db_types' into d…
rblake-llnl 8e8dc41
Add extensive prints of the device memory allocator
koparasy 56ac1b2
Merge remote-tracking branch 'origin/debug/torch_memory_info' into de…
rblake-llnl 292bc7a
Changes necessary to compile on CPU.
rblake-llnl 4b6b362
Rest of the DDDB changes.
rblake-llnl 2c0d1b7
Fixed CPU build fixes from torch_memory_info
rblake-llnl File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -39,13 +39,16 @@ option(WITH_TORCH_DEBUG "Compute RMSE of Surrogate Model and Physics Module" | |
option(WITH_TESTS "Compile tests" OFF) | ||
option(WITH_REDIS "Use REDIS as a database back end" OFF) | ||
option(WITH_HDF5 "Use HDF5 as a database back end" OFF) | ||
option(HDF5_USE_STATIC_LIBRARIES "Use static HDF5." OFF) | ||
set(HDF5_WITH_ZLIB "" CACHE FILETYPE "Use the following zlib for HDF5") | ||
option(WITH_RMQ "Use RabbitMQ as a database back end (require a reachable and running RabbitMQ server service)" OFF) | ||
option(WITH_AMS_DEBUG "Enable verbose messages" OFF) | ||
option(WITH_PERFFLOWASPECT "Use PerfFlowAspect for Profiling" OFF) | ||
option(WITH_WORKFLOW "Install python drivers used by the outer workflow" OFF) | ||
option(WITH_AMS_LIB "Install C++ library to support scientific applications" ON) | ||
option(WITH_ADIAK "Use Adiak for recording metadata" OFF) | ||
option(BUILD_SHARED_LIBS "Build using shared libraries" ON) | ||
option(EXCLUDE_STATIC_LIBS "Exclude static libs from the linking line" OFF) | ||
|
||
if (WITH_MPI) | ||
# SET(CMAKE_CXX_COMPILER "${MPI_CXX_COMPILER}" CACHE FILEPATH "CXX compiler overridden with MPI C++ wrapper") | ||
|
@@ -69,6 +72,7 @@ if (WITH_CUDA) | |
if (BUILD_SHARED_LIBS) | ||
set(CUDA_RUNTIME_LIBRARY "Shared") | ||
else() | ||
set(HDF5_USE_STATIC_LIBRARIES ON) | ||
set(CUDA_RUNTIME_LIBRARY "Static") | ||
endif() | ||
|
||
|
@@ -91,7 +95,7 @@ if (WITH_CALIPER) | |
endif() | ||
|
||
if (WITH_AMS_DEBUG) | ||
list(APPEND AMS_APP_DEFINES "-DLIBAMS_VERBOSE") | ||
list(APPEND AMS_APP_DEFINES "-DAMS_DEBUG") | ||
endif() | ||
|
||
# ------------------------------------------------------------------------------ | ||
|
@@ -132,14 +136,17 @@ endif() # WITH_REDIS | |
|
||
if (WITH_HDF5) | ||
if (HDF5_USE_STATIC_LIBRARIES) | ||
find_package(HDF5 NAMES hdf5 COMPONENTS C static NO_DEFAULT_PATH PATHS ${AMS_HDF5_DIR} ${AMS_HDF5_DIR}/share/cmake) | ||
list(APPEND AMS_APP_LIBRARIES ${HDF5_C_STATIC_LIBRARY}) | ||
message(STATUS "HDF5 Static Library : ${HDF5_C_STATIC_LIBRARY}") | ||
else() | ||
find_package(HDF5 NAMES hdf5 COMPONENTS C shared NO_DEFAULT_PATH PATHS ${AMS_HDF5_DIR} ${AMS_HDF5_DIR}/share/cmake) | ||
list(APPEND AMS_APP_LIBRARIES ${HDF5_C_SHARED_LIBRARY}) | ||
message(STATUS "HDF5 Shared Library : ${HDF5_C_SHARED_LIBRARY}") | ||
endif() | ||
find_package(HDF5 NAMES hdf5 COMPONENTS C static NO_DEFAULT_PATH PATHS ${AMS_HDF5_DIR} ${AMS_HDF5_DIR}/share/cmake) | ||
list(APPEND AMS_APP_LIBRARIES ${HDF5_C_STATIC_LIBRARY}) | ||
message(STATUS "HDF5 Static Library : ${HDF5_C_STATIC_LIBRARY}") | ||
else() | ||
find_package(HDF5 NAMES hdf5 COMPONENTS C shared NO_DEFAULT_PATH PATHS ${AMS_HDF5_DIR} ${AMS_HDF5_DIR}/share/cmake) | ||
list(APPEND AMS_APP_LIBRARIES ${HDF5_C_SHARED_LIBRARY}) | ||
message(STATUS "HDF5 Shared Library : ${HDF5_C_SHARED_LIBRARY}") | ||
endif() | ||
if (NOT HDF5_WITH_ZLIB STREQUAL "") | ||
list(APPEND AMS_APP_LIBRARIES ${HDF5_WITH_ZLIB}) | ||
endif() | ||
list(APPEND AMS_APP_INCLUDES ${HDF5_INCLUDE_DIR}) | ||
list(APPEND AMS_APP_DEFINES "-D__ENABLE_HDF5__") | ||
message(STATUS "HDF5 Include directories: ${HDF5_INCLUDE_DIR}") | ||
|
@@ -191,16 +198,50 @@ if (WITH_TORCH) | |
find_package(Torch REQUIRED) | ||
# This is annoying, torch populates all my cuda flags | ||
# and resets them | ||
set(CMAKE_CUDA_FLAGS "") | ||
# set(CMAKE_CUDA_FLAGS "") | ||
set(CMAKE_CUDA_ARCHITECTURES ON) | ||
|
||
list(APPEND AMS_APP_INCLUDES "${TORCH_INCLUDE_DIRS}") | ||
list(APPEND AMS_APP_LIBRARIES "${TORCH_LIBRARIES}") | ||
|
||
#get_target_property(torch_interface_system_includes | ||
# torch INTERFACE_SYSTEM_INCLUDE_DIRECTORIES) | ||
#if ( torch_interface_system_includes ) | ||
# list(APPEND AMS_APP_INCLUDES ${torch_interface_system_includes}) | ||
#endif() | ||
# | ||
#get_target_property(torch_interface_includes | ||
# torch INTERFACE_INCLUDE_DIRECTORIES) | ||
#if ( torch_interface_includes ) | ||
# list(APPEND AMS_APP_INCLUDES ${torch_interface_includes}) | ||
#endif() | ||
# | ||
#get_target_property(torch_interface_defines | ||
# torch INTERFACE_COMPILE_DEFINITIONS) | ||
#if ( troch_interface_defines ) | ||
# list(APPEND AMS_APP_DEFINES ${torch_interface_defines}) | ||
#endif() | ||
# | ||
#get_target_property(torch_interface_compile_options | ||
# torch INTERFACE_COMPILE_OPTIONS) | ||
#if ( torch_interface_compile_options ) | ||
# list(APPEND AMS_APP_DEFINES ${torch_interface_compile_options}) | ||
#endif() | ||
# | ||
#get_target_property(_interface_link_directories | ||
# ${arg_FROM} INTERFACE_LINK_DIRECTORIES) | ||
#if ( _interface_link_directories ) | ||
# target_link_directories( ${arg_TO} ${_scope} ${_interface_link_directories}) | ||
#endif() | ||
# | ||
#get_target_property(torch_interface_link_libraries | ||
# torch INTERFACE_LINK_LIBRARIES) | ||
#if ( torch_interface_link_libraries ) | ||
# list(APPEND AMS_APP_LIBRARIES "${torch_interface_link_libraries}") | ||
#endif() | ||
|
||
list(APPEND AMS_TORCH_LIBRARY torch) | ||
list(APPEND AMS_APP_DEFINES "-D__ENABLE_TORCH__") | ||
set(BLA_VENDER OpenBLAS) | ||
find_package(BLAS REQUIRED) | ||
list(APPEND AMS_APP_LIBRARIES "${BLAS_LIBRARIES}") | ||
#set(BLA_VENDER OpenBLAS) | ||
#find_package(BLAS REQUIRED) | ||
#list(APPEND AMS_APP_LIBRARIES "${BLAS_LIBRARIES}") | ||
endif() | ||
|
||
# ------------------------------------------------------------------------------ | ||
|
@@ -253,6 +294,98 @@ if (WITH_PERFFLOWASPECT) | |
endif() | ||
|
||
|
||
macro(inherit_target_nostatic) | ||
set(options) | ||
set(singleValueArgs TO FROM OBJECT) | ||
set(multiValueArgs) | ||
|
||
# Parse the arguments | ||
cmake_parse_arguments(arg "${options}" "${singleValueArgs}" | ||
"${multiValueArgs}" ${ARGN} ) | ||
|
||
# Check arguments | ||
if ( NOT DEFINED arg_TO ) | ||
message( FATAL_ERROR "Must provide a TO argument to the 'blt_inherit_target' macro" ) | ||
endif() | ||
|
||
if ( NOT DEFINED arg_FROM ) | ||
message( FATAL_ERROR "Must provide a FROM argument to the 'blt_inherit_target' macro" ) | ||
endif() | ||
|
||
set(_scope INTERFACE) | ||
|
||
get_target_property(_interface_system_includes | ||
${arg_FROM} INTERFACE_SYSTEM_INCLUDE_DIRECTORIES) | ||
if ( _interface_system_includes ) | ||
target_include_directories(${arg_TO} SYSTEM ${_scope} ${_interface_system_includes}) | ||
endif() | ||
|
||
get_target_property(_interface_includes | ||
${arg_FROM} INTERFACE_INCLUDE_DIRECTORIES) | ||
if ( _interface_includes ) | ||
target_include_directories(${arg_TO} ${_scope} ${_interface_includes}) | ||
endif() | ||
|
||
get_target_property(_interface_defines | ||
${arg_FROM} INTERFACE_COMPILE_DEFINITIONS) | ||
if ( _interface_defines ) | ||
target_compile_definitions( ${arg_TO} ${_scope} ${_interface_defines}) | ||
endif() | ||
|
||
if( ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.13.0" ) | ||
get_target_property(_interface_link_options | ||
${arg_FROM} INTERFACE_LINK_OPTIONS) | ||
if ( _interface_link_options ) | ||
target_link_options( ${arg_TO} ${_scope} ${_interface_link_options}) | ||
endif() | ||
endif() | ||
|
||
get_target_property(_interface_compile_options | ||
${arg_FROM} INTERFACE_COMPILE_OPTIONS) | ||
if ( _interface_compile_options ) | ||
target_compile_options( ${arg_TO} ${_scope} ${_interface_compile_options}) | ||
endif() | ||
|
||
if ( NOT arg_OBJECT ) | ||
#get_target_property(_interface_link_directories | ||
# ${arg_FROM} INTERFACE_LINK_DIRECTORIES) | ||
#if ( _interface_link_directories ) | ||
# target_link_directories( ${arg_TO} ${_scope} ${_interface_link_directories}) | ||
#endif() | ||
|
||
#get_target_property(_interface_link_libraries | ||
# ${arg_FROM} INTERFACE_LINK_LIBRARIES) | ||
#if ( _interface_link_libraries ) | ||
# target_link_libraries( ${arg_TO} ${_scope} ${_interface_link_libraries}) | ||
#endif() | ||
endif() | ||
|
||
endmacro(inherit_target_nostatic) | ||
|
||
|
||
if (EXCLUDE_STATIC_LIBS) | ||
set(NONSTATIC_AMS_APP_INTERFACE_LIBRARIES "") | ||
set(NONSTATIC_AMS_APP_PRIVATE_LIBRARIES "") | ||
foreach (THIS_LIB ${AMS_APP_LIBRARIES}) | ||
list(APPEND NONSTATIC_AMS_APP_INTERFACE_LIBRARIES ${THIS_LIB}) | ||
if (TARGET ${THIS_LIB}) | ||
get_target_property(target_type ${THIS_LIB} TYPE) | ||
if (NOT target_type STREQUAL STATIC_LIBRARY) | ||
list(APPEND NONSTATIC_AMS_APP_PRIVATE_LIBRARIES ${THIS_LIB}) | ||
else() | ||
add_library("${THIS_LIB}::nostatic" INTERFACE IMPORTED) | ||
inherit_target_nostatic(TO "${THIS_LIB}::nostatic" FROM ${THIS_LIB}) | ||
list(APPEND NONSTATIC_AMS_APP_PRIVATE_LIBRARIES "${THIS_LIB}::nostatic") | ||
endif() | ||
else() | ||
get_filename_component(THIS_EXT ${THIS_LIB} EXT) | ||
if (NOT ".a" STREQUAL "${THIS_EXT}") | ||
list(APPEND NONSTATIC_AMS_APP_PRIVATE_LIBRARIES ${THIS_LIB}) | ||
endif() | ||
endif() | ||
endforeach() | ||
endif() | ||
|
||
Comment on lines
+297
to
+388
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should we add a ams_macros.cmake file under cmake directory and have these macros? Not for now. Just asking. |
||
add_subdirectory(src) | ||
|
||
# ------------------------------------------------------------------------------ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't remember why I did this in the first place. But did you maybe investigate the implications of commenting this out?