Reorganizing docs runner and setting archive subdir for old docs

Signed-off-by: coleramos425 <colramos@amd.com>


[ROCm/rocprofiler-compute commit: aac471c0fa]
This commit is contained in:
coleramos425 authored and Cole Ramos committed 2024-04-01 14:30:21 -05:00
1 parent 6287e6dad3
commit fc315248c7
175 files changed
+8 -8

No files matched your search

@@ -0,0 +1,5 @@
/build*
/_build
/_doxygen
/.gitinfo
/omniperf.dox
Whitespace-only changes.
@@ -0,0 +1,20 @@
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = .
BUILDDIR = _build
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@@ -0,0 +1,6 @@
This subdirectory houses the input markup for Omniperf documentation using
Sphinx. Changes committed here on the main branch will automatically be built
and pushed live using a Github action.
You can build a local copy of the documentation in this directory using
"make html" assuming you have the necessary sphinx dependencies installed.
@@ -0,0 +1,7 @@
.noscroll-table td {
white-space: normal !important;
}
.wy-nav-content {
max-width: 75% !important;
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,199 @@
# -*- coding: utf-8 -*-
#
# Configuration file for the Sphinx documentation builder.
#
# This file does only contain a selection of the most common options. For a
# full list see the documentation:
# http://www.sphinx-doc.org/en/master/config
# -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
import os
import sys
import subprocess as sp
sys.path.insert(0, os.path.abspath(".."))
repo_version = "unknown"
# Determine short version by file in repo
if os.path.isfile("../../VERSION"):
with open("../../VERSION") as f:
repo_version = f.readline().strip()
def install(package):
sp.call([sys.executable, "-m", "pip", "install", package])
# -- Project information -----------------------------------------------------
project = "Omniperf"
copyright = "2023-2024, Advanced Micro Devices, Inc. All Rights Reserved"
author = "AMD Research"
# The short X.Y version
version = repo_version
# The full version, including alpha/beta/rc tags
release = repo_version
# -- General configuration ---------------------------------------------------
install("sphinx_rtd_theme")
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
"sphinx.ext.githubpages",
"myst_parser",
"sphinxmark",
]
show_authors = True
myst_heading_anchors = 4
# enable replacement of (tm) & friends
myst_enable_extensions = ["replacements", "dollarmath"]
# Add any paths that contain templates here, relative to this directory.
templates_path = ["_templates"]
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
source_suffix = {
".rst": "restructuredtext",
".txt": "markdown",
".md": "markdown",
}
# sphinxmark_enable = True
# sphinxmark_image = "text"
# sphinxmark_text = "Release Candidate"
# sphinxmark_text_size = 80
# sphinxmark_div = "document"
# sphinxmark_fixed = False
# sphinxmark_text_rotation = 30
# sphinxmark_text_color = (128, 128, 128)
# sphinxmark_text_spacing = 800
# sphinxmark_text_opacity = 30
from recommonmark.parser import CommonMarkParser
source_parsers = {".md": CommonMarkParser}
# The master toctree document.
master_doc = "index"
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = "en"
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = None
# options for latex output
latex_engine = "lualatex"
latex_show_urls = "footnote"
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = "sphinx_rtd_theme"
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#
# html_theme_options = {}
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ["_static"]
latex_elements = {
"sphinxsetup": "verbatimwrapslines=true, verbatimforcewraps=true",
}
# -- Options for HTMLHelp output ---------------------------------------------
# Output file base name for HTML help builder.
htmlhelp_basename = "Omniperfdoc"
html_logo = "images/amd-header-logo.svg"
html_theme_options = {
"analytics_id": "G-C5DYLCE9ED", # Provided by Google in your dashboard
"analytics_anonymize_ip": False,
"logo_only": False,
"display_version": True,
"prev_next_buttons_location": "bottom",
"style_external_links": False,
"vcs_pageview_mode": "",
# 'style_nav_header_background': 'white',
# Toc options
"collapse_navigation": True,
"sticky_navigation": True,
"navigation_depth": 5,
"includehidden": True,
"titles_only": False,
}
from pygments.styles import get_all_styles
# The name of the Pygments (syntax highlighting) style to use.
styles = list(get_all_styles())
preferences = ("emacs", "pastie", "colorful")
for pref in preferences:
if pref in styles:
pygments_style = pref
break
from recommonmark.transform import AutoStructify
# app setup hook
def setup(app):
app.add_config_value(
"recommonmark_config",
{
"auto_toc_tree_section": "Contents",
"enable_eval_rst": True,
"enable_auto_doc_ref": False,
},
True,
)
app.add_transform(AutoStructify)
app.add_config_value("docstring_replacements", {}, True)
app.connect("source-read", replaceString)
app.add_css_file("css/custom.css")
# function to replace version string througout documentation
def replaceString(app, docname, source):
result = source[0]
for key in app.config.docstring_replacements:
result = result.replace(key, app.config.docstring_replacements[key])
source[0] = result
docstring_replacements = {"{__VERSION__}": version}
@@ -0,0 +1,67 @@
# FAQ
```eval_rst
.. toctree::
:glob:
:maxdepth: 4
```
**1. How do I export profiling data I have already generated using Omniperf?**
In order to interact with the Grafana GUI you must sync data with the MongoDB backend. This interaction is done through ***database*** mode.
Simply pass the directory of your desired workload like so,
```shell
$ omniperf database --import -w <path-to-results> -H <hostname> -u <username> -t <team-name>
```
**2. python ast error: 'Constant' object has no attribute 'kind'**
This comes from a bug in the default astunparse 1.6.3 with python 3.8. Seems good with python 3.7 and 3.9.
Workaround:
```shell
$ pip3 uninstall astunparse
$ pip3 astunparse
```
**3. tabulate doesn't print properly**
Workaround:
```shell
$ export LC_ALL=C.UTF-8
$ export LANG=C.UTF-8
```
**3. How can I SSH Tunnel in MobaXterm?**
1. Open MobaXterm
2. In the top ribbon, select `Tunneling`
``` {image} images/tunnel_demo1.png
:alt: MobaXterm Tunnel Button
:class: bg-primary
:align: center
```
This pop up will appear
``` {image} images/tunnel_demo2.png
:alt: MobaXterm Pop Up
:class: bg-primary
:align: center
```
3. Press `New SSH tunnel`
``` {image} images/tunnel_demo3.png
:alt: MobaXterm Pop Up
:class: bg-primary
:align: center
```
4. Configure tunnel accordingly
Local clients
- Forwarded Port: [PORT]
Remote Server
- Remote Server: localhost
- Remote Port: [PORT]
SSH Server
- SSH server: Name of the server one is connecting to
- SSH login: Username to login to the server
- SSH port: 22
@@ -0,0 +1,112 @@
# Getting Started
```eval_rst
.. toctree::
:glob:
:maxdepth: 4
```
## Quickstart
1. **Launch & Profile the target application with the command line profiler**
The command line profiler launches the target application, calls the rocProfiler API via the rocProf binary, and collects profile results for the specified kernels, dispatches, and/or hardware components. If not specified, Omniperf will default to collecting all available counters for all kernels/dispatches launched by the user's executable.
To collect the default set of data for all kernels in the target application, launch, e.g.:
```shell
$ omniperf profile -n vcopy_data -- ./vcopy -n 1048576 -b 256
```
The app runs, each kernel is launched, and profiling results are generated. By default, results are written to a subdirectory with your accelerator's name e.g., ./workloads/vcopy_data/MI200/ (where name is configurable via the `-n` argument).
```{note}
To collect all requested profile information, it may be required to replay kernels multiple times.
```
2. **Customize data collection**
Options are available to specify for which kernels/metrics data should be collected.
Note that filtering can be applied either in the profiling or analysis stage, however filtering at during profiling collection will often speed up your overall profiling run time.
Some common filters include:
- `-k`/`--kernel` enables filtering kernels by name.
- `-d`/`--dispatch` enables filtering based on dispatch ID.
- `-b`/`--block` enables collects metrics for only the specified (one or more) hardware component blocks.
To view available metrics by hardware Block you can use the `--list-metrics` argument:
```shell
$ omniperf analyze --list-metrics <sys_arch>
```
3. **Analyze at the command line**
After generating a local output folder (e.g. ./workloads/vcopy_data/MI200), the command line tool can also be used to quickly interface with profiling results. View different metrics derived from your profiled results and get immediate access all metrics organized by hardware blocks.
If no kernel, dispatch, or hardware block filters are applied at this stage, analysis will be reflective of the entirety of the profiling data.
To interact with profiling results from a different session, users just provide the workload path. `-p`/`--path` enables users to analyze existing profiling data in the Omniperf CLI.
4. **Analyze in the Grafana GUI**
To conduct a more in-depth analysis of profiling results we recommend users utilize the Omniperf Grafana GUI. To interact with profiling results, users must import their data to the MongoDB instance included in the Omniperf dockerfile.
To interact with Grafana GUI data, stored in the Omniperf DB, users can enter ***database*** mode. For example:
```shell
$ omniperf database --import [CONNECTION OPTIONS]
```
## Usage
### Modes
Modes change the fundamental behavior of the Omniperf command line tool. Depending on which mode is chosen, different command line options become available.
- **Profile**: Target application is launched on the local system using AMD’s [ROC Profiler](https://github.com/ROCm-Developer-Tools/rocprofiler). Depending on the profiling options chosen, selected kernels, dispatches, and/or hardware components in the application are profiled and results are stored locally in an output folder (./workloads/\<name>).
```shell
$ omniperf profile --help
```
- **Analyze**: Profiling data from `-p`/`--path` directory is loaded into the Omniperf CLI analyzer where users have immediate access to profiling results and generated metrics. Metrics are quickly generated from the entirety of your profiled application or a subset you’ve identified through the Omniperf CLI analysis filters.
To generate a lightweight GUI interface users can add the `--gui` flag to their analysis command.
This mode is designed to be a middle ground to the highly detailed Omniperf Grafana GUI and is great for users who want immediate access to a hardware component they’re already familiar with.
```shell
$ omniperf analyze --help
```
- **Database**: Our detailed Grafana GUI is built on a MongoDB database. `--import` profiling results to the DB to interact with the workload in Grafana or `--remove` the workload from the DB.
Connection options will need to be specified. See the [*Grafana
Analysis*](analysis.md#grafana-gui-import) import section
for more details on this.
```shell
$ omniperf database --help
```
### Global Options
The Omniperf command line tool has a set of 'global' options that are available across all modes.
| Argument | Description |
| :----------------- | :---------------------------------------------------------------- |
| `-v` / `--version` | Print Omniperf version and exit. |
| `-V` / `--verbose` | Increase output verbosity (use multiple times for higher levels). |
| `-q` / `--quiet` | Reduce output and run quietly. |
| `-s` / `--specs` | Print system specs and exit. |
```{note}
Omniperf also recognizes the project variable, `OMNIPERF_COLOR`, should the user choose to disable colorful output. To disable default colorful behavior, set this variable to `0`.
```
## Basic Operations
| Operation | Mode | Required Arguments |
| :--------------------------------------- | :------- | :--------------------------------------------------------- |
| Profile a workload | profile | `--name`, `-- <profile_cmd>` |
| Standalone roofline analysis | profile | `--name`, `--roof-only`, `-- <profile_cmd>` |
| Import a workload to database | database | `--import`, `--host`, `--username`, `--workload`, `--team` |
| Remove a workload from database | database | `--remove`, `--host`, `--username`, `--workload`, `--team` |
| Launch standalone GUI from CLI | analyze | `--path`, `--gui` |
| Interact with profiling results from CLI | analyze | `--path` |
@@ -0,0 +1,22 @@
# High Level Design
```eval_rst
.. toctree::
:glob:
:maxdepth: 4
```
The [Omniperf](https://github.com/ROCm/omniperf) Tool is architecturally composed of three major components, as shown in the following figure.
- **Omniperf Profiling**: Acquire raw performance counters via application replay based on [rocProf](https://rocm.docs.amd.com/projects/rocprofiler/en/latest/rocprof.html). The counters are stored in a comma-separated format, for further analysis. A set of MI200 specific micro benchmarks are also run to acquire the hierarchical roofline data. The roofline model is not available on earlier accelerators.
- **Omniperf Grafana Analyzer**:
- *Grafana database import*: All raw performance counters are imported into the backend MongoDB database for Grafana GUI analysis and visualization. Compatibility of previously generated data between Omniperf versions is not necessarily guaranteed.
- *Grafana GUI Analyzer*: A Grafana dashboard is designed to retrieve the raw counters info from the backend database. It also creates the relevant performance metrics and visualization.
- **Omniperf Standalone GUI Analyzer**: A standalone GUI is provided to enable performance analysis without importing data into the backend database.
![Omniperf Architectural Diagram](images/omniperf_server_vs_client_install.png)
```{note}
To learn more about the client vs. server model of Omniperf and our install process please see the [Deployment section](./installation.md) of the docs.
```
Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

@@ -0,0 +1 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 139.72 33.32"><defs><style>.cls-1{fill:#fff;}</style></defs><title>AMD-logo-white-v2</title><path class="cls-1" d="M33,31.14H25.21l-2.37-5.72H9.92L7.76,31.14H.14L11.78,2.26h8.34Zm-16.89-22L11.83,20.39h8.89Z" transform="translate(-0.14 -0.03)"/><path class="cls-1" d="M61.1,2.26h6.27V31.14h-7.2v-18l-7.79,9.06h-1.1L43.49,13.1v18h-7.2V2.26h6.27L51.83,13Z" transform="translate(-0.14 -0.03)"/><path class="cls-1" d="M85.61,2.26c10.54,0,16,6.56,16,14.48,0,8.3-5.25,14.4-16.77,14.4H72.86V2.26ZM80.06,25.85h4.7c7.24,0,9.4-4.91,9.4-9.15,0-5-2.67-9.15-9.48-9.15H80.06Z" transform="translate(-0.14 -0.03)"/><polygon class="cls-1" points="130.64 9.08 115.75 9.08 106.68 0 139.72 0 139.72 33.05 130.64 23.97 130.64 9.08"/><polygon class="cls-1" points="115.74 23.98 115.74 10.9 106.4 20.24 106.4 33.33 119.48 33.33 128.82 23.98 115.74 23.98"/></svg>

After

Width:  |  Height:  |  Size: 924 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

@@ -0,0 +1,899 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="122.17907mm"
height="59.61977mm"
viewBox="0 0 122.17907 59.61977"
version="1.1"
id="svg5"
sodipodi:docname="fabric.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
inkscape:export-filename="/home/nick/Documents/software_repos/omniperf/src/docs/images/fabric.png"
inkscape:export-xdpi="180"
inkscape:export-ydpi="180"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview142"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="2.8284271"
inkscape:cx="251.55324"
inkscape:cy="153.61895"
inkscape:window-width="2490"
inkscape:window-height="1376"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<defs
id="defs2">
<marker
style="overflow:visible"
id="marker10337"
refX="0"
refY="0"
orient="auto">
<path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path10335" />
</marker>
<marker
style="overflow:visible"
id="Arrow1Send"
refX="0"
refY="0"
orient="auto">
<path
transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1319" />
</marker>
<marker
style="overflow:visible"
id="Arrow1Mend"
refX="0"
refY="0"
orient="auto">
<path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1313" />
</marker>
<rect
x="83.387405"
y="34.737923"
width="275.12451"
height="59.135487"
id="rect97993" />
<rect
x="428.84567"
y="387.25235"
width="209.04202"
height="89.898453"
id="rect64747" />
<rect
x="396.33554"
y="373.98026"
width="250.97929"
height="100.31375"
id="rect58746" />
<marker
style="overflow:visible"
id="Arrow1Lend"
refX="0"
refY="0"
orient="auto">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path20534" />
</marker>
<marker
style="overflow:visible"
id="Arrow1Lstart"
refX="0"
refY="0"
orient="auto">
<path
transform="matrix(0.8,0,0,0.8,10,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path20531" />
</marker>
<rect
x="97.144325"
y="226.69614"
width="148.65651"
height="56.321774"
id="rect6328" />
<rect
x="97.144325"
y="226.69614"
width="148.65651"
height="56.321774"
id="rect6328-0" />
<rect
x="97.144325"
y="226.69614"
width="148.65651"
height="56.321774"
id="rect6328-0-6" />
<rect
x="97.144325"
y="226.69614"
width="148.65651"
height="56.321774"
id="rect6328-0-3" />
<rect
x="97.144325"
y="226.69614"
width="148.65651"
height="56.321774"
id="rect6328-0-6-3" />
<marker
style="overflow:visible"
id="Arrow1Lend-7"
refX="0"
refY="0"
orient="auto">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path20534-3" />
</marker>
<marker
style="overflow:visible"
id="Arrow1Lend-7-9"
refX="0"
refY="0"
orient="auto">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path20534-3-2" />
</marker>
<marker
style="overflow:visible"
id="Arrow1Lend-7-9-7"
refX="0"
refY="0"
orient="auto">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path20534-3-2-6" />
</marker>
<rect
x="97.144325"
y="226.69614"
width="148.65651"
height="56.321774"
id="rect6328-0-6-3-0" />
<marker
style="overflow:visible"
id="Arrow1Lend-7-7"
refX="0"
refY="0"
orient="auto">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path20534-3-0" />
</marker>
<rect
x="97.144325"
y="226.69614"
width="148.65651"
height="56.321774"
id="rect6328-0-6-8" />
<marker
style="overflow:visible"
id="Arrow1Lend-7-7-2"
refX="0"
refY="0"
orient="auto">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path20534-3-0-1" />
</marker>
<rect
x="97.144325"
y="226.69614"
width="148.65651"
height="56.321774"
id="rect6328-0-6-8-2" />
<rect
x="83.387405"
y="34.737923"
width="275.12451"
height="59.135487"
id="rect97993-7" />
<marker
style="overflow:visible"
id="Arrow1Mend-3"
refX="0"
refY="0"
orient="auto">
<path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1313-5" />
</marker>
<marker
style="overflow:visible"
id="Arrow1Mend-3-2"
refX="0"
refY="0"
orient="auto">
<path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1313-5-9" />
</marker>
<rect
x="97.144325"
y="226.69614"
width="148.65651"
height="56.321774"
id="rect6328-0-6-8-2-2" />
<rect
x="83.387405"
y="34.737923"
width="275.12451"
height="59.135487"
id="rect97993-7-7" />
<marker
style="overflow:visible"
id="Arrow1Mend-36"
refX="0"
refY="0"
orient="auto">
<path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1313-7" />
</marker>
<rect
x="97.144325"
y="226.69614"
width="148.65651"
height="56.321774"
id="rect6328-0-6-8-2-2-5" />
<rect
x="83.387405"
y="34.737923"
width="275.12451"
height="59.135487"
id="rect97993-7-7-6" />
<marker
style="overflow:visible"
id="Arrow1Mend-36-0"
refX="0"
refY="0"
orient="auto">
<path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1313-7-9" />
</marker>
<rect
x="97.144325"
y="226.69614"
width="148.65651"
height="56.321774"
id="rect6328-0-6-8-2-2-5-3" />
<rect
x="83.387405"
y="34.737923"
width="275.12451"
height="59.135487"
id="rect97993-7-7-6-6" />
<marker
style="overflow:visible"
id="Arrow1Mend-3-2-9"
refX="0"
refY="0"
orient="auto">
<path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1313-5-9-2" />
</marker>
<marker
style="overflow:visible"
id="Arrow1Mend-36-0-3"
refX="0"
refY="0"
orient="auto">
<path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1313-7-9-7" />
</marker>
<rect
x="97.144325"
y="226.69614"
width="148.65651"
height="56.321774"
id="rect6328-0-6-8-2-2-5-3-3" />
<rect
x="97.144325"
y="226.69614"
width="148.65651"
height="56.321774"
id="rect6328-0-6-8-2-2-5-3-3-6" />
<marker
style="overflow:visible"
id="Arrow1Mend-36-0-2"
refX="0"
refY="0"
orient="auto">
<path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1313-7-9-70" />
</marker>
<marker
style="overflow:visible"
id="Arrow1Mend-36-3"
refX="0"
refY="0"
orient="auto">
<path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1313-7-6" />
</marker>
<marker
style="overflow:visible"
id="Arrow1Mend-367"
refX="0"
refY="0"
orient="auto">
<path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1313-53" />
</marker>
<marker
style="overflow:visible"
id="Arrow1Mend-6"
refX="0"
refY="0"
orient="auto">
<path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1313-2" />
</marker>
<rect
x="97.144325"
y="226.69614"
width="148.65651"
height="56.321774"
id="rect6328-0-6-8-2-2-5-3-6" />
<rect
x="97.144325"
y="226.69614"
width="148.65651"
height="56.321774"
id="rect6328-0-6-8-2-2-5-3-3-1" />
</defs>
<g
id="layer1"
transform="translate(-3.1044175,-14.33817)">
<g
id="g3747"
transform="translate(0,0.18150994)">
<rect
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.136377;stroke-opacity:1"
id="rect31"
width="20.273424"
height="7.6810331"
x="3.172606"
y="40.275291" />
<text
xml:space="preserve"
transform="matrix(0.13637766,0,0,0.13637766,-10.07571,10.507238)"
id="text6326"
style="font-style:normal;font-weight:normal;font-size:16px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect6328);fill:#000000;fill-opacity:1;stroke:none"
x="45.007812"
y="0"><tspan
x="126.48828"
y="240.85156"
id="tspan43284"><tspan
style="text-align:center;text-anchor:middle"
id="tspan43282">Total Fabric </tspan></tspan><tspan
x="134.80859"
y="260.85156"
id="tspan43288"><tspan
style="text-align:center;text-anchor:middle"
id="tspan43286">Requests</tspan></tspan></text>
</g>
<path
style="fill:none;stroke:#000000;stroke-width:0.252;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 23.417828,44.182431 h 7.744823"
id="path20529"
sodipodi:nodetypes="cc" />
<g
id="g3739"
transform="translate(10.059995,2.72298)">
<rect
style="opacity:0.28;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.136377;stroke-opacity:1"
id="rect31-4"
width="20.273424"
height="7.6810331"
x="31.404562"
y="28.797853" />
<text
xml:space="preserve"
transform="matrix(0.13637766,0,0,0.13637766,18.156244,-0.9701983)"
id="text6326-8"
style="font-style:normal;font-weight:normal;font-size:16px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect6328-0);opacity:0.28;fill:#000000;fill-opacity:1;stroke:none"
x="158.11719"
y="0"><tspan
x="133.16016"
y="240.85156"
id="tspan43292"><tspan
style="text-align:center;text-anchor:middle"
id="tspan43290">32B Read </tspan></tspan><tspan
x="134.80859"
y="260.85156"
id="tspan43296"><tspan
style="text-align:center;text-anchor:middle"
id="tspan43294">Requests</tspan></tspan></text>
</g>
<g
id="g204"
transform="translate(10.059995)">
<rect
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.136377;stroke-opacity:1"
id="rect31-4-1"
width="20.273424"
height="7.6810331"
x="31.404562"
y="14.407581" />
<text
xml:space="preserve"
transform="matrix(0.13637766,0,0,0.13637766,18.156246,-15.360471)"
id="text6326-8-2"
style="font-style:normal;font-weight:normal;font-size:16px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect6328-0-6);fill:#000000;fill-opacity:1;stroke:none"
x="158.11719"
y="0"><tspan
x="133.16016"
y="240.85156"
id="tspan43300"><tspan
style="text-align:center;text-anchor:middle"
id="tspan43298">64B Read </tspan></tspan><tspan
x="134.80859"
y="260.85156"
id="tspan43304"><tspan
style="text-align:center;text-anchor:middle"
id="tspan43302">Requests</tspan></tspan></text>
</g>
<g
id="g33085"
transform="translate(0,0.26317766)">
<rect
style="opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.136;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect31-4-6"
width="20.273424"
height="7.6810331"
x="41.464558"
y="48.84304" />
<text
xml:space="preserve"
transform="matrix(0.13637766,0,0,0.13637766,28.216241,19.074987)"
id="text6326-8-3"
style="font-style:normal;font-weight:normal;font-size:16px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect6328-0-3);opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.997231;stroke-miterlimit:4;stroke-dasharray:none"
x="158.11719"
y="0"><tspan
x="132.14062"
y="240.85156"
id="tspan43308"><tspan
style="text-align:center;text-anchor:middle"
id="tspan43306">32B Write </tspan></tspan><tspan
x="134.80859"
y="260.85156"
id="tspan43312"><tspan
style="text-align:center;text-anchor:middle"
id="tspan43310">Requests</tspan></tspan></text>
</g>
<text
xml:space="preserve"
transform="matrix(0.13637766,0,0,0.13637766,-0.0308419,9.5190479)"
id="text58744"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect58746);fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.997231;stroke-miterlimit:4;stroke-dasharray:none" />
<text
xml:space="preserve"
transform="matrix(0.13637766,0,0,0.13637766,-0.0308419,9.5190479)"
id="text64745"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect64747);fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.997231;stroke-miterlimit:4;stroke-dasharray:none" />
<g
id="g54852"
transform="matrix(0.51544312,0,0,0.51544312,28.426265,12.492382)">
<rect
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583;stroke-opacity:1"
id="rect31-4-1-0"
width="39.332031"
height="14.901806"
x="25.295307"
y="104.1685" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-0.40746419,46.416146)"
id="text6326-8-2-2"
style="font-style:normal;font-weight:normal;font-size:16px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect6328-0-6-3);fill:#000000;fill-opacity:1;stroke:none"
x="158.11719"
y="0"><tspan
x="132.14062"
y="240.85156"
id="tspan43316"><tspan
style="text-align:center;text-anchor:middle"
id="tspan43314">64B Write </tspan></tspan><tspan
x="134.80859"
y="260.85156"
id="tspan43320"><tspan
style="text-align:center;text-anchor:middle"
id="tspan43318">Requests</tspan></tspan></text>
</g>
<path
style="fill:none;stroke:#000000;stroke-width:0.252;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 51.601269,66.186146 V 61.556441"
id="path69447-9-7-5-2-3-93-6" />
<path
style="fill:none;stroke:#000000;stroke-width:0.252;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 31.07042,44.609772 V 26.783617"
id="path69449" />
<g
id="g6799"
transform="translate(-0.85908839)">
<rect
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.136377;stroke-opacity:1"
id="rect31-4-1-7"
width="20.273424"
height="7.6810331"
x="73.9366"
y="14.407581" />
<text
xml:space="preserve"
transform="matrix(0.13637766,0,0,0.13637766,60.688286,-15.360471)"
id="text6326-8-2-8"
style="font-style:normal;font-weight:normal;font-size:16px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect6328-0-6-8);fill:#000000;fill-opacity:1;stroke:none"
x="158.11719"
y="0"><tspan
x="109.13281"
y="240.85156"
id="tspan43326"><tspan
style="text-align:center;text-anchor:middle"
id="tspan43322">Uncached </tspan><tspan
style="text-align:center;text-anchor:middle"
id="tspan43324">Read </tspan></tspan><tspan
x="134.80859"
y="260.85156"
id="tspan43330"><tspan
style="text-align:center;text-anchor:middle"
id="tspan43328">Requests</tspan></tspan></text>
</g>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,23.273945,0.03952421)"
id="text97991"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect97993);fill:#000000;fill-opacity:1;stroke:none" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:2.64068px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.0660172"
x="65.804695"
y="17.049156"
id="text104993"><tspan
id="tspan104991"
style="stroke-width:0.0660172"
x="65.804695"
y="17.049156">x2</tspan></text>
<g
id="g23519"
transform="translate(-8.0320305,-0.27460261)">
<g
id="g33659">
<rect
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.136377;stroke-opacity:1"
id="rect31-4-1-7-2"
width="20.273424"
height="7.6810331"
x="81.756866"
y="66.459923" />
<text
xml:space="preserve"
transform="matrix(0.13637766,0,0,0.13637766,68.508552,36.707843)"
id="text6326-8-2-8-6"
style="font-style:normal;font-weight:normal;font-size:16px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect6328-0-6-8-2);fill:#000000;fill-opacity:1;stroke:none"
x="158.11719"
y="0"><tspan
x="108.11328"
y="240.85156"
id="tspan43336"><tspan
style="text-align:center;text-anchor:middle"
id="tspan43332">Uncached </tspan><tspan
style="text-align:center;text-anchor:middle"
id="tspan43334">Write </tspan></tspan><tspan
x="134.80859"
y="260.85156"
id="tspan43340"><tspan
style="text-align:center;text-anchor:middle"
id="tspan43338">Requests</tspan></tspan></text>
</g>
</g>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,23.273945,52.107839)"
id="text97991-3"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect97993-7);fill:#000000;fill-opacity:1;stroke:none" />
<g
id="g10025"
transform="matrix(0.51544312,0,0,0.51544312,23.359942,44.057639)">
<rect
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583;stroke-opacity:1"
id="rect31-4-1-7-2-9"
width="39.332031"
height="14.901806"
x="81.170959"
y="9.7946386" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,55.363782,-47.957714)"
id="text6326-8-2-8-6-3"
style="font-style:normal;font-weight:normal;font-size:16px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect6328-0-6-8-2-2);fill:#000000;fill-opacity:1;stroke:none"
x="158.11719"
y="0"><tspan
x="141.15234"
y="240.85156"
id="tspan43344"><tspan
style="text-align:center;text-anchor:middle"
id="tspan43342">Atomic
</tspan></tspan><tspan
x="134.80859"
y="260.85156"
id="tspan43348"><tspan
style="text-align:center;text-anchor:middle"
id="tspan43346">Requests</tspan></tspan></text>
</g>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,23.273945,37.671054)"
id="text97991-3-6"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect97993-7-7);fill:#000000;fill-opacity:1;stroke:none" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,23.273945,66.483549)"
id="text97991-3-6-7"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect97993-7-7-6);fill:#000000;fill-opacity:1;stroke:none" />
<g
id="g10025-9-6"
transform="matrix(0.51544312,0,0,0.51544312,62.851448,9.3577801)">
<rect
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583;stroke-opacity:1"
id="rect31-4-1-7-2-9-1-1"
width="39.332031"
height="14.901806"
x="81.170959"
y="9.7946386" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,55.363782,-47.957714)"
id="text6326-8-2-8-6-3-2-8"
style="font-style:normal;font-weight:normal;font-size:16px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect6328-0-6-8-2-2-5-3);fill:#000000;fill-opacity:1;stroke:none"
x="158.11719"
y="0"><tspan
x="130.42188"
y="240.85156"
id="tspan43352"><tspan
style="text-align:center;text-anchor:middle"
id="tspan43350">HBM Read
</tspan></tspan><tspan
x="134.80859"
y="260.85156"
id="tspan43356"><tspan
style="text-align:center;text-anchor:middle"
id="tspan43354">Requests</tspan></tspan></text>
</g>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,23.273945,14.460151)"
id="text97991-3-6-7-7"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect97993-7-7-6-6);fill:#000000;fill-opacity:1;stroke:none" />
<g
id="g13641"
transform="matrix(0.51544312,0,0,0.51544312,62.851448,26.472254)">
<rect
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583;stroke-opacity:1"
id="rect31-4-1-7-2-9-1-1-7"
width="39.332031"
height="14.901806"
x="81.170959"
y="9.7946386" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,55.363782,-47.957714)"
id="text6326-8-2-8-6-3-2-8-5"
style="font-style:normal;font-weight:normal;font-size:16px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect6328-0-6-8-2-2-5-3-3);fill:#000000;fill-opacity:1;stroke:none"
x="158.11719"
y="0"><tspan
x="117.96094"
y="240.85156"
id="tspan43360"><tspan
style="text-align:center;text-anchor:middle"
id="tspan43358">Remote Read
</tspan></tspan><tspan
x="134.80859"
y="260.85156"
id="tspan43364"><tspan
style="text-align:center;text-anchor:middle"
id="tspan43362">Requests</tspan></tspan></text>
</g>
<path
style="fill:none;stroke:#000000;stroke-width:0.252;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.252, 0.252;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#Arrow1Mend-36-0)"
d="M 61.835501,17.827625 H 72.628293"
id="path69449-1-4-5-5-0" />
<path
style="fill:none;stroke:#000000;stroke-width:0.252;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 31.07042,44.18384 V 61.525736"
id="path69449-9" />
<path
style="fill:none;stroke:#000000;stroke-width:0.251943;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 30.944463,26.804724 H 114.94704"
id="path69449-3" />
<path
style="fill:none;stroke:#000000;stroke-width:0.252;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 51.601269,28.986028 V 26.930672"
id="path69447-9-7-5-2" />
<path
style="fill:none;stroke:#000000;stroke-width:0.252;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 52.807545,30.383236 -1.17844,-1.410071"
id="path69447-9-7-5-6-7" />
<ellipse
style="fill:#ffffff;stroke:#000000;stroke-width:0.0583236;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path2455-3-6-3-1"
cx="-51.593498"
cy="28.936687"
rx="0.26853767"
ry="0.29816741"
transform="scale(-1,1)" />
<path
style="fill:none;stroke:#000000;stroke-width:0.252;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.3"
d="M 51.601269,31.456218 V 30.329011"
id="path69447-9-7-5-2-5" />
<path
style="fill:none;stroke:#000000;stroke-width:0.252;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 51.601269,26.688316 V 22.058611"
id="path69447-9-7-5-2-3" />
<ellipse
style="fill:#ffffff;stroke:#000000;stroke-width:0.107;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path2455-3-6-3-6"
cx="51.61137"
cy="28.97942"
rx="0.49265727"
ry="0.54701579" />
<ellipse
style="fill:#ffffff;stroke:#000000;stroke-width:0.107;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path2455-3-6-3-6-2"
cx="52.914024"
cy="30.493517"
rx="0.49265727"
ry="0.54701579" />
<path
style="fill:none;stroke:#000000;stroke-width:0.252;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 114.82717,31.453752 V 22.110106"
id="path69447-9-7-5-2-3-9" />
<path
style="fill:none;stroke:#000000;stroke-width:0.252188;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 30.9454,61.491997 h 84.16591"
id="path69449-3-1" />
<path
style="fill:none;stroke:#000000;stroke-width:0.252;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 51.601269,61.398519 V 56.768814"
id="path69447-9-7-5-2-3-93" />
<path
style="fill:none;stroke:#000000;stroke-width:0.252;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 75.335667,61.434975 V 56.80527"
id="path69447-9-7-5-2-3-93-0" />
<path
style="fill:none;stroke:#000000;stroke-width:0.252;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 83.861548,66.11139 V 61.481685"
id="path69447-9-7-5-2-3-93-62" />
<g
id="g10025-9-6-8"
transform="matrix(0.51544312,0,0,0.51544312,63.102859,44.045664)">
<rect
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583;stroke-opacity:1"
id="rect31-4-1-7-2-9-1-1-79"
width="39.332031"
height="14.901806"
x="81.170959"
y="9.7946386" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,55.363782,-47.957714)"
id="text6326-8-2-8-6-3-2-8-2"
style="font-style:normal;font-weight:normal;font-size:16px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect6328-0-6-8-2-2-5-3-6);fill:#000000;fill-opacity:1;stroke:none"
x="158.11719"
y="0"><tspan
x="129.40234"
y="240.85156"
id="tspan43368"><tspan
style="text-align:center;text-anchor:middle"
id="tspan43366">HBM Write </tspan></tspan><tspan
x="134.80859"
y="260.85156"
id="tspan43372"><tspan
style="text-align:center;text-anchor:middle"
id="tspan43370">Requests</tspan></tspan></text>
</g>
<g
id="g13641-0"
transform="matrix(0.51544312,0,0,0.51544312,63.102859,61.160138)">
<rect
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583;stroke-opacity:1"
id="rect31-4-1-7-2-9-1-1-7-2"
width="39.332031"
height="14.901806"
x="81.170959"
y="9.7946386" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,55.363782,-47.957714)"
id="text6326-8-2-8-6-3-2-8-5-3"
style="font-style:normal;font-weight:normal;font-size:16px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect6328-0-6-8-2-2-5-3-3-1);fill:#000000;fill-opacity:1;stroke:none"
x="158.11719"
y="0"><tspan
x="116.94141"
y="240.85156"
id="tspan43376"><tspan
style="text-align:center;text-anchor:middle"
id="tspan43374">Remote Write </tspan></tspan><tspan
x="134.80859"
y="260.85156"
id="tspan43380"><tspan
style="text-align:center;text-anchor:middle"
id="tspan43378">Requests</tspan></tspan></text>
</g>
<path
style="fill:none;stroke:#000000;stroke-width:0.252;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 115.07858,66.141636 V 56.79799"
id="path69447-9-7-5-2-3-9-7" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

