39f17ae8b8
* renamed omnitrace_thread_data to thread_data
* initial implementation
* Numerous fixes and updates
- Updated timemory submodule
- Updated perfetto submodule (pulls in fixes for TRACE_EVENT)
- pthread_gotcha only after omnitrace_init_tooling
- omnitrace banner
- config settings for rocm-smi freq and devices
- critical_trace::get_entries
- OMNITRACE_BASIC_PRINT
- rocm_smi perfetto category
- redirect roctracer warnings for ROCm 4.5.0
- property specializations for rocm-smi components
- units fixes data_tracker types
- roctracer entries for pthread_create and start_thread
- omnitrace-avail defaults to settings, not components
- settings have conforming names
- settings warn about duplicates
- ptl named threads
- decreased max freq for sampler SIGALRM
- rocm-smi names thread
- rocm-smi avoids call to hipGetDeviceCount
- name roctracer activity callback threads
- fixed binary rewrite test output names
* Update lulesh example
- supports non-UVM GPU
* Lulesh tweaks + formatting
* KokkosP + Mode + Roctracer sampling deadlock fix
- kokkosp support
- omnitrace_init_library
- config::print_settings()
- config::get_mode()
- omnitrace::Mode
- omnitrace-avail improvements (removes settings)
- handle get_verbose() < 0
- disable dyninst InstrStackFrames by default
- handle perf_event_paranoid > 1 by disabling PAPI
- SIGALRM max freq to 5.0
- Name threads
- rocm-smi handles get_use_perfetto() and get_use_timemory()
- HSA_ENABLE_INTERRUPT=0 when roctracer + sampling (fixes deadlock)
* Tests, API renaming, roctracer
- disable renaming of thread 0
- verbprintf_bare
- enable dyninst merge tramp
- tweaked some omnitrace exe verbose levels
- reworked roctracer::setup and roctracer::shutdown
- rocm_smi::data::poll checks get_state()
- omnitrace_trace_finalize -> omnitrace_finalize
- omnitrace_trace_init -> omnitrace_init
- omnitrace_trace_set_env -> omnitrace_set_env
- omnitrace_trace_set_mpi -> omnitrace_set_mpi
- sampling mode does not disable timemory
- disable roctracer before shutting down rocm-smi
- lulesh tests w/ and w/o kokkosp
- lulesh tests for perfetto only
- with --dynamic-callsites --traps --allow-overlapping
- lulesh tests for timemory only
- with --stdlib --dynamic-callsites --traps --allow-overlapping
* Update timemory submodule
- fix for TIMEMORY_PROPERTY_SPECIALIZATION
* get_verbose() handling + timemory submodule update
- Findroctracer.cmake uses find_package(hsakmt)
* Stability fixes + rework roctracer + perfetto
- reworked roctracer start up
- critical_trace perfetto basic values
- perfetto sampling category
- sampler checks signals
- peak_rss in sampling
- pthread_gotcha::shutdown()
- rocm_smi::device_count()
- HSA_TOOLS_LIB is set
- HSA_ENABLE_INTERRUPT in omnitrace exe
- omnitrace exe verbosity level changes
- Avoid instrumenting Impl ns in Kokkos
- gpu::device_count prefers rocm_smi instead of hip
- ptl blocks signals
- fixed pthread_gotcha roctracer_data values
- removed runtime-instrument-sampling tests
- timemory submodule update
* cmake formatting
* timemory + roctracer updates
- fix timemory issue with papi_common
- fix timemory issue with units
- define roctracer::is_setup()
* Miscellaneous tweaks
- Disable sampling during runtime instrument
- Fixed warnings about dynamic callsites
- Fixed backtrace output when timemory disabled
- Test tweaks
* cmake-format
* omnitrace_target_compile_definitions
* timemory submodule update
* config, omnitrace, State, mpi_gotcha updates
- use OMNITRACE_THROW instead of direct throw
- is_attached()
- is_binary_rewrite()
- get_is_continuous_integration()
- get_debug_init()
- get_debug_finalize()
- max_thread_bookmarks default to 1
- State::Init
- app_thread oneTimeCode
- runtime instrumentation uses waitpid
- fixed init_names
- include main in MPI runs
- fixed sampling setup when disabled
- reworked mpi_gotcha
- disabled critical trace in transpose test
* cmake-format
* handle rocm_smi::device_count() exception
* CI timeouts
* Re-enable runtime-instrument + sampling
128 rader
4.3 KiB
CMake
128 rader
4.3 KiB
CMake
# 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_package(hsakmt)
|
|
if(hsakmt_FOUND)
|
|
set(roctracer_hsakmt_LIBRARY
|
|
hsakmt::hsakmt
|
|
CACHE STRING "Imported hsakmt target")
|
|
else()
|
|
find_library(
|
|
roctracer_hsakmt_LIBRARY
|
|
NAMES hsakmt
|
|
HINTS ${roctracer_ROOT_DIR} ${_ROCM_PATHS}
|
|
PATHS ${roctracer_ROOT_DIR} ${_ROCM_PATHS}
|
|
PATH_SUFFIXES lib lib64)
|
|
endif()
|
|
|
|
if(roctracer_LIBRARY)
|
|
get_filename_component(roctracer_LIBRARY_DIR "${roctracer_LIBRARY}" PATH CACHE)
|
|
endif()
|
|
|
|
mark_as_advanced(roctracer_LIBRARY roctracer_roctx_LIBRARY roctracer_hsakmt_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_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)
|
|
|
|
# ------------------------------------------------------------------------------#
|