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
71 行
2.3 KiB
CMake
71 行
2.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)
|
|
|
|
# ----------------------------------------------------------------------------------------#
|
|
|
|
find_path(
|
|
rocm-smi_ROOT_DIR
|
|
NAMES include/rocm_smi/rocm_smi.h
|
|
HINTS ${_ROCM_PATHS}
|
|
PATHS ${_ROCM_PATHS}
|
|
PATH_SUFFIXES rocm_smi)
|
|
|
|
mark_as_advanced(rocm-smi_ROOT_DIR)
|
|
|
|
# ----------------------------------------------------------------------------------------#
|
|
|
|
find_path(
|
|
rocm-smi_INCLUDE_DIR
|
|
NAMES rocm_smi/rocm_smi.h
|
|
HINTS ${rocm-smi_ROOT_DIR} ${_ROCM_PATHS}
|
|
PATHS ${rocm-smi_ROOT_DIR} ${_ROCM_PATHS}
|
|
PATH_SUFFIXES rocm_smi/include rocm_smi)
|
|
|
|
mark_as_advanced(rocm-smi_INCLUDE_DIR)
|
|
|
|
# ----------------------------------------------------------------------------------------#
|
|
|
|
find_library(
|
|
rocm-smi_LIBRARY
|
|
NAMES rocm_smi64 rocm_smi
|
|
HINTS ${rocm-smi_ROOT_DIR} ${_ROCM_PATHS}
|
|
PATHS ${rocm-smi_ROOT_DIR} ${_ROCM_PATHS}
|
|
PATH_SUFFIXES rocm_smi/lib rocm_smi/lib64 lib lib64)
|
|
|
|
if(rocm-smi_LIBRARY)
|
|
get_filename_component(rocm-smi_LIBRARY_DIR "${rocm-smi_LIBRARY}" PATH CACHE)
|
|
endif()
|
|
|
|
mark_as_advanced(rocm-smi_LIBRARY)
|
|
|
|
# ----------------------------------------------------------------------------------------#
|
|
|
|
find_package_handle_standard_args(rocm-smi DEFAULT_MSG rocm-smi_ROOT_DIR
|
|
rocm-smi_INCLUDE_DIR rocm-smi_LIBRARY)
|
|
|
|
# ------------------------------------------------------------------------------#
|
|
|
|
if(rocm-smi_FOUND)
|
|
add_library(rocm-smi::rocm-smi INTERFACE IMPORTED)
|
|
add_library(rocm-smi::roctx INTERFACE IMPORTED)
|
|
set(rocm-smi_INCLUDE_DIRS ${rocm-smi_INCLUDE_DIR})
|
|
set(rocm-smi_LIBRARIES ${rocm-smi_LIBRARY})
|
|
set(rocm-smi_LIBRARY_DIRS ${rocm-smi_LIBRARY_DIR})
|
|
|
|
target_include_directories(rocm-smi::rocm-smi INTERFACE ${rocm-smi_INCLUDE_DIR})
|
|
target_link_libraries(rocm-smi::rocm-smi INTERFACE ${rocm-smi_LIBRARY})
|
|
|
|
endif()
|
|
|
|
# ------------------------------------------------------------------------------#
|
|
|
|
unset(_ROCM_PATHS)
|
|
|
|
# ------------------------------------------------------------------------------#
|