@@ -0,0 +1,584 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="127.5mm"
height="32.5mm"
viewBox="0 0 127.5 32.5"
version="1.1"
id="svg8"
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
sodipodi:docname="l1perf_model2.svg"
inkscape:export-filename="/home/nick/Documents/software_repos/omniperf/src/docs/images/l1perf_model.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<defs
id="defs2">
<marker
inkscape:stockid="Arrow2Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow2Mend"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4559"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="scale(-0.6)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow2Mstart"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4556"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="scale(0.6)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow2Lstart"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4550"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(1.1,0,0,1.1,1.1,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker4982"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path4980"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lend-3"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always">
<path
inkscape:connector-curvature="0"
id="path4535-6"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow2Lstart-8"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4550-1"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(1.1,0,0,1.1,1.1,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow2Lstart-0"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4550-3"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(1.1,0,0,1.1,1.1,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lend-3-4"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always">
<path
inkscape:connector-curvature="0"
id="path4535-6-0"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6"
inkscape:cx="293.09582"
inkscape:cy="20.610939"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="2488"
inkscape:window-height="1376"
inkscape:window-x="72"
inkscape:window-y="27"
inkscape:window-maximized="1"
showguides="true" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-264.5)">
<rect
id="rect3717"
width="12.756697"
height="31.844492"
x="0.16001961"
y="264.8248"
style="fill:none;stroke:#000000;stroke-width:0.26499999;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="-280.79251"
y="7.3169599"
id="text4526"
transform="rotate(-90)"><tspan
sodipodi:role="line"
id="tspan1391"
x="-280.79251"
y="7.3169599">Compute Unit</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="19.342445"
y="269.90857"
id="text4816"><tspan
sodipodi:role="line"
x="19.342445"
y="269.90857"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944451px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332"
id="tspan4818">Cmd/Data</tspan></text>
<rect
style="fill:none;stroke:#000000;stroke-width:0.26753739;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4843"
width="52.205414"
height="31.841953"
x="37.515408"
y="264.82605"
ry="0"
rx="0" />
<rect
style="fill:none;stroke:#000000;stroke-width:0.26433226;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4847"
width="12.880525"
height="12.567707"
x="37.579292"
y="264.8248"
rx="1.0342027"
ry="0.37797582" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:5.28136396px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13203409"
x="44.815056"
y="19.832005"
id="text4851"
transform="scale(1.3075045,0.76481574)"><tspan
sodipodi:role="line"
x="44.815056"
y="24.504774"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;line-height:0;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.13203409"
id="tspan4857" /></text>
<flowRoot
xml:space="preserve"
id="flowRoot4859"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"><flowRegion
id="flowRegion4861"><rect
id="rect4863"
width="71.071426"
height="43.57143"
x="195.35715"
y="38.59111" /></flowRegion><flowPara
id="flowPara4865" /></flowRoot> <text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666679px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25103042"
x="40.514164"
y="264.33435"
id="text1823"
transform="scale(0.98186128,1.0184738)"><tspan
sodipodi:role="line"
x="40.514164"
y="264.33435"
id="tspan1813"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666679px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.25103042"><tspan
x="40.514164"
y="264.33435"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666679px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.25103042"
id="tspan1811">Address </tspan></tspan><tspan
sodipodi:role="line"
x="39.07756"
y="266.98016"
id="tspan1817"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666679px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.25103042"><tspan
x="39.07756"
y="266.98016"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666679px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.25103042"
id="tspan1815">Processing </tspan></tspan><tspan
sodipodi:role="line"
x="42.574501"
y="269.62601"
id="tspan1821"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666679px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.25103042"><tspan
x="42.574501"
y="269.62601"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666679px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.25103042"
id="tspan1819">Unit</tspan></tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.21152194;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow2Mstart);marker-end:url(#Arrow2Mend)"
d="m 43.986979,277.84477 v 5.7019"
id="path4904"
inkscape:connector-curvature="0" />
<rect
style="fill:none;stroke:#000000;stroke-width:0.26499999;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4847-2"
width="12.945681"
height="12.567707"
x="37.514137"
y="284.10156"
rx="1.0394342"
ry="0.37797582" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="-283.25629"
y="42.902218"
id="text5371"
transform="rotate(-90)"><tspan
sodipodi:role="line"
id="tspan5369"
x="-283.25629"
y="42.902218"
style="font-size:2.11666656px;stroke-width:0.26458332">Sync</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.25406051px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.2351373"
x="41.356129"
y="288.49612"
id="text940"><tspan
sodipodi:role="line"
x="41.356129"
y="288.49612"
id="tspan930"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666656px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.2351373"><tspan
x="41.356129"
y="288.49612"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666656px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.2351373"
id="tspan928">Data </tspan></tspan><tspan
sodipodi:role="line"
x="38.231773"
y="291.14197"
id="tspan934"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666656px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.2351373"><tspan
x="38.231773"
y="291.14197"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666656px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.2351373"
id="tspan932">Processing </tspan></tspan><tspan
sodipodi:role="line"
x="41.728718"
y="293.78778"
id="tspan938"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666656px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.2351373"><tspan
x="41.728718"
y="293.78778"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666656px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.2351373"
id="tspan936">Unit</tspan></tspan></text>
<rect
style="fill:none;stroke:#000000;stroke-width:0.26499999;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4847-6"
width="12.945681"
height="12.567707"
x="51.913925"
y="264.8251"
rx="1.0394342"
ry="0.37797582" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25566792"
x="53.571041"
y="267.50827"
id="text1809"><tspan
sodipodi:role="line"
x="53.571041"
y="267.50827"
id="tspan1795"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666656px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.25566792"><tspan
x="53.571041"
y="267.50827"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666656px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.25566792"
id="tspan1793">Virtual To </tspan></tspan><tspan
sodipodi:role="line"
x="54.174622"
y="270.15408"
id="tspan1799"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666656px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.25566792"><tspan
x="54.174622"
y="270.15408"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666656px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.25566792"
id="tspan1797">Physical </tspan></tspan><tspan
sodipodi:role="line"
x="54.265057"
y="272.79993"
id="tspan1803"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666656px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.25566792"><tspan
x="54.265057"
y="272.79993"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666656px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.25566792"
id="tspan1801">Address </tspan></tspan><tspan
sodipodi:role="line"
x="52.713211"
y="275.44577"
id="tspan1807"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666656px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.25566792"><tspan
x="52.713211"
y="275.44577"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666656px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.25566792"
id="tspan1805">Translation</tspan></tspan></text>
<rect
style="fill:none;stroke:#000000;stroke-width:0.26499999;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4847-6-4"
width="12.945681"
height="12.567707"
x="66.313728"
y="264.8251"
rx="1.0394342"
ry="0.37797582" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:1.36356223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25566792"
x="72.785965"
y="270.58688"
id="text1599"><tspan
sodipodi:role="line"
id="tspan1825"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944451px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle"
x="73.178444"
y="270.58688">Tag </tspan><tspan
sodipodi:role="line"
id="tspan1827"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944451px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle"
x="72.785965"
y="273.67368">RAM</tspan></text>
<rect
style="fill:none;stroke:#000000;stroke-width:0.25661802;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4847-6-4-5"
width="27.324272"
height="5.5836082"
x="51.880585"
y="277.95538"
rx="2.1939197"
ry="0.16792791" />
<flowRoot
xml:space="preserve"
id="flowRoot4896-6-6-6"
style="font-style:normal;font-weight:normal;font-size:5.33333349px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
transform="matrix(0.25566792,0,0,0.25566792,21.981703,13.242276)"><flowRegion
id="flowRegion4898-4-2-9"
style="font-size:5.33333349px"><rect
id="rect4900-0-6-8"
width="74.800339"
height="17.377857"
x="220.71429"
y="50.733971"
style="font-size:5.33333349px" /></flowRegion><flowPara
style="font-size:9.24484825px;text-align:center;text-anchor:middle"
id="flowPara5633-2" /></flowRoot> <text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.36355662px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25566792"
x="59.399857"
y="280.12439"
id="text914"><tspan
sodipodi:role="line"
x="59.399857"
y="280.12439"
id="tspan908"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944451px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.25566792"><tspan
x="59.399857"
y="280.12439"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944451px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.25566792"
id="tspan906">L1 Cache </tspan></tspan><tspan
sodipodi:role="line"
x="59.399857"
y="283.21121"
id="tspan912"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944451px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.25566792"><tspan
x="59.399857"
y="283.21121"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944451px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.25566792"
id="tspan910">Controller</tspan></tspan></text>
<rect
style="fill:none;stroke:#000000;stroke-width:0.25977203;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4847-6-4-5-7"
width="27.322025"
height="12.587595"
x="51.882832"
y="284.0853"
rx="2.1937392"
ry="0.37857395" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25566792;"
x="61.700409"
y="289.7738"
id="text926"><tspan
sodipodi:role="line"
x="61.700409"
y="289.7738"
id="tspan920"
style="stroke-width:0.25566792;-inkscape-font-specification:'sans-serif, Normal';font-family:sans-serif;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;font-size:2.46944444px;text-anchor:start;text-align:start;writing-mode:lr;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;"><tspan
x="61.700409"
y="289.7738"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944444px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr;text-anchor:start;stroke-width:0.25566792;"
id="tspan916">Cache</tspan><tspan
dx="0"
x="69.380043"
y="289.7738"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944444px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr;text-anchor:start;stroke-width:0.25566792;"
id="tspan918" /></tspan><tspan
sodipodi:role="line"
x="62.822392"
y="292.8606"
id="tspan924"
style="stroke-width:0.25566792;-inkscape-font-specification:'sans-serif, Normal';font-family:sans-serif;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;font-size:2.46944444px;text-anchor:start;text-align:start;writing-mode:lr;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;"><tspan
x="62.822392"
y="292.8606"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944444px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr;text-anchor:start;stroke-width:0.25566792;"
id="tspan922">RAM</tspan></tspan></text>
<rect
style="fill:none;stroke:#000000;stroke-width:0.35042927;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4847-6-4-5-1"
width="8.9711571"
height="31.713299"
x="80.756233"
y="264.86783"
rx="0.72031188"
ry="0.95378256" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.36361098px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="-280.84842"
y="85.92308"
id="text4526-5"
transform="rotate(-90)"><tspan
sodipodi:role="line"
id="tspan5786"
x="-280.84842"
y="85.92308"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944451px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle">L2 Memory Interface</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="22.10359"
y="289.48212"
id="text4816-5"><tspan
sodipodi:role="line"
x="22.10359"
y="289.48212"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944451px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332"
id="tspan4818-8">Data</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.17609379;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow2Lstart);marker-end:url(#Arrow1Lend-3)"
d="M 90.208048,280.72448 H 114.26491"
id="path4530-75"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="99.92643"
y="278.60959"
id="text4816-3"><tspan
sodipodi:role="line"
x="99.92643"
y="278.60959"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944451px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332"
id="tspan4818-5">Bus</tspan></text>
<rect
id="rect3717-6"
width="12.756697"
height="31.844494"
x="114.5292"
y="264.75391"
style="fill:none;stroke:#000000;stroke-width:0.26499999;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.36361122px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="-280.73953"
y="121.95969"
id="text4526-5-2"
transform="rotate(-90)"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.26458332"
sodipodi:role="line"
id="tspan5786-9"
x="-280.73953"
y="121.95969">L2 Cache</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.17609379;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow2Lstart-8)"
d="m 13.179534,290.78598 h 24.05686"
id="path4530-75-1"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:0.17696008;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend-3-4)"
d="M 13.04999,271.40894 H 37.370029"
id="path4530-75-3"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

