v0.0.3: MPI wrappers w/o full MPI support + setup-env.sh (#15)
* v0.0.3: MPI wrappers w/o full MPI support + setup-env.sh - bumped to v0.0.3 - enabled gotcha wrapping of MPI functions w/o enabling MPI - added setup-env.sh script - minor updates to testing - Update timemory submodule - fixes tim::component::configure_mpip undefined symbol - Script updates
This commit is contained in:
committed by
GitHub
parent
02f59ec9dc
commit
c56b49a0bd
@@ -0,0 +1,41 @@
|
||||
# ------------------------------------------------------------------------------#
|
||||
#
|
||||
# Finds headers for MPI
|
||||
#
|
||||
# ------------------------------------------------------------------------------#
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
find_path(
|
||||
MPI_HEADERS_INCLUDE_DIR
|
||||
NAMES mpi.h
|
||||
PATH_SUFFIXES include include/mpich include/openmpi mpich openmpi
|
||||
HINTS ${MPI_ROOT_DIR}
|
||||
PATHS ${MPI_ROOT_DIR})
|
||||
|
||||
if(NOT MPI_HEADERS_INCLUDE_DIR)
|
||||
find_package(MPI QUIET)
|
||||
if(MPI_C_INCLUDE_DIRS)
|
||||
set(MPI_HEADERS_INCLUDE_DIR
|
||||
${MPI_C_INCLUDE_DIRS}
|
||||
CACHE PATH "Include directory for MPI" FORCE)
|
||||
elseif(MPI_CXX_INCLUDE_DIRS)
|
||||
set(MPI_HEADERS_INCLUDE_DIR
|
||||
${MPI_CXX_INCLUDE_DIRS}
|
||||
CACHE PATH "Include directory for MPI" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(MPI_HEADERS_INCLUDE_DIR)
|
||||
set(MPI_HEADERS_INCLUDE_DIRS ${MPI_HEADERS_INCLUDE_DIR})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(MPI_HEADERS_INCLUDE_DIR)
|
||||
find_package_handle_standard_args(MPI-Headers REQUIRED_VARS MPI_HEADERS_INCLUDE_DIR)
|
||||
|
||||
if(MPI-Headers_FOUND)
|
||||
add_library(MPI::MPI_HEADERS IMPORTED INTERFACE)
|
||||
target_include_directories(
|
||||
MPI::MPI_HEADERS INTERFACE $<$<COMPILE_LANGUAGE:C>:${MPI_HEADERS_INCLUDE_DIR}>
|
||||
$<$<COMPILE_LANGUAGE:CXX>:${MPI_HEADERS_INCLUDE_DIR}>)
|
||||
endif()
|
||||
@@ -0,0 +1,124 @@
|
||||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying file
|
||||
# Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
|
||||
set(_ROCM_PATHS $ENV{ROCM_HOME} /opt/rocm /opt/rocm/roctracer)
|
||||
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
|
||||
find_path(
|
||||
roctracer_ROOT_DIR
|
||||
NAMES include/roctracer.h
|
||||
HINTS ${_ROCM_PATHS}
|
||||
PATHS ${_ROCM_PATHS}
|
||||
PATH_SUFFIXES roctracer)
|
||||
|
||||
mark_as_advanced(roctracer_ROOT_DIR)
|
||||
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
|
||||
find_path(
|
||||
roctracer_INCLUDE_DIR
|
||||
NAMES roctracer.h
|
||||
HINTS ${roctracer_ROOT_DIR} ${_ROCM_PATHS}
|
||||
PATHS ${roctracer_ROOT_DIR} ${_ROCM_PATHS}
|
||||
PATH_SUFFIXES roctracer/include include)
|
||||
|
||||
mark_as_advanced(roctracer_INCLUDE_DIR)
|
||||
|
||||
find_path(
|
||||
roctracer_hsa_INCLUDE_DIR
|
||||
NAMES hsa.h
|
||||
HINTS ${roctracer_ROOT_DIR} ${_ROCM_PATHS}
|
||||
PATHS ${roctracer_ROOT_DIR} ${_ROCM_PATHS}
|
||||
PATH_SUFFIXES include include/hsa)
|
||||
|
||||
mark_as_advanced(roctracer_hsa_INCLUDE_DIR)
|
||||
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
|
||||
find_library(
|
||||
roctracer_LIBRARY
|
||||
NAMES roctracer64 roctracer
|
||||
HINTS ${roctracer_ROOT_DIR} ${_ROCM_PATHS}
|
||||
PATHS ${roctracer_ROOT_DIR} ${_ROCM_PATHS}
|
||||
PATH_SUFFIXES lib lib64)
|
||||
|
||||
find_library(
|
||||
roctracer_roctx_LIBRARY
|
||||
NAMES roctx64 roctx
|
||||
HINTS ${roctracer_ROOT_DIR} ${_ROCM_PATHS}
|
||||
PATHS ${roctracer_ROOT_DIR} ${_ROCM_PATHS}
|
||||
PATH_SUFFIXES lib lib64)
|
||||
|
||||
find_library(
|
||||
roctracer_kfdwrapper_LIBRARY
|
||||
NAMES kfdwrapper64 kfdwrapper
|
||||
HINTS ${roctracer_ROOT_DIR} ${_ROCM_PATHS}
|
||||
PATHS ${roctracer_ROOT_DIR} ${_ROCM_PATHS}
|
||||
PATH_SUFFIXES lib lib64)
|
||||
|
||||
find_library(
|
||||
roctracer_hsakmt_LIBRARY
|
||||
NAMES hsakmt
|
||||
HINTS ${roctracer_ROOT_DIR} ${_ROCM_PATHS}
|
||||
PATHS ${roctracer_ROOT_DIR} ${_ROCM_PATHS}
|
||||
PATH_SUFFIXES lib lib64)
|
||||
|
||||
if(roctracer_LIBRARY)
|
||||
get_filename_component(roctracer_LIBRARY_DIR "${roctracer_LIBRARY}" PATH CACHE)
|
||||
endif()
|
||||
|
||||
mark_as_advanced(roctracer_LIBRARY roctracer_roctx_LIBRARY)
|
||||
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
|
||||
find_package_handle_standard_args(
|
||||
roctracer DEFAULT_MSG roctracer_ROOT_DIR roctracer_INCLUDE_DIR
|
||||
roctracer_hsa_INCLUDE_DIR roctracer_LIBRARY roctracer_roctx_LIBRARY)
|
||||
|
||||
# ------------------------------------------------------------------------------#
|
||||
|
||||
if(roctracer_FOUND)
|
||||
add_library(roctracer::roctracer INTERFACE IMPORTED)
|
||||
add_library(roctracer::roctx INTERFACE IMPORTED)
|
||||
set(roctracer_INCLUDE_DIRS ${roctracer_INCLUDE_DIR} ${roctracer_hsa_INCLUDE_DIR})
|
||||
set(roctracer_LIBRARIES ${roctracer_LIBRARY} ${roctracer_roctx_LIBRARY})
|
||||
set(roctracer_LIBRARY_DIRS ${roctracer_LIBRARY_DIR})
|
||||
|
||||
target_include_directories(
|
||||
roctracer::roctracer INTERFACE ${roctracer_INCLUDE_DIR}
|
||||
${roctracer_hsa_INCLUDE_DIR})
|
||||
target_include_directories(roctracer::roctx INTERFACE ${roctracer_INCLUDE_DIR}
|
||||
${roctracer_hsa_INCLUDE_DIR})
|
||||
|
||||
target_link_libraries(roctracer::roctracer INTERFACE ${roctracer_LIBRARY})
|
||||
target_link_libraries(roctracer::roctx INTERFACE ${roctracer_roctx_LIBRARY})
|
||||
|
||||
if(roctracer_kfdwrapper_LIBRARY)
|
||||
list(APPEND roctracer_LIBRARIES ${roctracer_kfdwrapper_LIBRARY})
|
||||
target_compile_definitions(
|
||||
roctracer::roctracer
|
||||
INTERFACE
|
||||
HOSTTRACE_ROCTRACER_LIBKFDWRAPPER=\"${roctracer_kfdwrapper_LIBRARY}\")
|
||||
target_link_libraries(roctracer::roctracer
|
||||
INTERFACE ${roctracer_kfdwrapper_LIBRARY})
|
||||
target_link_libraries(roctracer::roctx INTERFACE ${roctracer_kfdwrapper_LIBRARY})
|
||||
endif()
|
||||
|
||||
if(roctracer_hsakmt_LIBRARY)
|
||||
list(APPEND roctracer_LIBRARIES ${roctracer_hsakmt_LIBRARY})
|
||||
target_link_libraries(roctracer::roctracer INTERFACE ${roctracer_hsakmt_LIBRARY})
|
||||
target_link_libraries(roctracer::roctx INTERFACE ${roctracer_hsakmt_LIBRARY})
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
# ------------------------------------------------------------------------------#
|
||||
|
||||
unset(_ROCM_PATHS)
|
||||
|
||||
# ------------------------------------------------------------------------------#
|
||||
Reference in New Issue
Block a user