diff --git a/.github/workflows/containers.yml b/.github/workflows/containers.yml index e142e7e879..ea982f58c7 100644 --- a/.github/workflows/containers.yml +++ b/.github/workflows/containers.yml @@ -21,7 +21,7 @@ env: jobs: omnitrace-ci: - if: github.repository == 'AMDResearch/omnitrace' + if: github.repository == 'ROCm/omnitrace' runs-on: ubuntu-20.04 @@ -78,7 +78,7 @@ jobs: popd omnitrace-release: - if: github.repository == 'AMDResearch/omnitrace' + if: github.repository == 'ROCm/omnitrace' runs-on: ubuntu-20.04 diff --git a/.github/workflows/cpack.yml b/.github/workflows/cpack.yml index 9899607f46..878bdf348f 100644 --- a/.github/workflows/cpack.yml +++ b/.github/workflows/cpack.yml @@ -25,7 +25,7 @@ env: jobs: installers: - if: github.repository == 'AMDResearch/omnitrace' + if: github.repository == 'ROCm/omnitrace' runs-on: ubuntu-20.04 strategy: fail-fast: false @@ -267,7 +267,7 @@ jobs: - name: Upload STGZ Release Assets uses: softprops/action-gh-release@v1 - if: startsWith(github.ref, 'refs/tags/') && github.repository == 'AMDResearch/omnitrace' + if: startsWith(github.ref, 'refs/tags/') && github.repository == 'ROCm/omnitrace' with: fail_on_unmatched_files: True files: | diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index dbfb9887be..3731ea82d7 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -54,7 +54,7 @@ jobs: path: ./docs deploy-docs: - if: github.repository == 'AMDResearch/omnitrace' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/gh-pages') + if: github.repository == 'ROCm/omnitrace' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/gh-pages') runs-on: ubuntu-20.04 needs: build-docs permissions: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5bc2575bf4..085c884b82 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,7 +15,7 @@ env: jobs: release: - if: github.repository == 'AMDResearch/omnitrace' + if: github.repository == 'ROCm/omnitrace' runs-on: ubuntu-20.04 permissions: contents: write diff --git a/CMakeLists.txt b/CMakeLists.txt index bb28142154..8ac627bb38 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,7 +25,7 @@ project( LANGUAGES C CXX VERSION ${OMNITRACE_VERSION} DESCRIPTION "CPU/GPU Application tracing with static/dynamic binary instrumentation" - HOMEPAGE_URL "https://github.com/AMDResearch/omnitrace") + HOMEPAGE_URL "https://github.com/ROCm/omnitrace") find_package(Git) diff --git a/README.md b/README.md index 3f87be9063..c391e0a2c7 100755 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ # Omnitrace: Application Profiling, Tracing, and Analysis -[![Ubuntu 18.04 with GCC and MPICH](https://github.com/AMDResearch/omnitrace/actions/workflows/ubuntu-bionic.yml/badge.svg)](https://github.com/AMDResearch/omnitrace/actions/workflows/ubuntu-bionic.yml) -[![Ubuntu 20.04 with GCC, ROCm, and MPI](https://github.com/AMDResearch/omnitrace/actions/workflows/ubuntu-focal.yml/badge.svg)](https://github.com/AMDResearch/omnitrace/actions/workflows/ubuntu-focal.yml) -[![Ubuntu 22.04 (GCC, Python, ROCm)](https://github.com/AMDResearch/omnitrace/actions/workflows/ubuntu-jammy.yml/badge.svg)](https://github.com/AMDResearch/omnitrace/actions/workflows/ubuntu-jammy.yml) -[![OpenSUSE 15.x with GCC](https://github.com/AMDResearch/omnitrace/actions/workflows/opensuse.yml/badge.svg)](https://github.com/AMDResearch/omnitrace/actions/workflows/opensuse.yml) -[![RedHat Linux (GCC, Python, ROCm)](https://github.com/AMDResearch/omnitrace/actions/workflows/redhat.yml/badge.svg)](https://github.com/AMDResearch/omnitrace/actions/workflows/redhat.yml) -[![Installer Packaging (CPack)](https://github.com/AMDResearch/omnitrace/actions/workflows/cpack.yml/badge.svg)](https://github.com/AMDResearch/omnitrace/actions/workflows/cpack.yml) -[![Documentation](https://github.com/AMDResearch/omnitrace/actions/workflows/docs.yml/badge.svg)](https://github.com/AMDResearch/omnitrace/actions/workflows/docs.yml) +[![Ubuntu 18.04 with GCC and MPICH](https://github.com/ROCm/omnitrace/actions/workflows/ubuntu-bionic.yml/badge.svg)](https://github.com/ROCm/omnitrace/actions/workflows/ubuntu-bionic.yml) +[![Ubuntu 20.04 with GCC, ROCm, and MPI](https://github.com/ROCm/omnitrace/actions/workflows/ubuntu-focal.yml/badge.svg)](https://github.com/ROCm/omnitrace/actions/workflows/ubuntu-focal.yml) +[![Ubuntu 22.04 (GCC, Python, ROCm)](https://github.com/ROCm/omnitrace/actions/workflows/ubuntu-jammy.yml/badge.svg)](https://github.com/ROCm/omnitrace/actions/workflows/ubuntu-jammy.yml) +[![OpenSUSE 15.x with GCC](https://github.com/ROCm/omnitrace/actions/workflows/opensuse.yml/badge.svg)](https://github.com/ROCm/omnitrace/actions/workflows/opensuse.yml) +[![RedHat Linux (GCC, Python, ROCm)](https://github.com/ROCm/omnitrace/actions/workflows/redhat.yml/badge.svg)](https://github.com/ROCm/omnitrace/actions/workflows/redhat.yml) +[![Installer Packaging (CPack)](https://github.com/ROCm/omnitrace/actions/workflows/cpack.yml/badge.svg)](https://github.com/ROCm/omnitrace/actions/workflows/cpack.yml) +[![Documentation](https://github.com/ROCm/omnitrace/actions/workflows/docs.yml/badge.svg)](https://github.com/ROCm/omnitrace/actions/workflows/docs.yml) -> ***[Omnitrace](https://github.com/AMDResearch/omnitrace) is an AMD open source research project and is not supported as part of the ROCm software stack.*** +> ***[Omnitrace](https://github.com/ROCm/omnitrace) is an AMD open source research project and is not supported as part of the ROCm software stack.*** ## Overview @@ -89,14 +89,14 @@ such as the memory usage, page-faults, and context-switches, and thread-level me ## Documentation -The full documentation for [omnitrace](https://github.com/AMDResearch/omnitrace) is available at [amdresearch.github.io/omnitrace](https://amdresearch.github.io/omnitrace/). -See the [Getting Started documentation](https://amdresearch.github.io/omnitrace/getting_started) for general tips and a detailed discussion about sampling vs. binary instrumentation. +The full documentation for [omnitrace](https://github.com/ROCm/omnitrace) is available at [rocm.github.io/omnitrace](https://rocm.github.io/omnitrace/). +See the [Getting Started documentation](https://rocm.github.io/omnitrace/getting_started) for general tips and a detailed discussion about sampling vs. binary instrumentation. ## Quick Start ### Installation -- Visit [Releases](https://github.com/AMDResearch/omnitrace/releases) page +- Visit [Releases](https://github.com/ROCm/omnitrace/releases) page - Select appropriate installer (recommendation: `.sh` scripts do not require super-user priviledges unlike the DEB/RPM installers) - If targeting a ROCm application, find the installer script with the matching ROCm version - If you are unsure about your Linux distro, check `/etc/os-release` or use the `omnitrace-install.py` script @@ -107,11 +107,11 @@ If ROCm support is desired, specify `--rocm X.Y` where `X` is the ROCm major ver is the ROCm minor version, e.g. `--rocm 5.4`. ```console -wget https://github.com/AMDResearch/omnitrace/releases/latest/download/omnitrace-install.py +wget https://github.com/ROCm/omnitrace/releases/latest/download/omnitrace-install.py python3 ./omnitrace-install.py --prefix /opt/omnitrace/rocm-5.4 --rocm 5.4 ``` -See the [Installation Documentation](https://amdresearch.github.io/omnitrace/installation) for detailed information. +See the [Installation Documentation](https://rocm.github.io/omnitrace/installation) for detailed information. ### Setup diff --git a/cmake/ConfigCPack.cmake b/cmake/ConfigCPack.cmake index 73bef499b3..9f760933fd 100644 --- a/cmake/ConfigCPack.cmake +++ b/cmake/ConfigCPack.cmake @@ -125,7 +125,7 @@ omnitrace_add_feature(OMNITRACE_PACKAGE_FILE_NAME "CPack filename") # # -------------------------------------------------------------------------------------- # -set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/AMDResearch/omnitrace") +set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/ROCm/omnitrace") set(CPACK_DEBIAN_PACKAGE_RELEASE "${OMNITRACE_CPACK_SYSTEM_NAME}${OMNITRACE_CPACK_PACKAGE_SUFFIX}") string(REGEX REPLACE "([a-zA-Z])-([0-9])" "\\1\\2" CPACK_DEBIAN_PACKAGE_RELEASE diff --git a/cmake/Templates/omnitrace-install.py.in b/cmake/Templates/omnitrace-install.py.in index ae5a406f8f..c55bb44adc 100755 --- a/cmake/Templates/omnitrace-install.py.in +++ b/cmake/Templates/omnitrace-install.py.in @@ -232,7 +232,7 @@ if __name__ == "__main__": ) script = f"omnitrace-{omnitrace_version}-{os_distrib}-{os_version}{rocm_version}{extensions}.sh" - url = f"https://github.com/AMDResearch/omnitrace/releases/download/v{omnitrace_version}/{script}" + url = f"https://github.com/ROCm/omnitrace/releases/download/v{omnitrace_version}/{script}" download_dir = ( tempfile.mkdtemp(prefix="omnitrace-install-") if args.download_path is None diff --git a/source/docs/about.md b/source/docs/about.md index eff87c4a82..7bac3e47f5 100644 --- a/source/docs/about.md +++ b/source/docs/about.md @@ -8,11 +8,11 @@ ## Overview -> ***[OmniTrace](https://github.com/AMDResearch/omnitrace) is an AMD open source research project and is not supported as part of the ROCm software stack.*** +> ***[OmniTrace](https://github.com/ROCm/omnitrace) is an AMD open source research project and is not supported as part of the ROCm software stack.*** -[Browse OmniTrace source code on Github](https://github.com/AMDResearch/omnitrace) +[Browse OmniTrace source code on Github](https://github.com/ROCm/omnitrace) -[OmniTrace](https://github.com/AMDResearch/omnitrace) is designed for both high-level profiling and +[OmniTrace](https://github.com/ROCm/omnitrace) is designed for both high-level profiling and comprehensive tracing of applications running on the CPU or the CPU+GPU via dynamic binary instrumentation, call-stack sampling, and various other means for determining currently executing function and line information. @@ -24,7 +24,7 @@ The JSON output files are compatible with the python package [hatchet](https://g the performance data into pandas dataframes and facilitate multi-run comparisons, filtering, visualization in Jupyter notebooks, and much more. -[OmniTrace](https://github.com/AMDResearch/omnitrace) has two distinct configuration steps when instrumenting: +[OmniTrace](https://github.com/ROCm/omnitrace) has two distinct configuration steps when instrumenting: 1. Configuring which functions and modules are instrumented in the target binaries (i.e. executable and/or libraries) - [Instrumenting with OmniTrace](instrumenting.md) diff --git a/source/docs/causal_profiling.md b/source/docs/causal_profiling.md index 7268d1f56d..d922228e1d 100644 --- a/source/docs/causal_profiling.md +++ b/source/docs/causal_profiling.md @@ -512,7 +512,7 @@ results in under development but until this is available, visit [plasma-umass.or This section is intended for readers who are familiar with the [Coz profiler](https://github.com/plasma-umass/coz). OmniTrace provides several additional features and utilities for causal profiling: -| | [Coz](https://github.com/plasma-umass/coz) | [OmniTrace](https://github.com/AMDResearch/omnitrace) | Notes | +| | [Coz](https://github.com/plasma-umass/coz) | [OmniTrace](https://github.com/ROCm/omnitrace) | Notes | |----------------------|:-------------------------------------------------------------------:|:----------------------------------------------------------:|-------------------------------| | Debug info | requires debug info in DWARF v3 format (`-gdwarf-3`) | optional, supports any DWARF format version | See Note #1 below | | Experiment selection | `:` | `` or `:` | See Note #2 below | diff --git a/source/docs/development.md b/source/docs/development.md index 822be99e25..a1a672ca93 100644 --- a/source/docs/development.md +++ b/source/docs/development.md @@ -7,7 +7,7 @@ ## Executables -### omnitrace-avail: [source/bin/omnitrace-avail](https://github.com/AMDResearch/omnitrace/tree/main/source/bin/omnitrace-avail) +### omnitrace-avail: [source/bin/omnitrace-avail](https://github.com/ROCm/omnitrace/tree/main/source/bin/omnitrace-avail) The main of `omnitrace-avail` has three important sections: @@ -15,7 +15,7 @@ The main of `omnitrace-avail` has three important sections: 2. Printing options 3. Printing hardware counters -### omnitrace-sample: [source/bin/omnitrace-sample](https://github.com/AMDResearch/omnitrace/tree/main/source/bin/omnitrace-sample) +### omnitrace-sample: [source/bin/omnitrace-sample](https://github.com/ROCm/omnitrace/tree/main/source/bin/omnitrace-sample) General design: @@ -24,7 +24,7 @@ General design: - Adds `libomnitrace-dl.so` to `LD_PRELOAD` - Application is launched via `execvpe` with ` ` and modified environment -### omnitrace-casual: [source/bin/omnitrace-causal](https://github.com/AMDResearch/omnitrace/tree/main/source/bin/omnitrace-causal) +### omnitrace-casual: [source/bin/omnitrace-causal](https://github.com/ROCm/omnitrace/tree/main/source/bin/omnitrace-causal) Nearly identical design to [omnitrace-sample](#omnitrace-sample-sourcebinomnitrace-sample) when there is exactly one causal profiling configuration variant (this enables debugging). @@ -36,7 +36,7 @@ for each variant: - child process launches ` ` via `execvpe` which modified environment for variant - parent process waits for child process to finish -### omnitrace-instrument: [source/bin/omnitrace-instrument](https://github.com/AMDResearch/omnitrace/tree/main/source/bin/omnitrace-instrument) +### omnitrace-instrument: [source/bin/omnitrace-instrument](https://github.com/ROCm/omnitrace/tree/main/source/bin/omnitrace-instrument) - Requires a command-line format of `omnitrace-instrument -- ` - User specifies in options whether they want to do runtime instrumentation, binary rewrite, or attach to process @@ -50,30 +50,30 @@ for each variant: - For a binary rewrite: outputs new instrumented binary and exits - For runtime instrumentation or attaching to a process: instructs the application to resume executing and then waits for the application to exit -### omnitrace-critical-trace: [source/bin/omnitrace-critical-trace](https://github.com/AMDResearch/omnitrace/tree/main/source/bin/omnitrace-critical-trace) +### omnitrace-critical-trace: [source/bin/omnitrace-critical-trace](https://github.com/ROCm/omnitrace/tree/main/source/bin/omnitrace-critical-trace) Post-processing tool for critical-trace data output by omnitrace. ## Libraries -### Common Library: [source/lib/common](https://github.com/AMDResearch/omnitrace/tree/main/source/lib/common) +### Common Library: [source/lib/common](https://github.com/ROCm/omnitrace/tree/main/source/lib/common) General header-only functionality used in multiple executables and/or libraries. Not installed or exported outside of the build tree. -### Core Library: [source/lib/core](https://github.com/AMDResearch/omnitrace/tree/main/source/lib/core) +### Core Library: [source/lib/core](https://github.com/ROCm/omnitrace/tree/main/source/lib/core) Static PIC library with functionality that does not depend on any components. Not installed or exported outside of the build tree. -### Binary Library: [source/lib/binary](https://github.com/AMDResearch/omnitrace/tree/main/source/lib/binary) +### Binary Library: [source/lib/binary](https://github.com/ROCm/omnitrace/tree/main/source/lib/binary) Static PIC library with functionality for reading/analyzing binary info. Mostly used by the causal profiling sections of [libomnitrace](#libomnitrace-sourcelibomnitrace). Not installed or exported outside of the build tree. -### libomnitrace: [source/lib/omnitrace](https://github.com/AMDResearch/omnitrace/tree/main/source/lib/omnitrace) +### libomnitrace: [source/lib/omnitrace](https://github.com/ROCm/omnitrace/tree/main/source/lib/omnitrace) This is the main library encapsulating all the capabilities. -### libomnitrace-dl: [source/lib/omnitrace-dl](https://github.com/AMDResearch/omnitrace/tree/main/source/lib/omnitrace-dl) +### libomnitrace-dl: [source/lib/omnitrace-dl](https://github.com/ROCm/omnitrace/tree/main/source/lib/omnitrace-dl) Lightweight, front-end library for [libomnitrace](#libomnitrace-sourcelibomnitrace) which serves 3 primary purposes: @@ -81,7 +81,7 @@ Lightweight, front-end library for [libomnitrace](#libomnitrace-sourcelibomnitra 2. Prevents re-entry if [libomnitrace](#libomnitrace-sourcelibomnitrace) calls an instrumentated function internally) 3. Coordinates communication between [libomnitrace-user](#libomnitrace-user-sourcelibomnitrace-user) and [libomnitrace](#libomnitrace-sourcelibomnitrace) -### libomnitrace-user: [source/lib/omnitrace-user](https://github.com/AMDResearch/omnitrace/tree/main/source/lib/omnitrace-user) +### libomnitrace-user: [source/lib/omnitrace-user](https://github.com/ROCm/omnitrace/tree/main/source/lib/omnitrace-user) Provides a set of functions and types for the users to add to their code, e.g. disabling data collection globally or on a specific thread, user-defined regions, etc. If [libomnitrace-dl](#libomnitrace-dl-sourcelibomnitrace-dl) is not loaded, the user API is effectively no-op @@ -284,13 +284,13 @@ the realtime sampler. For example, `OMNITRACE_SAMPLING_FREQ=500` initially sets (based on their clock). Settings `OMNITRACE_SAMPLING_REALTIME_FREQ=10` will lower the sampling frequency for the realtime sampler to 10 interrupts per second of realtime. -The omnitrace-specific implementation can be found in [source/lib/omnitrace/library/sampling.cpp](https://github.com/AMDResearch/omnitrace/blob/main/source/lib/omnitrace/library/sampling.cpp). -Within [sampling.cpp](https://github.com/AMDResearch/omnitrace/blob/main/source/lib/omnitrace/library/sampling.cpp), you will a bundle of 3 sampling components: +The omnitrace-specific implementation can be found in [source/lib/omnitrace/library/sampling.cpp](https://github.com/ROCm/omnitrace/blob/main/source/lib/omnitrace/library/sampling.cpp). +Within [sampling.cpp](https://github.com/ROCm/omnitrace/blob/main/source/lib/omnitrace/library/sampling.cpp), you will a bundle of 3 sampling components: `backtrace_timestamp`, `backtrace`, and `backtrace_metrics`. -The first component [backtrace_timestamp](https://github.com/AMDResearch/omnitrace/blob/main/source/lib/omnitrace/library/components/backtrace_timestamp.hpp) simply +The first component [backtrace_timestamp](https://github.com/ROCm/omnitrace/blob/main/source/lib/omnitrace/library/components/backtrace_timestamp.hpp) simply records the wall-clock time of the sample. -The second component [backtrace](https://github.com/AMDResearch/omnitrace/blob/main/source/lib/omnitrace/library/components/backtrace.hpp) records the call-stack via libunwind. -The last component [backtrace_metrics](https://github.com/AMDResearch/omnitrace/blob/main/source/lib/omnitrace/library/components/backtrace_metrics.hpp) is responsible for recording the +The second component [backtrace](https://github.com/ROCm/omnitrace/blob/main/source/lib/omnitrace/library/components/backtrace.hpp) records the call-stack via libunwind. +The last component [backtrace_metrics](https://github.com/ROCm/omnitrace/blob/main/source/lib/omnitrace/library/components/backtrace_metrics.hpp) is responsible for recording the metrics for that sample, e.g. peak RSS, HW counters, etc. These 3 components are bundled together in a tuple-like struct (e.g. `tuple`) a buffer of at least 1024 instances of this tuple are mmap'ed per-thread. When this buffer is full, before taking the next sample, the sampler will hand the buffer off to it's allocator thread and mmap a new buffer. The allocator thread takes this data and either dynamically stores it in memory or writes it to a file depending on the value of `OMNITRACE_USE_TEMPORARY_FILES`. @@ -300,7 +300,7 @@ a new internal thread is created to handle the new samplers. ## Time-Window Constraint Model -Recently with the introduction of tracing delay/duration/etc., the [constraint namespace](https://github.com/AMDResearch/omnitrace/blob/main/source/lib/core/constraint.hpp) +Recently with the introduction of tracing delay/duration/etc., the [constraint namespace](https://github.com/ROCm/omnitrace/blob/main/source/lib/core/constraint.hpp) was introduced to improve the management of delays and/or duration limits of data collection. The `spec` class takes a clock identifier, a delay value, a duration value, and an integer indicating how many times to repeat the delay + duration. Thus, it is possible to perform tasks such as periodically enabling tracing for brief periods of time in between long periods without data collection during the application, e.g. `OMNITRACE_TRACE_PERIODS = realtime:10:1:5 process_cputime:10:2:20` would enable diff --git a/source/docs/features.md b/source/docs/features.md index a9c57fd691..8761c52285 100644 --- a/source/docs/features.md +++ b/source/docs/features.md @@ -8,7 +8,7 @@ ## Overview -[OmniTrace](https://github.com/AMDResearch/omnitrace) is designed to be highly extensible. Internally, it leverages the +[OmniTrace](https://github.com/ROCm/omnitrace) is designed to be highly extensible. Internally, it leverages the [timemory performance analysis toolkit](https://github.com/NERSC/timemory) to manage extensions, resources, data, etc. diff --git a/source/docs/index.md b/source/docs/index.md index cab3d9ff7d..59ef31b85e 100644 --- a/source/docs/index.md +++ b/source/docs/index.md @@ -1,4 +1,4 @@ -# Welcome to the [OmniTrace](https://github.com/AMDResearch/omnitrace) Documentation! +# Welcome to the [OmniTrace](https://github.com/ROCm/omnitrace) Documentation! ```eval_rst .. toctree:: diff --git a/source/docs/installation.md b/source/docs/installation.md index 75a8dee4b2..08169a60f5 100644 --- a/source/docs/installation.md +++ b/source/docs/installation.md @@ -14,7 +14,7 @@ If ROCm support is desired, specify `--rocm X.Y` where `X` is the ROCm major ver is the ROCm minor version, e.g. `--rocm 5.4`. ```console -wget https://github.com/AMDResearch/omnitrace/releases/latest/download/omnitrace-install.py +wget https://github.com/ROCm/omnitrace/releases/latest/download/omnitrace-install.py python3 ./omnitrace-install.py --prefix /opt/omnitrace --rocm 5.4 ``` @@ -87,7 +87,7 @@ self-contained support for these packages. ### Download the appropriate binary distribution ```shell -wget https://github.com/AMDResearch/omnitrace/releases/download/v/