@@ -0,0 +1,393 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="78.030128mm"
height="59.956924mm"
viewBox="0 0 78.030128 59.956924"
version="1.1"
id="svg5"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
sodipodi:docname="lds.svg"
inkscape:export-filename="/home/nick/Documents/software_repos/omniperf/src/docs/images/lds.png"
inkscape:export-xdpi="180"
inkscape:export-ydpi="180"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="2.8284271"
inkscape:cx="7.9549513"
inkscape:cy="93.161318"
inkscape:window-width="2490"
inkscape:window-height="1376"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<defs
id="defs2">
<marker
style="overflow:visible"
id="marker35467"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Mend"
inkscape:isstock="true">
<path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path35465" />
</marker>
<marker
style="overflow:visible"
id="Arrow2Mend"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow2Mend"
inkscape:isstock="true">
<path
transform="scale(-0.6)"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
id="path34770" />
</marker>
<marker
style="overflow:visible"
id="marker35449"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Mend"
inkscape:isstock="true">
<path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path35447" />
</marker>
<marker
style="overflow:visible"
id="Arrow1Mend"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Mend"
inkscape:isstock="true">
<path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path34752" />
</marker>
<marker
style="overflow:visible"
id="marker35115"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow2Mstart"
inkscape:isstock="true">
<path
transform="scale(0.6)"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
id="path35113" />
</marker>
<marker
style="overflow:visible"
id="Arrow2Mstart"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow2Mstart"
inkscape:isstock="true">
<path
transform="scale(0.6)"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
id="path34767" />
</marker>
<marker
style="overflow:visible"
id="Arrow1Lstart"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lstart"
inkscape:isstock="true">
<path
transform="matrix(0.8,0,0,0.8,10,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path34743" />
</marker>
<rect
x="175.93893"
y="253.99336"
width="234.12074"
height="100.54605"
id="rect3930" />
<marker
style="overflow:visible"
id="Arrow1Mend-5"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Mend"
inkscape:isstock="true">
<path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path34752-6" />
</marker>
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-38.921551,-41.961155)">
<rect
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none"
id="rect846"
width="77.212677"
height="40.499405"
x="39.330276"
y="61.168674" />
<text
xml:space="preserve"
transform="scale(0.26458333)"
id="text3928"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect3930);fill:#000000;fill-opacity:1;stroke:none" />
<rect
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none"
id="rect846-3"
width="31.886179"
height="13.072078"
x="39.171551"
y="42.211155" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:3.52778px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="47.24173"
y="49.892689"
id="text25740"><tspan
sodipodi:role="line"
id="tspan25738"
style="font-size:3.52778px;stroke-width:0.264583"
x="47.24173"
y="49.892689">SIMD 0/1</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:3.52778px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="92.864143"
y="49.892689"
id="text25740-7"><tspan
sodipodi:role="line"
id="tspan25738-5"
style="font-size:3.52778px;stroke-width:0.264583"
x="92.864143"
y="49.892689">SIMD 2/3</tspan></text>
<rect
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none"
id="rect846-3-3"
width="31.886179"
height="13.072078"
x="84.815498"
y="42.211155" />
<path
style="fill:none;stroke:#000000;stroke-width:0.239054px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker35115);marker-end:url(#Arrow2Mend)"
d="m 55.11464,55.888713 v 4.575516"
id="path35236" />
<path
style="fill:none;stroke:#000000;stroke-width:0.239437px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker35115);marker-end:url(#Arrow2Mend)"
d="m 100.75859,55.863706 v 4.584345"
id="path35236-2" />
<g
id="g91757"
transform="translate(0.09337305,-1.490623)">
<rect
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none"
id="rect846-3-9"
width="57.741043"
height="6.0837841"
x="49.066093"
y="64.83651" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:3.52778px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="62.166679"
y="69.054901"
id="text43239"><tspan
sodipodi:role="line"
id="tspan43237"
style="font-size:3.52778px;stroke-width:0.264583"
x="62.166679"
y="69.054901">Conflict Detection</tspan></text>
</g>
<g
id="g94249">
<rect
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none"
id="rect846-3-9-7"
width="57.741043"
height="6.0837841"
x="49.159466"
y="69.429672" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:3.52778px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="69.083069"
y="73.648064"
id="text43239-9"><tspan
sodipodi:role="line"
id="tspan43237-2"
style="font-size:3.52778px;stroke-width:0.264583"
x="69.083069"
y="73.648064">Scheduler</tspan></text>
</g>
<g
id="g75031">
<rect
style="fill:none;stroke:#000000;stroke-width:0.499999;stroke-miterlimit:4;stroke-dasharray:none"
id="rect53227"
width="10.155521"
height="20.193951"
x="41.817165"
y="78.846886" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:3.52778px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="-95.113167"
y="48.210091"
id="text58467"
transform="rotate(-90)"><tspan
sodipodi:role="line"
id="tspan58465"
style="font-size:3.52778px;stroke-width:0.264583"
x="-95.113167"
y="48.210091">Bank 0</tspan></text>
</g>
<g
id="g75036"
transform="translate(-0.28890355,0.10812378)">
<rect
style="fill:none;stroke:#000000;stroke-width:0.499999;stroke-miterlimit:4;stroke-dasharray:none"
id="rect53227-1"
width="10.155521"
height="20.193951"
x="55.210358"
y="78.738762" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:3.52778px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="-95.005043"
y="61.603283"
id="text58467-2"
transform="rotate(-90)"><tspan
sodipodi:role="line"
id="tspan58465-7"
style="font-size:3.52778px;stroke-width:0.264583"
x="-95.005043"
y="61.603283">Bank 1</tspan></text>
</g>
<g
id="g75041"
transform="translate(-0.42640324,0.12826538)">
<rect
style="fill:none;stroke:#000000;stroke-width:0.499999;stroke-miterlimit:4;stroke-dasharray:none"
id="rect53227-0"
width="10.155521"
height="20.193951"
x="68.452148"
y="78.71862" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:3.52778px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="-94.984901"
y="74.845078"
id="text58467-9"
transform="rotate(-90)"><tspan
sodipodi:role="line"
id="tspan58465-3"
style="font-size:3.52778px;stroke-width:0.264583"
x="-94.984901"
y="74.845078">Bank 2</tspan></text>
</g>
<g
id="g75046"
transform="translate(0,-0.36049652)">
<rect
style="fill:none;stroke:#000000;stroke-width:0.499999;stroke-miterlimit:4;stroke-dasharray:none"
id="rect53227-6"
width="10.155521"
height="20.193951"
x="81.130043"
y="79.207382" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:3.52778px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="-95.473663"
y="87.522972"
id="text58467-0"
transform="rotate(-90)"><tspan
sodipodi:role="line"
id="tspan58465-6"
style="font-size:3.52778px;stroke-width:0.264583"
x="-95.473663"
y="87.522972">Bank 3</tspan></text>
</g>
<g
id="g75106"
transform="translate(0,0.88236237)">
<rect
style="fill:none;stroke:#000000;stroke-width:0.499999;stroke-miterlimit:4;stroke-dasharray:none"
id="rect53227-2"
width="10.155521"
height="20.193951"
x="103.69362"
y="77.964523" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:3.52778px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="-95.307404"
y="110.08656"
id="text58467-6"
transform="rotate(-90)"><tspan
sodipodi:role="line"
id="tspan58465-1"
style="font-size:3.52778px;stroke-width:0.264583"
x="-95.307404"
y="110.08656">Bank 31</tspan></text>
</g>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:3.52778px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="95.809242"
y="89.162628"
id="text80928"><tspan
sodipodi:role="line"
id="tspan80926"
style="font-size:3.52778px;stroke-width:0.264583"
x="95.809242"
y="89.162628">...</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

