-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Initial support for RCCL * OMNITRACE_USE_RCCLP + sampling tweaks - also OMNITRACE_SAMPLING_KEEP_INTERNAL option - minor modifications to sampling to use keep internal option + discard funlockfile * Update docker and workflows to download RCCL * Update CPack DEB with rocprofiler dependency * Rework rccl into library and library/components folder - add tpls/rccl/rccl/rccl.h * Fix timemory includes * rcclp inline definitions when disabled * Tweaks to ubuntu-focal-external-rocm - disable ompt - enable building testing * Tweaks to ubuntu-focal-external-rocm - ctest exclude * Tweak ubuntu-focal.yml - remove source /.../setup-env.sh, replace with $GITHUB_ENV * Fix ubuntu-focal-rocm + OMPI + root * Improved rocm-smi error handling - Recover from rocm-smi errors - Disabling rocm-smi after recovering from errors - Werror in developer mode - Remove State::DelayedInit - Add State::Disabled * formatting * Fix merge of OMNITRACE_SAMPLING_KEEP_INTERNAL * Update RCCL include directory - based on ROCm version we need with <rccl/rccl.h> or <rccl.h> * RCCL Testing - updated tests to use configuration files - many tests generate a configuration file - tests how have GPU option - enable ncclCommCount, disable ncclGetVersion - add testing for RCCLP via rccl-tests - working directory of tests is PROJECT_BINARY_DIR - add nccl/rccl functions to get_whole_function_names - some clang compiler fixes * Handle RCCL include w/o HIP * RCCL requires HIP * Update OMNITRACE_SAMPLING_CPUS for testing * Update tests/CMakeLists.txt * Debug settings * Install MPI even when USE_MPI=OFF * exclude printf * skip mpi tests w/o USE_MPI or USE_MPI_HEADERS * update ubuntu rocm workflow * Fix configure env step for ubuntu rocm
- Loading branch information
Showing
29 changed files
with
1,814 additions
and
121 deletions.
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
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
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 |
---|---|---|
@@ -0,0 +1,94 @@ | ||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying file | ||
# Copyright.txt or https://cmake.org/licensing for details. | ||
|
||
include(FindPackageHandleStandardArgs) | ||
|
||
# ----------------------------------------------------------------------------------------# | ||
|
||
set(RCCL-Headers_INCLUDE_DIR_INTERNAL | ||
"${PROJECT_SOURCE_DIR}/source/lib/omnitrace/library/tpls/rccl" | ||
CACHE PATH "Path to internal rccl.h") | ||
|
||
# ----------------------------------------------------------------------------------------# | ||
|
||
if(NOT ROCM_PATH AND NOT "$ENV{ROCM_PATH}" STREQUAL "") | ||
set(ROCM_PATH "$ENV{ROCM_PATH}") | ||
endif() | ||
|
||
foreach(_DIR ${ROCmVersion_DIR} ${ROCM_PATH} /opt/rocm /opt/rocm/rccl) | ||
if(EXISTS ${_DIR}) | ||
get_filename_component(_ABS_DIR "${_DIR}" REALPATH) | ||
list(APPEND _RCCL_PATHS ${_ABS_DIR}) | ||
endif() | ||
endforeach() | ||
|
||
# ----------------------------------------------------------------------------------------# | ||
|
||
find_package( | ||
rccl | ||
QUIET | ||
CONFIG | ||
HINTS | ||
${_RCCL_PATHS} | ||
PATHS | ||
${_RCCL_PATHS} | ||
PATH_SUFFIXES | ||
rccl/lib/cmake) | ||
|
||
if(NOT rccl_FOUND) | ||
set(RCCL-Headers_INCLUDE_DIR | ||
"${RCCL-Headers_INCLUDE_DIR_INTERNAL}" | ||
CACHE PATH "Path to RCCL headers") | ||
else() | ||
set(RCCL-Headers_INCLUDE_DIR | ||
"${rccl_INCLUDE_DIR}" | ||
CACHE PATH "Path to RCCL headers") | ||
endif() | ||
|
||
# because of the annoying warning starting with v5.2.0, we've got to do this crap | ||
if(ROCmVersion_NUMERIC_VERSION) | ||
if(ROCmVersion_NUMERIC_VERSION LESS 50200) | ||
set(_RCCL-Headers_FILE "rccl.h") | ||
set(_RCCL-Headers_DIR "/rccl") | ||
else() | ||
set(_RCCL-Headers_FILE "rccl/rccl.h") | ||
set(_RCCL-Headers_DIR "") | ||
endif() | ||
else() | ||
set(_RCCL-Headers_FILE "rccl/rccl.h") | ||
set(_RCCL-Headers_DIR "") | ||
endif() | ||
|
||
if(NOT EXISTS "${RCCL-Headers_INCLUDE_DIR}/${_RCCL-Headers_FILE}") | ||
omnitrace_message( | ||
AUTHOR_WARNING | ||
"RCCL header (${RCCL-Headers_INCLUDE_DIR}/${_RCCL-Headers_FILE}) does not exist! Setting RCCL-Headers_INCLUDE_DIR to internal RCCL include directory: ${RCCL-Headers_INCLUDE_DIR_INTERNAL}" | ||
) | ||
set(RCCL-Headers_INCLUDE_DIR | ||
"${RCCL-Headers_INCLUDE_DIR_INTERNAL}${_RCCL-Headers_DIR}" | ||
CACHE PATH "Path to RCCL headers" FORCE) | ||
endif() | ||
|
||
unset(_RCCL-Headers_FILE) | ||
unset(_RCCL-Headers_DIR) | ||
|
||
mark_as_advanced(RCCL-Headers_INCLUDE_DIR) | ||
|
||
# ----------------------------------------------------------------------------------------# | ||
|
||
find_package_handle_standard_args(RCCL-Headers DEFAULT_MSG RCCL-Headers_INCLUDE_DIR) | ||
|
||
# ------------------------------------------------------------------------------# | ||
|
||
if(RCCL-Headers_FOUND) | ||
add_library(roc::rccl-headers INTERFACE IMPORTED) | ||
set(RCCL-Headers_INCLUDE_DIRS ${RCCL-Headers_INCLUDE_DIR}) | ||
|
||
target_include_directories(roc::rccl-headers SYSTEM | ||
INTERFACE ${RCCL-Headers_INCLUDE_DIR}) | ||
|
||
add_library(RCCL-Headers::RCCL-Headers INTERFACE IMPORTED) | ||
target_link_libraries(RCCL-Headers::RCCL-Headers INTERFACE roc::rccl-headers) | ||
endif() | ||
|
||
# ------------------------------------------------------------------------------# |
Oops, something went wrong.