-
Notifications
You must be signed in to change notification settings - Fork 27
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Dynamic expansion of thread data (#294)
* Tests for exceeding OMNITRACE_MAX_THREADS - tests which exceeds OMNITRACE_MAX_THREADS value for thread creation * CMake Formatting.cmake update - include source files in /tests/source directory * Add unknown-hash= to OMNITRACE_ABORT_FAIL_REGEX - fail if a timemory hash is not resolved to a name * Tests for exceeding OMNITRACE_MAX_THREADS - update * omnitrace-sample update - remove env disabling of critical-trace and process-sampling * core library update - make_unique in concepts.hpp - add OMNITRACE_USE_ROCM_SMI to "process_sampling" category - remove forced disabling of critical-trace in sampling mode - parentheses for OMNITRACE_PREFER - use tim::get_hash_id instead of tim::get_combined_hash_id * core library update (containers) - added aligned_static_vector.hpp - similar to static_vector.hpp but attempts to align to cache line size - alignment template parameter for stable_vector - added missing aliases in static_vector - consistent with aligned_static_vector aliases * thread_info update - track the peak number of threads created - thread_info::get_peak_num_threads() returns the peak number of threads * thread_data update - generic thread_data inherits from base_thread_data - thread_data reworked to support dynamic expansion - base_thread_data updated to invoke private_instance() function - thread_data<optional<T>> uses stable_vector aligned to cache line width - thread_data<identity<T>> uses stable_vector aligned to cache line width - thread_data for optional and identity provide private private_instance function + friend to base_thread_data - component_bundle_cache<T> is now thread_data<component_bundle_cache_impl<T>> * causal update - thread_data<T>::instances -> thread_data<T>::instance(construct_on_thread{ ... }) - loop over max_supported_threads (constexpr) -> loop over thread_info::get_peak_num_threads() - tim::get_combined_hash_id -> tim::get_hash_id - update progress_bundle usage to new thread_data API * backtrace/backtrace_metrics component update - backtrace_metrics update - update to new thead_data API - add thread CPU time row in perfetto - fix potential bug when rusage categories are disabled - fix bug in operator-= not subtracting cpu time of rhs - backtrace update - skip all child call-stack below 'tim::openmp::' if sampling_keep_internal = false * pthread_gotcha component update - pthread_gotcha::shutdown() invokes pthread_create_gotcha::shutdown() * pthread_create_gotcha component update - minor tweak to {start,stop}_bundle functions: pass in thread id - update to new thread_data API - track native handles of internal threads - implement system with pthread_kill to stop dangling bundles * rocprofiler/roctracer component update - update to new thread_data API - loop over max_supported_threads (constexpr) -> loop over thread_info::get_peak_num_threads() * critical trace (library) update - update to new thread_data API - tim::get_combined_hash_id -> tim::get_hash_id * coverage update - update to new thread_data API * tasking update - update to new thread_data API - loop over max_supported_threads (constexpr) -> loop over thread_info::get_peak_num_threads() * roctracer update - update to new thread_data API - loop over max_supported_threads (constexpr) -> loop over thread_info::get_peak_num_threads() * rocm_smi update - update to new thread_data API * runtime.cpp update - update to new thread_data API * sampling.cpp update - update to new thread_data API - loop over max_supported_threads (constexpr) -> loop over thread_info::get_peak_num_threads() * ompt.cpp update - invoke pthread_gotcha::shutdown before invoking OMPT finalize function - this prevents signals from being delivered to OpenMP threads * tracing.hpp and tracing.cpp update - replace get_timemory_hash_{ids,aliases} functions with copy_timemory_hash_ids function - update to new thread_data API - loop over max_supported_threads (constexpr) -> loop over thread_info::get_peak_num_threads() - tim::get_combined_hash_id -> tim::get_hash_id - improvements to + error checking in thread_init function * library.cpp update - move copying timemory hash id/aliases to tracing.cpp - update to new thread_data API - loop over max_supported_threads (constexpr) -> loop over thread_info::get_peak_num_threads() * Update BuildSettings.cmake - add -Wno-interference-size to suppress warning about use of std::hardware_destructive_interference * Update fork example - improve scheme for waiting on child processes via waitpid instead of wait - support running main routine multiple times - push/pop regions in child process * Update lib/common/defines.h.in - allow use to specify misc values via -D <name>=<value> - OMNITRACE_CACHELINE_SIZE - OMNITRACE_CACHELINE_SIZE_MIN - OMNITRACE_ROCM_MAX_COUNTERS - remove unused defines - OMNITRACE_ROCM_LOOK_AHEAD - OMNITRACE_MAX_ROCM_QUEUES * Update rocprofiler.hpp - OMNITRACE_MAX_ROCM_COUNTERS -> OMNITRACE_ROCM_MAX_COUNTERS * Update aligned_static_vector - set cacheline_align_v from max of OMNITRACE_CACHELINE_SIZE and OMNITRACE_CACHELINE_SIZE_MIN * Update tracing.cpp - acquire locks for updating main hash ids/aliases - only propagate ids/aliases when finalizing * Update pthread_create_gotcha.cpp - make sure hash for "start_thread" exists on main thread * Update causal end to end tests - if OMNITRACE_BUILD_NUMBER is 1, set OMNITRACE_VERBOSE=0
- Loading branch information
Showing
43 changed files
with
1,232 additions
and
434 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
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 |
---|---|---|
@@ -1,7 +1,11 @@ | ||
# | ||
set(containers_sources) | ||
|
||
set(containers_headers ${CMAKE_CURRENT_LIST_DIR}/stable_vector.hpp | ||
${CMAKE_CURRENT_LIST_DIR}/static_vector.hpp) | ||
set(containers_headers | ||
${CMAKE_CURRENT_LIST_DIR}/aligned_static_vector.hpp | ||
${CMAKE_CURRENT_LIST_DIR}/c_array.hpp | ||
${CMAKE_CURRENT_LIST_DIR}/operators.hpp | ||
${CMAKE_CURRENT_LIST_DIR}/stable_vector.hpp | ||
${CMAKE_CURRENT_LIST_DIR}/static_vector.hpp) | ||
|
||
target_sources(omnitrace-core-library PRIVATE ${containers_sources} ${containers_headers}) |
Oops, something went wrong.