File diff suppressed because it is too large. Load diff

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

File diff suppressed because it is too large. Load diff

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

File diff suppressed because it is too large. Load diff

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 662 B

@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="23.89308mm"
height="24.000153mm"
viewBox="0 0 23.89308 24.000153"
version="1.1"
id="svg370"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
sodipodi:docname="nosplit.svg"
inkscape:export-filename="/home/nick/Documents/software_repos/omniperf/src/docs/images/nosplit.png"
inkscape:export-xdpi="180"
inkscape:export-ydpi="180"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview372"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="6.2217172"
inkscape:cx="-18.242552"
inkscape:cy="62.764023"
inkscape:window-width="2490"
inkscape:window-height="1376"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs367" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-30.085626,-76.587497)">
<path
style="fill:none;stroke:#000000;stroke-width:2.52;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 30.085626,88.555587 h 23.89308"
id="path69449-3-1"
inkscape:export-filename="/home/nick/Documents/software_repos/omniperf/src/docs/images/nosplit.png"
inkscape:export-xdpi="180"
inkscape:export-ydpi="180" />
<path
style="fill:none;stroke:#000000;stroke-width:2.52;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 34.808926,76.587497 v 10.78438"
id="path69449-3-1-6"
inkscape:export-filename="/home/nick/Documents/software_repos/omniperf/src/docs/images/nosplit.png"
inkscape:export-xdpi="180"
inkscape:export-ydpi="180" />
<path
style="fill:none;stroke:#000000;stroke-width:2.52;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 48.947196,89.803267 V 100.58765"
id="path69449-3-1-6-7"
inkscape:export-filename="/home/nick/Documents/software_repos/omniperf/src/docs/images/nosplit.png"
inkscape:export-xdpi="180"
inkscape:export-ydpi="180" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 B

