コミットグラフ

100 コミット

作成者 SHA1 メッセージ 日付
Jonathan R. Madsen aa4bd96fa0 Fixes excluded-instr output, fini functions, tweaks MPI (#51)
- fixes population of excluded_module_functions
- omnitrace-compile-definitions have OMNITRACE_USE_MPI and OMNITRACE_USE_MPI_HEADERS
- Do not enable mpi support if no full or partial MPI support
- New option --all-functions

[ROCm/rocprofiler-systems commit: cafed84d70]
2022-06-19 23:49:47 -05:00
Jonathan R. Madsen 5759a03044 Fixes excluded-instr output, fini functions, tweaks MPI (#50)
- fixes population of excluded_module_functions
- omnitrace-compile-definitions have OMNITRACE_USE_MPI and OMNITRACE_USE_MPI_HEADERS
- Do not enable mpi support if no full or partial MPI support
- New option --all-functions

[ROCm/rocprofiler-systems commit: 8837b744ca]
2022-06-17 15:52:58 -05:00
Jonathan R. Madsen d080fb3a1a CI for OpenSUSE (#12)
* CI for OpenSUSE

* OpenSUSE MPI --allow-run-as-root

- when testing in OpenSUSE docker container, tests using OpenMPI fail due to running as root
- This commit toggles OMNITRACE_CI_MPI_RUN_AS_ROOT to ON and tests whether --allow-run-as-root is supported

* Tweak to OMNITRACE_CI_MPI_RUN_AS_ROOT handling

[ROCm/rocprofiler-systems commit: 20e7b573d4]
2022-06-17 14:32:51 -05:00
Jonathan R. Madsen 846e5cf6d5 Fixes the configuration file example (#45)
- example config file will fail due to PR #31 

[ROCm/rocprofiler-systems commit: 5bdfecb9dd]
2022-06-14 12:44:41 -05:00
Jonathan R. Madsen aeab36501a Fix the main library stop routine for timemory (#39)
* Fix the main library stop routine for timemory

- the main pop_timemory function was popping too many calls
- this primarily affected recursive calls

* Lengthen the timeout for the Configure CMake step

* Fix python tests

- new validate-timemory-json.py script

* Documentation update

- Call-counts in timemory output examples in documentation were affected by the changes

* Fix the per-thread metrics during finalization

- pthread_create_mutex starts/stops the per-thread data
- removed unintentional continue statement

* Docs tweaks

* Fix lap counter on per-thread metrics

[ROCm/rocprofiler-systems commit: a142b2029d]
2022-06-13 15:57:44 -05:00
Jonathan R. Madsen ad9fd4b7ec Support omnitrace-dl as kokkos profile library (#37)
- add OnLoad and OnUnload to omnitrace-dl
- disable global fence for kokkos profiling tools
- tweak omnitrace_strip_target to use wildcards
- added dl-gen.py script for generating dlopen bindings
- added support for kokkosp_request_tool_settings
- added support for kokkosp_dual_view_sync
- added support for kokkosp_dual_view_modify

[ROCm/rocprofiler-systems commit: ab395f86c4]
2022-06-10 18:54:22 -05:00
Jonathan R. Madsen 1b91d1ad11 Update youtube links (#38)
- replaced videos with poor audio with videos which are better

[ROCm/rocprofiler-systems commit: b50a13c87e]
2022-06-10 17:08:03 -05:00
Jonathan R. Madsen 7f7d0ed34c export libomnitrace-dl.so to OMP_TOOL_LIBRARIES (#27)
* export libomnitrace-dl.so to OMP_TOOL_LIBRARIES

* Disable ompt_context_t

- ompt.cpp enables/disables context
- Update timemory submodule :: handles disabled context

[ROCm/rocprofiler-systems commit: d4b8e25765]
2022-06-10 13:16:11 -05:00
Jonathan R. Madsen 04edcf33c3 Implements --label option for python profiler (#34)
* Implements --label option for python profiler

- removes '-a', '-f', and '-l' options in favor of '--label args file line' for consistency with omnitrace exe

* cmake formatting

* Bump version to 1.1.0

[ROCm/rocprofiler-systems commit: 017e794d63]
2022-06-10 10:07:15 -05:00
Jonathan R. Madsen ac25b485e7 Fix sampling counter time scales (#33)
* Fix sampling counter time scales

- All perfetto trace events have "begin_ns" and "end_ns" debug fields
- data for thread start and end timestamp in pthread_create_gotcha
- discard samples outside of thread start and end timestamps
- rename "CPU User CPU Time" perfetto counter to "CPU User Time"
- rename "CPU Kernel CPU Time" perfetto counter to "CPU Kernel Time"
- ensure CPU system samples in perfetto are set to zero at end
- backtrace uses comp::wall_clock record() for timestamps (consistency)
- "Peak Memory Usage [Thread X] (S)" renamed to "Thread Peak Memory Usage [X] (S)"
- "Context Switches [Thread X] (S)" renamed to "Thread Context Switches Usage [X] (S)"
- "Page Faults [Thread X] (S)" renamed to "Thread Page Faults Usage [X] (S)"
- "<PAPI_DESC> [Thread X] (S)" renamed to "Thread <PAPI_DESC> [X] (S)"
- samples

* Fix includes

[ROCm/rocprofiler-systems commit: 90ab7a89fc]
2022-06-10 08:35:39 -05:00
Jonathan R. Madsen 2eb4b4981c Fix loop-level instrumentation + more (#32)
- fix loop-level instrumentation
- support loop instrumentation w/o debug symbols via loop number
- improve module_function messages
- serialize num_basic_blocks
- serialize num_outer_loops
- serialize is_num_instructions_constrained
- serialize is_loop_num_instructions_constrained
- updated transpose example to use uniform_int_distribution
- added transpose loop test
- added fail regexes for tests which enable loop instrumentation
- use module->getFullName in get_loop_file_line_info
- use module->getFullName in get_func_file_line_info
- use module->getFullName in get_basic_block_file_line_info

[ROCm/rocprofiler-systems commit: a640fbdb29]
2022-06-10 06:57:50 -05:00
Jonathan R. Madsen 5c1e6ea127 Rework sampling trace counter names + new trace counters (#30)
* Rework sampling trace counter names + new trace counters

- reformulate trace counter names for easier comparison (thread sampling)
- new process-level trace counters for context switches (thread sampling)
- new process-level trace counters for page faults (thread sampling)
- new process-level trace counters for CPU time (thread sampling)
- new thread-level trace counters for context switches (sampling)
- new thread-level trace counters for page faults (sampling)

* tweak header include in backtrace.cpp

[ROCm/rocprofiler-systems commit: 1db3934f85]
2022-06-09 13:43:07 -05:00
Jonathan R. Madsen c6207d2336 Support strict settings option in timemory + expanded config syntax (#31)
Support strict settings option in timemory

- timemory settings updates
  - strict config option
  - improved variable support
    - $env: lvalues
    - support for ${VARIABLE} syntax
    - support for variable expansion in substring
  - chained config files

[ROCm/rocprofiler-systems commit: 3ca81fd8c0]
2022-06-08 16:58:06 -05:00
Jonathan R. Madsen 978d9a0714 Fix category regex + new features (#25)
* Fix category regex + new features

- fixes issue with -R option
- Supports --csv option
- Supports --csv-separator option
- Signal handler to dump logs
- Tweak to component id strings display
- Support regex negation

* Tweak PASS_REGEX for new tests

[ROCm/rocprofiler-systems commit: f93ddc1ee5]
2022-06-06 23:23:40 -05:00
Jonathan R. Madsen c08353f2c3 Set OMNITRACE_USE_THREAD_SAMPLING=ON for several tests (#29)
[ROCm/rocprofiler-systems commit: 75092f5d83]
2022-06-06 23:23:26 -05:00
Jonathan R. Madsen 3aa5061f61 Fix perfetto_counter_track string lifetime (#28)
* Fix perfetto_counter_track string lifetime

- ensure the C-string pointer backing the perfetto::CounterTrack label is not still valid even after resizing container

* STL includes

[ROCm/rocprofiler-systems commit: 3031f173fd]
2022-06-06 21:12:18 -05:00
Jonathan R. Madsen afc2135ee0 Update setup-env.sh and modulefile (#26)
- Fixes setup-env.sh PYTHONPATH
- setup-env.sh exports CMAKE_PREFIX_PATH
- setup-env.sh export omnitrace_DIR
- modulefile uses generic variables

[ROCm/rocprofiler-systems commit: c66dc44693]
2022-06-06 20:48:33 -05:00
Jonathan R. Madsen 825302c8b8 New documentation page with youtube links to tutorials (#23)
[ROCm/rocprofiler-systems commit: e8b6c03d32]
2022-06-06 01:59:06 -05:00
Jonathan R. Madsen 2699095190 CMake updates/fixes + parallel-overhead updates (#16)
- OMNITRACE_INSTALL_EXAMPLES option
- Fix lulesh standalone HIP compilation
- Fix transpose standalone HIP compilation
- Tweaks to parallel-overhead

[ROCm/rocprofiler-systems commit: a9ff15ff8c]
2022-05-31 14:55:31 -05:00
Jonathan R. Madsen d009fc24a6 Standalone build examples + testing workflow updates (#15)
* Update examples to support standalone builds

* Tweak to ubuntu-focal-external workflow

- disable PAPI

* ubuntu focal external workflow update

- GCC 11
- Test static libgcc + static libstdcxx + strip
- ubuntu-toolchain-r/test

* Improve build-release.sh

- command line args for lto, strip, perfetto-tools,
   static-libgcc, static-libstdcxx, hidden-visibility,
   max-threads, parallel

* Update VERSION to 1.0.1

* Fixes to LTO build

* Updates to ubuntu-focal-external workflow

* build-release.sh update

- enable static libstdcxx by default

* disable python + static libstdcxx

* ubuntu-focal-external updates

* build-release.sh disable static libstdcxx by default

* cmake-format

[ROCm/rocprofiler-systems commit: 8b97c70df8]
2022-05-31 01:51:18 -05:00
Jonathan R. Madsen 222877e4f8 Update cpack workflows (#14)
- Reverts edits in PR #13 

[ROCm/rocprofiler-systems commit: ce291877cc]
2022-05-30 18:46:58 -05:00
Jonathan R. Madsen ae4f42e703 Update cpack workflows to run on tags (#13)
Update cpack workflows to run on tags [skip ci]

[ROCm/rocprofiler-systems commit: 51488d36aa]
2022-05-30 18:37:16 -05:00
Jonathan R. Madsen 8cc87ca6b8 MPI headers + mutex gotcha + roctracer + kokkosp (#11)
* MPI headers, mutex gotcha + roctracer + kokkosp

- relocate internal MPI headers
- pthread_barrier in parallel-overhead
- doc fixes to DYNINST options
- minor tweaks to dynamic_library
- dlopen libamdhip64.so
- scoped thread state in kokkos
- extended pthread_mutex_gotcha

* Fix for unused-but-set-variables

[ROCm/rocprofiler-systems commit: 424a3593e7]
2022-05-30 18:25:12 -05:00
Jonathan R. Madsen 938aaef082 Updates installation docs, cmake updates, internal OpenMPI header (#10)
* Updates installation docs + minor cmake tweaks

- OMNITRACE_BUILD_LIBUNWIND option
- Locally set OMNITRACE_USE_HIP=OFF if roctracer and rocm-smi are off
- Force TIMEMORY_BUILD_GOTCHA to avoid bug in gotcha not patched upstream

* MPI-Headers

- include copy of mpi.h from OpenMPI
- reworked FindMPI-Headers to support the internal OpenMPI headers

[ROCm/rocprofiler-systems commit: d5995846df]
2022-05-26 10:03:31 -05:00
Jonathan R. Madsen 319da56515 clang-tidy (#9)
- Fixed some clang-tidy warnings
- Fixed issue with omnitrace_launch_compiler + clang-tidy

[ROCm/rocprofiler-systems commit: 6af5b2a7e2]
2022-05-25 14:18:55 -05:00
Jonathan R. Madsen 08dc696e47 Fix for empty perfetto output (#7)
Fix to perfetto config

- Erroneously replaced data_sources config "track_event" with "omnitrace"
- Using "omnitrace" resulted in empty perfetto output files

[ROCm/rocprofiler-systems commit: ee67748042]
2022-05-25 00:35:02 -05:00
Jonathan R. Madsen 3f7ae0b01e Documentation on metadata JSON file [skip ci] (#8)
- "CPU_FEATURES" entry is not a JSON array, not a string
- Adds examples of "memory_maps" and "memory_map_files"
- Provides a list overview of the contents

[ROCm/rocprofiler-systems commit: f9b3b28d34]
2022-05-24 23:03:40 -05:00
Jonathan R. Madsen 76f30b1c6d omnitrace find_package support (#3)
* omnitrace find_package support

- Fix to INSTALL_DESTINATION for configure_package_config_file
- Fixes to ConfigInstall.cmake and omnitrace-config.cmake.in

* Test find_package

[ROCm/rocprofiler-systems commit: d2e635ed3c]
2022-05-24 22:45:26 -05:00
Jonathan R. Madsen e84ffb80de omnitrace function exclude updates (#5)
- These functions cause weird call-stack behavior when instrumented
    - rocr::image::ImageRuntime::CreateImageManager
    - rocr::AMD::GpuAgent::GetInfo
    - rocr::HSA::hsa_agent_get_info
- These functions cause out-of-order call-stacks when KokkosP is enabled
    - Kokkos::Profiling::*

[ROCm/rocprofiler-systems commit: 6491ce7808]
2022-05-24 19:26:12 -05:00
Jonathan R. Madsen 43b257a03b Critical trace updates (#6)
* critical trace updates

- better handling of OMNITRACE_USE_PERFETTO in omnitrace-critical-trace exe
- changed some data types in `critical_trace::entry`
- added device ids to critical trace entries
- added process ids to critical trace entries
- added packing to critical trace entries

* Update timemory submodule

[ROCm/rocprofiler-systems commit: 353e8eeb69]
2022-05-24 19:25:54 -05:00
Jonathan R. Madsen 0b75ce03a0 Minor updates for transpose, timemory submodule, roctracer, and omnitrace exe (#4)
* transpose usage message

* timemory submodule update

* roctracer updates

- Changes to verbosity of roctracer::shutdown
- protect_flush_activity prevents deadlock when error in callback

* Removed linking to timemory-cxx in omnitrace

- omnitrace exe does not link to `timemory-cxx` target

[ROCm/rocprofiler-systems commit: 5b2c27cccd]
2022-05-24 18:35:33 -05:00
Jonathan R. Madsen 6a2377262b Packaging test scripts + cpack fixes (#2)
[ROCm/rocprofiler-systems commit: f26b3b81d6]
2022-05-24 17:30:27 -05:00
Jonathan R. Madsen 9cf7d13388 cpack workflow fixes (#64)
- increase timeout
- exclude opensuse 15.2 + rocm 5.1
- combined extensions

[ROCm/rocprofiler-systems commit: ff7151dbf2]
2022-05-19 23:45:46 -05:00
Jonathan R. Madsen feb2b45c0d build-docker.sh: CI -> BUILD_CI (#63)
- docker run fix (remove -it argument)

[ROCm/rocprofiler-systems commit: 919dcf5456]
2022-05-19 21:16:20 -05:00
Jonathan R. Madsen 048d7cb856 Fix stray character in dockerfile.opensuse (#62)
[ROCm/rocprofiler-systems commit: c7e9627e75]
2022-05-19 16:12:45 -05:00
Jonathan R. Madsen 49b226a0ab Fixes for roctracer_callbacks PP regions (#59)
- define OMNITRACE_HIP_VERSION
- fix for ROCm < 4.3
- fix for PP blocks based on HIP version

[ROCm/rocprofiler-systems commit: 506c26cf82]
2022-05-19 16:07:27 -05:00
Jonathan R. Madsen cab75263f4 Timemory procfs utilities (#60)
- Serialize memory maps
 - Utilize tim::utility::procfs::cpuinfo::freq in cpu_freqs.cpp

[ROCm/rocprofiler-systems commit: c2b206ba28]
2022-05-19 16:07:11 -05:00
Jonathan R. Madsen 358a3a7e36 Docker and build-release script updates [skip ci] (#61)
- Update CPack

[ROCm/rocprofiler-systems commit: 9cba1f80ba]
2022-05-19 16:06:38 -05:00
Jonathan R. Madsen 27103d771b Install perfetto tools option (#58)
* Install perfetto tools option

- E.g. traced, perfetto, etc.

* Fix copying of perfetto directory

* Require curl for installing perfetto tools

* Fix to locating tools/ninja

[ROCm/rocprofiler-systems commit: 8146426e8b]
2022-05-11 15:05:09 -05:00
Jonathan R. Madsen 57ef312d26 Option rename + minor fixes (#57)
- Set choices of OMNITRACE_BACKEND option
- rename OMNITRACE_SHMEM_SIZE_HINT_KB option
- rename OMNITRACE_BUFFER_SIZE_KB option
- rename OMNITRACE_COMBINE_PERFETTO_TRACES
- rename OMNITRACE_BACKEND option
- default to OMNITRACE_COLLAPSE_PROCESSES for combining perfetto traces
- OMNITRACE_PERFETTO_FILL_POLICY option
- fix unused variables due to constexpr in add_critical_trace
- rename perfetto config from "track_event" to "omnitrace"
- fix build-release.sh + python
- handle config file updating OMNITRACE_DL_VERBOSE in omnitrace-dl
- rename roctrace.cfg to omnitrace.cfg
- accept "on" and "off" for get_sampling_cpus()

[ROCm/rocprofiler-systems commit: 346f8cd0bc]
2022-05-10 17:30:45 -05:00
Jonathan R. Madsen 77721c2db5 Remove wikipedia links [skip ci] (#56)
[ROCm/rocprofiler-systems commit: ef202f3d86]
2022-05-10 13:16:04 -05:00
Jonathan R. Madsen facd23b7bb Docs images [skip ci] (#55)
* Added images of perfetto in docs

* README images + updates

[ROCm/rocprofiler-systems commit: ae2ea090fb]
2022-05-08 07:57:09 -05:00
Jonathan R. Madsen 14d8998ba0 Fix $HOME/.omnitrace [skip ci] (#54)
[ROCm/rocprofiler-systems commit: e60fae5361]
2022-05-08 06:21:14 -05:00
Jonathan R. Madsen 0d5f0fb9cf Support for tracing mutex locking (#52)
* Parallel overhead example with locks

* Support tracing mutex locking + more

- support wrapping pthread_mutex_lock
- support wrapping pthread_mutex_unlock
- support wrapping pthread_mutex_trylock
- get_perfetto_combined_traces setting
- OMNITRACE_TRACE_THREAD_LOCKS option
- ThreadState
- critical trace includes queue id
- enabled/disabled settings in timemory
- fix OMNITRACE_TIMEMORY_COMPONENTS
- fix reading config
- fix setting categories
- applied ThreadState::Internal in various places
- utility::get_filled_array
- utility::get_reserved_vector
- utility::get_thread_index
- fork_gotcha messages about forks
- split out some pthread_gotcha functionality into pthread_create_gotcha
- handle queue id in roctracer callbacks

* Update timemory and PTL submodules

* Misc CMake updates

- Includes fix to omnitrace-static-lib{gcc,stdcxx}

* Misc cleanup to pthread_mutex_gotcha and backtrace

* Fix to duplicate field in module_function json

* Improvement to debug messages

* omnitrace-dl and common improvements

- tweak to delimit
- common::ignore message
- common::join quoting of strings
- omnitrace_set_env ignores if inited and active
- omnitrace_set_mpi ignores if inited and active

* nsync for transpose example

* Fix to thread_deleter<void> functor invoke

* Fix thread state and HIP stream enums

[ROCm/rocprofiler-systems commit: b208047741]
2022-05-08 04:40:10 -05:00
Jonathan R. Madsen 0094a471fd Update documentation (#53)
- updated info about OMNITRACE_USE_MPI
- removed wiki links
- info about metadata.json
- update HW counters and fix typos
- fix update-docs.sh

[ROCm/rocprofiler-systems commit: bab90baf0b]
2022-05-08 02:51:35 -05:00
Jonathan R. Madsen 060da8159c Code coverage updates (#50)
* code coverage updates

- python support
- refactored source

* remove code_coverage::operator+ and operator+=

* impl/coverage.hpp

[ROCm/rocprofiler-systems commit: 134b33320d]
2022-05-08 01:40:56 -05:00
Jonathan R. Madsen 00315e1e2f Reorganize source/lib/omnitrace (#51)
- Got rid of `source/lib/omnitrace/include` and `source/lib/omnitrace/src` and merged into `source/lib/omnitrace`
- Updated perfetto submodule to v25.0
- Updated papi submodule

[ROCm/rocprofiler-systems commit: 1f66e23fdd]
2022-05-02 13:08:51 -05:00
Jonathan R. Madsen b3c5a6f048 perfetto mpi + mpi example (#49)
[ROCm/rocprofiler-systems commit: 6b7b6e46cf]
2022-04-27 16:58:45 -05:00
Jonathan R. Madsen 2bb6fd0cfb Misc updates (#48)
- reworked `add_critical_trace`
- `get_use_thread_sampling` / `"OMNITRACE_USE_THREAD_SAMPLING"` option
- `get_cpu_cid_stack_lock`
- reworked finalization messaging
- significant updates to pthread_gotcha
  - shutdown stability
  - `"start_thread"` entries
- `rocm_smi` stability 
- roctracer_callbacks add critical trace entries on the callback thread
- reworked CPU CID initialization
- thread_sampler stability

[ROCm/rocprofiler-systems commit: 9b25d4b3b5]
2022-04-27 16:56:38 -05:00
Jonathan R. Madsen d45e84b116 GOTCHA + Kokkos + tasking + more (#47)
* GOTCHA + Kokkos + tasking + more

- update gotcha with fix for dlsym(RTLD_NEXT, ...)
- support for standalone KOKKOS_PROFILE_LIBRARY
- remove extra flags for omnitrace-user
- roctracer and critical_trace namespaces in tasking
- generic tasking functions, e.g. join(), shutdown(), etc.
- omnitrace_init_tooling_hidden in api.hpp
- ompt.cpp uses OMNITRACE_USE_OMPT
- kokkosp uses user_region instead of omnitrace component
- re-enable recycling thread ids
- more generic _{push,pop}_perfetto functors
- fix for thread_data::instance(construct_on_init, ...)
- fix for omnitrace-headers interface target
- omnitrace_watch_for_change

[ROCm/rocprofiler-systems commit: 29220cba58]
2022-04-26 22:08:51 -05:00