@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="23.89308mm"
height="23.893078mm"
viewBox="0 0 23.89308 23.893078"
version="1.1"
id="svg370"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
sodipodi:docname="split.svg"
inkscape:export-filename="/home/nick/Documents/software_repos/omniperf/src/docs/images/split.png"
inkscape:export-xdpi="180"
inkscape:export-ydpi="180"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview372"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="24.886869"
inkscape:cx="30.397556"
inkscape:cy="53.984292"
inkscape:window-width="2490"
inkscape:window-height="1376"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs367" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-30.085626,-76.637833)">
<path
style="fill:none;stroke:#000000;stroke-width:2.52;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 30.085626,88.584373 h 23.89308"
id="path69449-3-1"
inkscape:export-filename="/home/nick/Documents/software_repos/omniperf/src/docs/images/split.png"
inkscape:export-xdpi="180"
inkscape:export-ydpi="180" />
<path
style="fill:none;stroke:#000000;stroke-width:2.52;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 42.032166,76.637833 V 100.53091"
id="path69449-3-1-3"
inkscape:export-filename="/home/nick/Documents/software_repos/omniperf/src/docs/images/split.png"
inkscape:export-xdpi="180"
inkscape:export-ydpi="180" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

@@ -0,0 +1,125 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="27.472563mm"
height="17.499945mm"
viewBox="0 0 27.472563 17.499945"
version="1.1"
id="svg370"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
sodipodi:docname="uncached.svg"
inkscape:export-filename="/home/nick/Documents/software_repos/omniperf/src/docs/images/uncached.png"
inkscape:export-xdpi="180"
inkscape:export-ydpi="180"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview372"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="6.2217172"
inkscape:cx="-18.242552"
inkscape:cy="72.086208"
inkscape:window-width="2490"
inkscape:window-height="1376"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs367">
<marker
style="overflow:visible"
id="TriangleOutS"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="TriangleOutS"
inkscape:isstock="true">
<path
transform="scale(0.2)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 5.77,0 -2.88,5 V -5 Z"
id="path1132" />
</marker>
<marker
style="overflow:visible"
id="marker1262"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow2Mend"
inkscape:isstock="true">
<path
transform="scale(-0.6)"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
id="path1260" />
</marker>
<marker
style="overflow:visible"
id="Arrow2Mend"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow2Mend"
inkscape:isstock="true">
<path
transform="scale(-0.6)"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
id="path1011" />
</marker>
<marker
style="overflow:visible"
id="Arrow1Lend"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend"
inkscape:isstock="true">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path987" />
</marker>
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-30.085626,-74.157956)">
<path
style="fill:none;stroke:#000000;stroke-width:2.52;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.52, 2.52;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#TriangleOutS)"
d="m 30.085626,88.555587 h 23.89308"
id="path69449-3-1"
inkscape:export-filename="/home/nick/Documents/software_repos/omniperf/src/docs/images/nosplit.png"
inkscape:export-xdpi="180"
inkscape:export-ydpi="180" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="37.700855"
y="82.012749"
id="text7915"><tspan
sodipodi:role="line"
id="tspan7913"
style="stroke-width:0.264583"
x="37.700855"
y="82.012749">x2</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

@@ -0,0 +1,17 @@
# Welcome to the [Omniperf](https://github.com/ROCm/omniperf) Documentation!
```eval_rst
.. toctree::
:glob:
:maxdepth: 4
:caption: Table of Contents
introduction
high_level_design
installation
getting_started
profiling
analysis
performance_model
faq
```
@@ -0,0 +1,264 @@
# Deployment
```eval_rst
.. toctree::
:glob:
:maxdepth: 4
```
Omniperf is broken into two installation components:
1. **Omniperf Client-side (_Required_)**
- Provides core application profiling capability
- Allows collection of performance counters, filtering by hardware block, dispatch, kernel, etc
- CLI based analysis mode
- Stand alone web interface for importing analysis metrics
2. **Omniperf Server-side (_Optional_)**
- Mongo DB backend + Grafana instance
- Packaged in a Docker container for easy setup
Determine what you need to install based on how you would like to interact with Omniperf. See the decision tree below to help determine what installation is right for you.
![Omniperf Installation Decision Tree](images/install_decision_tree.png)
---
## Client-side Installation
Omniperf client-side requires the following basic software dependencies prior to usage:
* Python (>=3.8)
* CMake (>= 3.19)
* ROCm (>= 5.7.1)
In addition, Omniperf leverages a number of Python packages that are
documented in the top-level `requirements.txt` file. These must be
installed prior to Omniperf configuration.
```{admonition} Optional packages
If you would like to build Omniperf as a developer, consider these additional requirements:
| Requirement file | Description |
| --------------------- | -------------------------------------------------------------- |
| requirements-doc.txt | Python packages required to build docs from source |
| requirements-test.txt | Python packages required to run Omniperf's CI suite via PyTest |
```
The recommended procedure for Omniperf usage is to install into a shared file system so that multiple users can access the final installation. The following steps illustrate how to install the necessary python dependencies using [pip](https://packaging.python.org/en/latest/) and Omniperf into a shared location controlled by the `INSTALL_DIR` environment variable.
```{admonition} Configuration variables
The following installation example leverages several
[CMake](https://cmake.org/cmake/help/latest/) project variables
defined as follows:
| Variable | Description |
| -------------------- | -------------------------------------------------------------------- |
| CMAKE_INSTALL_PREFIX | controls install path for Omniperf files |
| PYTHON_DEPS | provides optional path to resolve Python package dependencies |
| MOD_INSTALL_PATH | provides optional path for separate Omniperf modulefile installation |
```
A typical install will begin by downloading the latest release tarball
available from the
[Releases](https://github.com/ROCm/omniperf/releases) section
of the Omniperf development site. From there, untar and descend into
the top-level directory as follows:
```shell-session
$ tar xfz omniperf-v{__VERSION__}.tar.gz
$ cd omniperf-v{__VERSION__}
```
Next, install Python dependencies and complete the Omniperf configuration/install process as follows:
```shell-session
# define top-level install path
$ export INSTALL_DIR=<your-top-level-desired-install-path>
# install python deps
$ python3 -m pip install -t ${INSTALL_DIR}/python-libs -r requirements.txt
# configure Omniperf for shared install
$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}/{__VERSION__} \
-DPYTHON_DEPS=${INSTALL_DIR}/python-libs \
-DMOD_INSTALL_PATH=${INSTALL_DIR}/modulefiles ..
# install
$ make install
```
```{tip}
You may require `sudo` during the final install step if you
do not have write access to the chosen install path.
```
After completing these steps, a successful top-level installation directory looks as follows:
```shell-session
$ ls $INSTALL_DIR
modulefiles {__VERSION__} python-libs
```
### Execution using modulefiles
The installation process includes creation of an environment
modulefile for use with [Lmod](https://lmod.readthedocs.io). On
systems that support Lmod, a user can register the Omniperf modulefile
directory and setup their environment for execution of Omniperf as
follows:
```shell-session
$ module use $INSTALL_DIR/modulefiles
$ module load omniperf
$ which omniperf
/opt/apps/omniperf/{__VERSION__}/bin/omniperf
$ omniperf --version
ROC Profiler: /opt/rocm-5.1.0/bin/rocprof
omniperf (v{__VERSION__})
```
```{tip} Users relying on an Lmod Python module locally may wish to
customize the resulting Omniperf modulefile post-installation to
include additional module dependencies.
```
### Execution without modulefiles
To use Omniperf without the companion modulefile, update your `PATH`
settings to enable access to the command-line binary. If you installed Python
dependencies in a shared location, update your `PYTHONPATH` config as well:
```shell-session
export PATH=$INSTALL_DIR/{__VERSION__}/bin:$PATH
export PYTHONPATH=$INSTALL_DIR/python-libs
```
### rocProf
Omniperf relies on a rocProf binary during the profiling
process. Normally the path to this binary will be detected
automatically, but it can also be overridden via the setting the
optional `ROCPROF` environment variable to the path of the binary the user
wishes to use instead.
%%% ### Generate Packaging
%%% ```console
%%% cd build
%%% cpack -G STGZ
%%% cpack -G DEB -D CPACK_PACKAGING_INSTALL_PREFIX=/opt/omniperf
%%% cpack -G RPM -D CPACK_PACKAGING_INSTALL_PREFIX=/opt/omniperf
%%% ```
---
## Server-side Setup
```{note}
Server-side setup is **not required** to profile or analyze performance data from the CLI. It is provided as an additional mechanism to import performance data for examination within a detailed [Grafana](https://github.com/grafana/grafana) GUI.
```
Omniperf server-side requires the following basic software dependencies prior to usage:
* [Docker Engine](https://docs.docker.com/engine/install/)
The recommended process for enabling the server-side of Omniperf is to use the provided Docker file to build the Grafana and MongoDB instance.
Once you have decided which machine you would like to use to host the Grafana and MongoDB instance, please follow the set-up instructions below.
### Install MongoDB Utils
Omniperf uses [mongoimport](https://www.mongodb.com/docs/database-tools/mongoimport/) to upload data to Grafana's backend database. Install for Ubuntu 20.04 is as follows:
```bash
$ wget https://fastdl.mongodb.org/tools/db/mongodb-database-tools-ubuntu2004-x86_64-100.6.1.deb
$ sudo apt install ./mongodb-database-tools-ubuntu2004-x86_64-100.6.1.deb
```
> Installation instructions for alternative distributions can be found [here](https://www.mongodb.com/download-center/database-tools/releases/archive)
### Persistent Storage
The user will also bind MongoDB to a directory on the host OS to create a local backup in case of a crash or reset. In the Docker world, this is known as "creating a persistent volume":
```bash
$ sudo mkdir -p /usr/local/persist && cd /usr/local/persist/
$ sudo mkdir -p grafana-storage mongodb
$ sudo docker volume create --driver local --opt type=none --opt device=/usr/local/persist/grafana-storage --opt o=bind grafana-storage
$ sudo docker volume create --driver local --opt type=none --opt device=/usr/local/persist/mongodb --opt o=bind grafana-mongo-db
```
### Build and Launch
We are now ready to build our Docker file. Navigate to your Omniperf install directory to begin.
```bash
$ sudo docker-compose build
$ sudo docker-compose up -d
```
> TCP ports for Grafana (4000) and MongoDB (27017) in the docker container are mapped to 14000 and 27018, respectively, on the host side.
```{tip}
In the event that your Grafana or MongoDB instance crash fatally, you can always restart the server. Just navigate to your install directory and run:
```
```bash
$ sudo docker-compose down
$ sudo docker-compose up -d
```
### Setup Grafana Instance
Once you have launched your docker container you should be able to reach Grafana at **http://\<host-ip>:14000**. The default login credentials for the first-time Grafana setup are:
- Username: **admin**
- Password: **admin**
![Grafana Welcome Page](images/grafana_welcome.png)
### MongoDB Datasource Configuration
The MongoDB Datasource must be configured prior to the first-time use. Navigate to Grafana's Configuration page (shown below) to add the **Omniperf Data** connection.
![Omniperf Datasource Config](images/datasource_config.jpg)
Configure the following fields in the datasource settings:
- __HTTP URL__: set to `http://localhost:3333`
- __MongoDB URL__: set to `mongodb://temp:temp123@\<host-ip>:27018/admin?authSource=admin`
- __Database Name__: set to `admin`
After properly configuring these fields click **Save & Test** (as shown below) to make sure your connection is successful.
> Note to avoid potential DNS issue, one may need to use the actual IP address for the host node in the MongoDB URL.
![Datasource Settings](images/datasource_settings.jpg)
### Omniperf Dashboard Import
From *Create* → *Import*, (as shown below) upload the dashboard file, `/dashboards/Omniperf_v{__VERSION__}_pub.json`, from the Omniperf tarball.
Edit both the Dashboard Name and the Unique Identifier (UID) to uniquely identify the dashboard he/she will use. Click Import to finish the process.
![Import Dashboard](images/import_dashboard.png)
### Using your dashboard
Once you have imported a dashboard you are ready to begin! Start by browsing available dashboards and selecting the dashboard you have just imported.
![Opening your dashboard](images/opening_dashboard.png)
Remember, you will need to upload workload data to the DB backend before analyzing in your Grafana interface. We provide a detailed example of this in our [Analysis section](./analysis.md#grafana-gui-import).
After a workload has been successfully uploaded, you should be able to select it from the workload dropdown located at the top of your Grafana dashboard.
![Selecting Grafana workload](images/grafana_workload_selection.png)
For more information on how to use the Grafana interface for analysis please see the [Grafana section](./analysis.md#grafana-based-gui) in the Analyze Mode tab.
@@ -0,0 +1,61 @@
# Introduction
```eval_rst
.. toctree::
:glob:
:maxdepth: 4
```
This documentation was created to provide a detailed breakdown of all facets of Omniperf. In addition to a full deployment guide with installation instructions, we also explain the design of the tool and each of its components. If you are new to Omniperf, these chapters can be followed in order to gradually acquaint you with the tool and progressively introduce its more advanced features.
This project is proudly open source, and we welcome all feedback! For more details on how to contribute, please see our Contribution Guide.
[Browse Omniperf source code on Github](https://github.com/ROCm/omniperf)
## What is Omniperf
Omniperf is a kernel level profiling tool for Machine Learning/HPC workloads running on AMD Instinct (tm) MI accelerators. AMD's Instinct (tm) MI accelerators are Data Center GPUs designed for compute and with some graphics functions disabled or removed. Omniperf is currently built on top of [rocProf](https://rocm.docs.amd.com/projects/rocprofiler/en/latest/rocprof.html) to monitor hardware performance counters. The Omniperf tool primarily targets accelerators in the MI100, MI200, and MI300 families. Development is in progress to support Radeon (tm) RDNA (tm) GPUs.
## Features
The Omniperf tool performs profiling based on all available hardware counters for the target accelerator. It provides high level performance analysis features including System Speed-of-Light, Hardware block level Speed-of-Light, Memory Chart Analysis, Roofline Analysis, Baseline Comparisons, and more...
Both command line analysis and GUI analysis are supported.
Detailed Feature List:
- MI100 support
- MI200 support
- Standalone GUI Analyzer
- Grafana/MongoDB GUI Analyzer
- Dispatch Filtering
- Kernel Filtering
- GPU ID Filtering
- Baseline Comparison
- Multi-Normalizations
- System Info Panel
- System Speed-of-Light Panel
- Kernel Statistic Panel
- Memory Chart Analysis Panel
- Roofline Analysis Panel (_Supported on MI200 only, Ubuntu 20.04, SLES 15 SP3 or RHEL8_)
- Command Processor (CP) Panel
- Workgroup Manager (SPI) Panel
- Wavefront Launch Panel
- Compute Unit - Instruction Mix Panel
- Compute Unit - Pipeline Panel
- Local Data Share (LDS) Panel
- Instruction Cache Panel
- Scalar L1D Cache Panel
- L1 Address Processing Unit, a.k.a. Texture Addresser (TA) / L1 Backend Data Processing Unit, a.k.a. Texture Data (TD) panel(s)
- Vector L1D Cache Panel
- L2 Cache Panel
- L2 Cache (per-Channel) Panel
## Compatible SoCs
| Platform | Status |
| :---------------- | :--------- |
| Vega 20 (MI50/60) | No support |
| MI100 | Supported |
| MI200 | Supported |
| MI300 | Supported |
@@ -0,0 +1,35 @@
@ECHO OFF
pushd %~dp0
REM Command file for Sphinx documentation
if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set SOURCEDIR=.
set BUILDDIR=_build
if "%1" == "" goto help
%SPHINXBUILD% >NUL 2>NUL
if errorlevel 9009 (
echo.
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point
echo.to the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.http://sphinx-doc.org/
exit /b 1
)
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
goto end
:help
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
:end
popd
File diff suppressed because it is too large. Load diff
Loaded 100 of 175 files, more files were not shown because too many files have changed in this diff. Show more