Add ROCm 7.9.0 documentation

Add release notes

Add install instructions

Add PyTorch + ComfyUI instructions

Add custom selector directives

Add JS and CSS for selector

Add custom icon directive and utils

Clean up conf.py
This commit is contained in:
Peter Park
2025-10-13 03:48:15 -04:00
parent 78258e0f85
commit a32210fa7e
56 changed files with 4266 additions and 1259 deletions

1263
RELEASE.md

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,5 @@
**************************************
Deep learning frameworks compatibility
**************************************
Basdflkj; jaksldf;jkasl;d jkl;fdksalsdfhguieqwrasdf .asdf

View File

@@ -9,21 +9,40 @@ import shutil
import sys
from pathlib import Path
gh_release_path = os.path.join("..", "RELEASE.md")
gh_changelog_path = os.path.join("..", "CHANGELOG.md")
sphinx_release_path = os.path.join("about", "release-notes.md")
sphinx_changelog_path = os.path.join("release", "changelog.md")
shutil.copy2(gh_release_path, sphinx_release_path)
shutil.copy2(gh_changelog_path, sphinx_changelog_path)
ROCM_VERSION = "7.9.0"
GA_DATE = "2025-10-20"
DOCS_DIR = Path(__file__).parent.resolve()
ROOT_DIR = DOCS_DIR.parent
def copy_rtd_file(src_path: Path, dest_path: Path):
dest_path.parent.mkdir(parents=True, exist_ok=True)
shutil.copy2(src_path, dest_path)
print(f"📁 Copied {src_path}{dest_path}")
compat_matrix_src = DOCS_DIR / "compatibility" / "compatibility-matrix-historical-6.0.csv" # fmt: skip
compat_matrix_dest = ROOT_DIR / "_readthedocs" / "html" / "downloads" / "compatibility-matrix-historical-6.0.csv" # fmt: skip
copy_rtd_file(compat_matrix_src, compat_matrix_dest)
gh_release_path = ROOT_DIR / "RELEASE.md"
rtd_release_path = DOCS_DIR / "about" / "release-notes.md"
copy_rtd_file(gh_release_path, rtd_release_path)
gh_changelog_path = ROOT_DIR / "CHANGELOG.md"
rtd_changelog_path = DOCS_DIR / "release" / "changelog.md"
copy_rtd_file(gh_changelog_path, rtd_changelog_path)
# Mark the consolidated changelog as orphan to prevent Sphinx from warning about missing toctree entries
with open(sphinx_changelog_path, "r+", encoding="utf-8") as file:
with open(rtd_changelog_path, "r+", encoding="utf-8") as file:
content = file.read()
file.seek(0)
file.write(":orphan:\n" + content)
# Replace GitHub-style [!ADMONITION]s with Sphinx-compatible ```{admonition} blocks
with open(sphinx_changelog_path, "r", encoding="utf-8") as file:
with open(rtd_changelog_path, "r", encoding="utf-8") as file:
lines = file.readlines()
modified_lines = []
@@ -31,37 +50,37 @@ with open(sphinx_changelog_path, "r", encoding="utf-8") as file:
# Map for matching the specific admonition type to its corresponding Sphinx markdown syntax
admonition_types = {
'> [!NOTE]': '```{note}',
'> [!TIP]': '```{tip}',
'> [!IMPORTANT]': '```{important}',
'> [!WARNING]': '```{warning}',
'> [!CAUTION]': '```{caution}'
"> [!NOTE]": "```{note}",
"> [!TIP]": "```{tip}",
"> [!IMPORTANT]": "```{important}",
"> [!WARNING]": "```{warning}",
"> [!CAUTION]": "```{caution}",
}
for line in lines:
if any(line.startswith(k) for k in admonition_types):
for key in admonition_types:
if(line.startswith(key)):
modified_lines.append(admonition_types[key] + '\n')
if line.startswith(key):
modified_lines.append(admonition_types[key] + "\n")
break
in_admonition_section = True
elif in_admonition_section:
if line.strip() == '':
if line.strip() == "":
# If we encounter an empty line, close the admonition section
modified_lines.append('```\n\n') # Close the admonition block
modified_lines.append("```\n\n") # Close the admonition block
in_admonition_section = False
else:
modified_lines.append(line.lstrip('> '))
modified_lines.append(line.lstrip("> "))
else:
modified_lines.append(line)
# In case the file ended while still in a admonition section, close it
if in_admonition_section:
modified_lines.append('```')
modified_lines.append("```")
file.close()
with open(sphinx_changelog_path, "w", encoding="utf-8") as file:
with open(rtd_changelog_path, "w", encoding="utf-8") as file:
file.writelines(modified_lines)
matrix_path = os.path.join("compatibility", "compatibility-matrix-historical-6.0.csv")
@@ -81,163 +100,93 @@ latex_elements = {
html_baseurl = os.environ.get("READTHEDOCS_CANONICAL_URL", "rocm.docs.amd.com")
html_context = {}
if os.environ.get("READTHEDOCS", "") == "True":
html_context["READTHEDOCS"] = True
# configurations for PDF output by Read the Docs
project = "ROCm Documentation"
project_path = os.path.abspath(".").replace("\\", "/")
project_path = str(DOCS_DIR).replace("\\", "/")
author = "Advanced Micro Devices, Inc."
copyright = "Copyright (c) 2025 Advanced Micro Devices, Inc. All rights reserved."
version = "7.0.2"
release = "7.0.2"
copyright = "Copyright (c) %Y Advanced Micro Devices, Inc. All rights reserved."
version = ROCM_VERSION
release = ROCM_VERSION
setting_all_article_info = True
all_article_info_os = ["linux", "windows"]
all_article_info_author = ""
# pages with specific settings
article_pages = [
{"file": "about/release-notes", "os": ["linux"], "date": "2025-10-10"},
{"file": "release/changelog", "os": ["linux"],},
{"file": "compatibility/compatibility-matrix", "os": ["linux"]},
{"file": "compatibility/ml-compatibility/pytorch-compatibility", "os": ["linux"]},
{"file": "compatibility/ml-compatibility/tensorflow-compatibility", "os": ["linux"]},
{"file": "compatibility/ml-compatibility/jax-compatibility", "os": ["linux"]},
{"file": "compatibility/ml-compatibility/verl-compatibility", "os": ["linux"]},
{"file": "compatibility/ml-compatibility/stanford-megatron-lm-compatibility", "os": ["linux"]},
{"file": "compatibility/ml-compatibility/dgl-compatibility", "os": ["linux"]},
{"file": "compatibility/ml-compatibility/megablocks-compatibility", "os": ["linux"]},
{"file": "compatibility/ml-compatibility/taichi-compatibility", "os": ["linux"]},
{"file": "compatibility/ml-compatibility/ray-compatibility", "os": ["linux"]},
{"file": "compatibility/ml-compatibility/llama-cpp-compatibility", "os": ["linux"]},
{"file": "compatibility/ml-compatibility/flashinfer-compatibility", "os": ["linux"]},
{"file": "how-to/deep-learning-rocm", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/index", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/install", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/system-setup/index", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/system-setup/multi-node-setup", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/system-setup/prerequisite-system-validation", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/system-setup/system-health-check", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/index", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/train-a-model", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/prerequisite-system-validation", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/scale-model-training", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/megatron-lm", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/previous-versions/megatron-lm-history", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/previous-versions/megatron-lm-v24.12-dev", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/previous-versions/megatron-lm-v25.3", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/previous-versions/megatron-lm-v25.4", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/previous-versions/megatron-lm-v25.5", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/previous-versions/megatron-lm-v25.6", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/previous-versions/megatron-lm-v25.7", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/previous-versions/megatron-lm-primus-migration-guide", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/previous-versions/primus-megatron-v25.7", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/primus-megatron", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/pytorch-training", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/previous-versions/pytorch-training-history", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/previous-versions/pytorch-training-v25.3", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/previous-versions/pytorch-training-v25.4", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/previous-versions/pytorch-training-v25.5", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/previous-versions/pytorch-training-v25.6", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/previous-versions/pytorch-training-v25.7", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/primus-pytorch", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/pytorch-training", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/jax-maxtext", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/previous-versions/jax-maxtext-history", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/previous-versions/jax-maxtext-v25.4", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/previous-versions/jax-maxtext-v25.5", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/training/benchmark-docker/mpt-llm-foundry", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/fine-tuning/index", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/fine-tuning/overview", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/fine-tuning/fine-tuning-and-inference", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/fine-tuning/single-gpu-fine-tuning-and-inference", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/fine-tuning/multi-gpu-fine-tuning-and-inference", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference/index", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference/hugging-face-models", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference/llm-inference-frameworks", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference/benchmark-docker/vllm", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference/benchmark-docker/previous-versions/vllm-history", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference/benchmark-docker/previous-versions/vllm-0.4.3", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference/benchmark-docker/previous-versions/vllm-0.6.4", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference/benchmark-docker/previous-versions/vllm-0.6.6", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference/benchmark-docker/previous-versions/vllm-0.7.3-20250325", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference/benchmark-docker/previous-versions/vllm-0.8.3-20250415", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference/benchmark-docker/previous-versions/vllm-0.8.5-20250513", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference/benchmark-docker/previous-versions/vllm-0.8.5-20250521", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference/benchmark-docker/previous-versions/vllm-0.9.0.1-20250605", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference/benchmark-docker/previous-versions/vllm-0.9.0.1-20250702", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference/benchmark-docker/previous-versions/vllm-0.9.1-20250702", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference/benchmark-docker/previous-versions/vllm-0.9.1-20250715", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference/benchmark-docker/previous-versions/vllm-0.10.0-20250812", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference/benchmark-docker/previous-versions/sglang-history", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference/benchmark-docker/pytorch-inference", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference/deploy-your-model", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference-optimization/index", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference-optimization/model-quantization", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference-optimization/model-acceleration-libraries", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference-optimization/optimizing-with-composable-kernel", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference-optimization/optimizing-triton-kernel", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference-optimization/profiling-and-debugging", "os": ["linux"]},
{"file": "how-to/rocm-for-ai/inference-optimization/workload", "os": ["linux"]},
{"file": "how-to/system-optimization/index", "os": ["linux"]},
{"file": "how-to/system-optimization/mi300x", "os": ["linux"]},
{"file": "how-to/system-optimization/mi200", "os": ["linux"]},
{"file": "how-to/system-optimization/mi100", "os": ["linux"]},
{"file": "how-to/system-optimization/w6000-v620", "os": ["linux"]},
{"file": "how-to/tuning-guides/mi300x/index", "os": ["linux"]},
{"file": "how-to/tuning-guides/mi300x/system", "os": ["linux"]},
{"file": "how-to/tuning-guides/mi300x/workload", "os": ["linux"]},
{"file": "how-to/system-debugging", "os": ["linux"]},
{"file": "how-to/gpu-enabled-mpi", "os": ["linux"]},
{"file": "about/release-notes", "date": GA_DATE},
]
external_toc_path = "./sphinx/_toc.yml"
# Add the _extensions directory to Python's search path
sys.path.append(str(Path(__file__).parent / 'extension'))
extensions = ["rocm_docs", "sphinx_reredirects", "sphinx_sitemap", "sphinxcontrib.datatemplates", "version-ref", "csv-to-list-table"]
compatibility_matrix_file = str(Path(__file__).parent / 'compatibility/compatibility-matrix-historical-6.0.csv')
external_projects_current_project = "rocm"
# Uncomment if facing rate limit exceed issue with local build
# external_projects_remote_repository = ""
html_baseurl = os.environ.get("READTHEDOCS_CANONICAL_URL", "https://rocm-stg.amd.com/")
html_context = {}
if os.environ.get("READTHEDOCS", "") == "True":
html_context["READTHEDOCS"] = True
html_theme = "rocm_docs_theme"
html_theme_options = {"flavor": "rocm-docs-home"}
# Register Sphinx extensions and static assets
sys.path.append(str(DOCS_DIR / "extension"))
html_static_path = ["sphinx/static/css", "extension/how-to/rocm-for-ai/inference"]
html_css_files = ["rocm_custom.css", "rocm_rn.css", "vllm-benchmark.css"]
html_js_files = ["vllm-benchmark.js"]
html_css_files = [
"rocm_custom.css",
"rocm_rn.css",
# "dynamic_picker.css",
# "vllm-benchmark.css",
]
templates_path = ["extension/rocm_docs_custom/templates", "extension/templates"]
html_title = "ROCm Documentation"
extensions = [
"rocm_docs",
"rocm_docs_custom.selector",
"rocm_docs_custom.table",
"rocm_docs_custom.icon",
"sphinx_reredirects",
"sphinx_sitemap",
"sphinxcontrib.datatemplates",
"version-ref",
"csv-to-list-table",
]
html_theme_options = {"link_main_doc": False}
compatibility_matrix_file = str(
DOCS_DIR / "compatibility/compatibility-matrix-historical-6.0.csv"
)
redirects = {"reference/openmp/openmp": "../../about/compatibility/openmp.html"}
external_projects_current_project = "rocm"
html_theme = "rocm_docs_theme"
html_theme_options = {
"flavor": "rocm-docs-home",
"link_main_doc": False,
"secondary_sidebar_items": {
"**": ["page-toc"],
"install/rocm": ["selector-toc2"],
"install/compatibility-matrix": ["selector-toc2"],
}
}
html_title = f"AMD ROCm {ROCM_VERSION}"
numfig = False
suppress_warnings = ["autosectionlabel.*"]
html_baseurl = os.environ.get("READTHEDOCS_CANONICAL_URL", "https://rocm-stg.amd.com/")
html_context = {
"project_path" : {project_path},
"gpu_type" : [('AMD Instinct accelerators', 'intrinsic'), ('AMD gfx families', 'gfx'), ('NVIDIA families', 'nvidia') ],
"atomics_type" : [('HW atomics', 'hw-atomics'), ('CAS emulation', 'cas-atomics')],
"pcie_type" : [('No PCIe atomics', 'nopcie'), ('PCIe atomics', 'pcie')],
"memory_type" : [('Device DRAM', 'device-dram'), ('Migratable Host DRAM', 'migratable-host-dram'), ('Pinned Host DRAM', 'pinned-host-dram')],
"granularity_type" : [('Coarse-grained', 'coarse-grained'), ('Fine-grained', 'fine-grained')],
"scope_type" : [('Device', 'device'), ('System', 'system')]
"project_path": {project_path},
"gpu_type": [
("AMD Instinct accelerators", "intrinsic"),
("AMD gfx families", "gfx"),
("NVIDIA families", "nvidia"),
],
"atomics_type": [("HW atomics", "hw-atomics"), ("CAS emulation", "cas-atomics")],
"pcie_type": [("No PCIe atomics", "nopcie"), ("PCIe atomics", "pcie")],
"memory_type": [
("Device DRAM", "device-dram"),
("Migratable Host DRAM", "migratable-host-dram"),
("Pinned Host DRAM", "pinned-host-dram"),
],
"granularity_type": [
("Coarse-grained", "coarse-grained"),
("Fine-grained", "fine-grained"),
],
"scope_type": [("Device", "device"), ("System", "system")],
}
if os.environ.get("READTHEDOCS", "") == "True":
html_context["READTHEDOCS"] = True
# temporary settings to speed up docs build for faster iteration
external_projects_remote_repository = ""
external_toc_exclude_missing = True

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
docs/data/comfyui.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 586 KiB

BIN
docs/data/rocm-ontology.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

BIN
docs/data/rocm-sdk-arch.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View File

@@ -0,0 +1,25 @@
from docutils import nodes
def icon_role(name, rawtext, text, lineno, inliner, options=None, content=None):
"""
Inline role for Font Awesome icons. See
https://fontawesome.com/search?ip=brands&o=r to find available icons.
Example rST usage:
:icon:`fa-brands fa-redhat fa-lg`
Example MyST Markdown usage:
{icon}`fa-brands fa-redhat fa-lg`
"""
html = f'<i class="{text}"></i>'
node = nodes.raw("", html, format="html")
return [node], []
def setup(app):
app.add_role("icon", icon_role)
return {"version": "6.9", "parallel_read_safe": True}

View File

@@ -0,0 +1,277 @@
from sphinx.util.docutils import SphinxDirective, directives, nodes
from pathlib import Path
from .utils import kv_to_data_attr, normalize_key
import random
import string
class SelectorGroup(nodes.General, nodes.Element):
"""
A row within a selector container.
rST usage:
.. selector-group:: Heading
:key:
:show-when: os=ubuntu (list of key=value pairs separated by spaces)
:heading-width: 4 (defaults to 6)
"""
@staticmethod
def visit_html(translator, node):
label = node["label"]
key = node["key"]
show_when_attr = kv_to_data_attr("show-when", node["show-when"])
heading_width = node["heading-width"]
icon = node["icon"]
icon_html = ""
if icon:
icon_html = f'<i class="rocm-docs-selector-icon {icon}"></i>'
translator.body.append(
"<!-- start selector-group row -->"
f"""
<div id="{nodes.make_id(label)}" class="rocm-docs-selector-group row gx-0 pt-2"
data-selector-key="{key}"
{show_when_attr}
role="radiogroup"
aria-label="{label}"
>
<div class="col-{heading_width} me-1 px-2 rocm-docs-selector-group-heading">
<span class="rocm-docs-selector-group-heading-text">{label}{icon_html}</span>
</div>
<div class="row col-{12 - heading_width} pe-0">
""".strip()
)
@staticmethod
def depart_html(translator, _):
translator.body.append(
"""
</div>
</div>
"""
"<!-- end selector-group row -->"
)
class SelectorGroupDirective(SphinxDirective):
required_arguments = 1 # tile text
final_argument_whitespace = True
has_content = True
option_spec = {
"key": directives.unchanged,
"show-when": directives.unchanged,
"heading-width": directives.nonnegative_int,
"icon": directives.unchanged,
}
def run(self):
label = self.arguments[0]
node = SelectorGroup()
node["label"] = label
node["key"] = normalize_key(self.options.get("key", label))
node["show-when"] = self.options.get("show-when", "")
node["heading-width"] = self.options.get("heading-width", 3)
node["icon"] = self.options.get("icon")
# Parse nested content
self.state.nested_parse(self.content, self.content_offset, node)
# Find all SelectorOption descendants
option_nodes = list(node.findall(SelectorOption))
if option_nodes:
# Set the group key on all options
for opt in option_nodes:
opt["group_key"] = node["key"]
# Find all options marked as default
default_options = [opt for opt in option_nodes if opt["default"]]
if default_options:
# Multiple options marked :default: - only keep first as default
for i, opt in enumerate(default_options):
if i > 0:
opt["default"] = False
else:
# No explicit default - make first option default
option_nodes[0]["default"] = True
return [node]
class SelectorOption(nodes.General, nodes.Element):
"""
A selectable tile within a selector group.
rST usage:
.. selector-option::
"""
@staticmethod
def visit_html(translator, node):
value = node["value"]
disable_when_attr = kv_to_data_attr("disable-when", node["disable-when"])
default = node["default"]
width = node["width"]
group_key = node.get("group_key", "")
default_class = "rocm-docs-selector-option-default" if default else ""
translator.body.append(
"<!-- start selector-option tile -->"
f"""
<div class="rocm-docs-selector-option {default_class} col-{width} px-2"
data-selector-key="{group_key}"
data-selector-value="{value}"
{disable_when_attr}
tabindex="0"
role="radio"
aria-checked="false"
>
""".strip()
)
@staticmethod
def depart_html(translator, node):
icon = node["icon"]
if icon:
translator.body.append(f'<i class="rocm-docs-selector-icon {icon}"></i>')
translator.body.append("</div>" "<!-- end selector-option tile -->")
class SelectorOptionDirective(SphinxDirective):
required_arguments = 1 # text of tile
final_argument_whitespace = True
option_spec = {
"value": directives.unchanged,
"disable-when": directives.unchanged,
"default": directives.flag,
"width": directives.nonnegative_int,
"icon": directives.unchanged,
}
has_content = True
def run(self):
label = self.arguments[0]
node = SelectorOption()
node["label"] = label
node["value"] = normalize_key(self.options.get("value", label))
# node["show-when"] = self.options.get("show-when", "")
node["disable-when"] = self.options.get("disable-when", "")
node["default"] = self.options.get("default", False) is not False
node["width"] = self.options.get("width", 6)
node["icon"] = self.options.get("icon")
# Content replaces label if provided
if self.content:
self.state.nested_parse(self.content, self.content_offset, node)
else:
node += nodes.Text(label)
return [node]
class SelectedContent(nodes.General, nodes.Element):
"""
A container to hold conditional content.
rST usage::
.. selected-content:: os=ubuntu
:heading: Ubuntu Notes
"""
@staticmethod
def visit_html(translator, node):
show_when_attr = kv_to_data_attr("show-when", node["show-when"])
classes = " ".join(node.get("class", []))
heading = node.get("heading", "")
heading_level = node.get("heading-level") or (SelectedContent._get_depth(node) + 1)
heading_level = min(heading_level, 6)
heading_elem = ""
if heading:
# HACK to fix secondary sidebar observer
suffix = "".join(random.choices(string.ascii_lowercase + string.digits, k=3))
id_attr = nodes.make_id(f"{heading}-{suffix}")
heading_elem = (
f'<h{heading_level} id="{id_attr}" class="rocm-docs-custom-heading">'
f'{heading}<a class="headerlink" href="#{id_attr}" title="Link to this heading">#</a>'
f'</h{heading_level}>'
)
translator.body.append(
f"""
<!-- start selected-content -->
<div class="rocm-docs-selected-content {classes}" {show_when_attr} aria-hidden="true">
{heading_elem}
""".strip()
)
@staticmethod
def depart_html(translator, _):
translator.body.append("</div><!-- end selected-content -->")
@staticmethod
def _get_depth(node):
depth = 1
parent = node.parent
while parent is not None:
if isinstance(parent, SelectedContent) and parent.get("heading"):
depth += 1
parent = getattr(parent, "parent", None)
return depth
class SelectedContentDirective(SphinxDirective):
required_arguments = 1 # condition (e.g., os=ubuntu)
final_argument_whitespace = True
has_content = True
option_spec = {
"id": directives.unchanged,
"class": directives.unchanged,
"heading": directives.unchanged,
"heading-level": directives.nonnegative_int,
}
def run(self):
node = SelectedContent()
node["show-when"] = self.arguments[0]
node["id"] = self.options.get("id", "")
node["class"] = self.options.get("class", "")
node["heading"] = self.options.get("heading", "") # empty string if none
node["heading-level"] = self.options.get("heading-level", None)
# Parse nested content
self.state.nested_parse(self.content, self.content_offset, node)
return [node]
def setup(app):
app.add_node(
SelectorGroup,
html=(SelectorGroup.visit_html, SelectorGroup.depart_html),
)
app.add_node(
SelectorOption,
html=(SelectorOption.visit_html, SelectorOption.depart_html),
)
app.add_node(
SelectedContent,
html=(SelectedContent.visit_html, SelectedContent.depart_html),
)
app.add_directive("selector", SelectorGroupDirective)
app.add_directive("selector-option", SelectorOptionDirective)
app.add_directive("selected-content", SelectedContentDirective)
app.add_directive("selected", SelectedContentDirective)
static_assets_dir = Path(__file__).parent / "static"
app.config.html_static_path.append(str(static_assets_dir))
app.add_css_file("selector.css")
app.add_js_file("selector.js", type="module", defer="defer")
return {"version": "1.0", "parallel_read_safe": True}

View File

@@ -0,0 +1,103 @@
html {
--rocm-docs-selector-border-radius: 2px;
--rocm-docs-selector-accent-color: var(--pst-color-primary);
--rocm-docs-selector-bg-color: var(--pst-color-on-background);
--rocm-docs-selector-fg-color: var(--pst-color-primary-text);
--rocm-docs-selector-group-heading-bg-color: var(--pst-color-surface);
--rocm-docs-selector-option-hover-color: var(--pst-color-link-hover);
--rocm-docs-selector-option-selected-color: var(--pst-color-primary);
--rocm-docs-selector-tile-padding: 0.2rem;
}
html[data-theme="light"] {
--rocm-docs-selector-border-color: var(--pst-gray-400);
--rocm-docs-selector-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
--rocm-docs-selector-shadow-hover: 0 2px 8px rgba(0, 0, 0, 0.15);
}
html[data-theme="dark"] {
--rocm-docs-selector-border-color: var(--pst-color-border);
--rocm-docs-selector-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
--rocm-docs-selector-shadow-hover: 0 2px 8px rgba(0, 0, 0, 0.4);
}
/* Selector container */
.rocm-docs-selector-container {
padding: 0 0 1rem 0;
}
/* Selector group heading when one of its options is hovered */
.rocm-docs-selector-group:has(.rocm-docs-selector-option:hover)
.rocm-docs-selector-group-heading {
border-right-color: var(--rocm-docs-selector-option-hover-color);
}
/* Selector group heading box */
.rocm-docs-selector-group-heading {
background-color: var(--rocm-docs-selector-group-heading-bg-color);
padding: var(--rocm-docs-selector-tile-padding);
font-weight: 600;
border-right: solid 3px var(--rocm-docs-selector-accent-color);
border-radius: var(--rocm-docs-selector-border-radius);
transition: border-right-color 0.25s ease;
box-shadow: var(--rocm-docs-selector-shadow);
}
/* Selector group heading text */
.rocm-docs-selector-group-heading > span {
display: flex;
justify-content: space-between;
align-items: center;
gap: 0.5rem;
}
/* Selector option */
.rocm-docs-selector-option {
display: flex;
justify-content: space-between;
align-items: center;
gap: 0.5rem;
background-color: var(--rocm-docs-selector-bg-color);
padding: var(--rocm-docs-selector-tile-padding);
border: solid 2px var(--rocm-docs-selector-border-color);
cursor: pointer;
transition: all 0.2 ease;
border-radius: var(--rocm-docs-selector-border-radius);
box-shadow: var(--rocm-docs-selector-shadow);
}
/* Selector option when hovered */
.rocm-docs-selector-option:hover:not(.rocm-docs-disabled) {
background-color: var(--rocm-docs-selector-option-hover-color);
color: var(--rocm-docs-selector-fg-color);
transform: translateY(-2px);
box-shadow: var(--rocm-docs-selector-shadow-hover);
}
.rocm-docs-selector-option:focus:not(.rocm-docs-disabled) {
z-index: 69;
}
/* Selector option when selected */
.rocm-docs-selector-option.rocm-docs-selected {
background-color: var(--rocm-docs-selector-option-selected-color);
color: var(--rocm-docs-selector-fg-color);
}
/* Prevent hover effect on selected */
.rocm-docs-selector-option.rocm-docs-selected:hover {
transform: none;
}
/* Selector option when disabled */
.rocm-docs-selector-option.rocm-docs-disabled {
background-color: var(--rocm-docs-selector-border-color);
color: var(--rocm-docs-selector-fg-color);
cursor: not-allowed;
pointer-events: none;
}
/* Hidden state */
.rocm-docs-hidden {
display: none;
}

View File

@@ -0,0 +1,300 @@
const READY_EVENT = "ROCmDocsSelectorsReady";
const STATE_CHANGE_EVENT = "ROCmDocsSelectorStateChanged";
const GROUP_QUERY = ".rocm-docs-selector-group";
const OPTION_QUERY = ".rocm-docs-selector-option";
const COND_QUERY = "[data-show-when]";
const TOC2_OPTIONS_LIST_QUERY = ".rocm-docs-selector-toc2-options";
const TOC2_CONTENTS_LIST_QUERY = ".rocm-docs-selector-toc2-contents";
const HEADING_QUERY = ".rocm-docs-selected-content h1,h2,h3,h4,h5,h6[id]";
const isDefaultOption = (elem) =>
elem.classList.contains("rocm-docs-selector-option-default");
const DISABLED_CLASS = "rocm-docs-disabled";
const disable = (elem) => {
elem.classList.add(DISABLED_CLASS);
elem.setAttribute("aria-disabled", "true");
elem.setAttribute("tabindex", "-1");
};
// const enable = (elem) => {
// elem.classList.remove(DISABLED_CLASS);
// elem.setAttribute("aria-disabled", "false");
// elem.setAttribute("tabindex", "0");
// };
const HIDDEN_CLASS = "rocm-docs-hidden";
const hide = (elem) => {
elem.classList.add(HIDDEN_CLASS);
elem.setAttribute("aria-hidden", "true");
};
const show = (elem) => {
elem.classList.remove(HIDDEN_CLASS);
elem.setAttribute("aria-hidden", "false");
};
const SELECTED_CLASS = "rocm-docs-selected";
const select = (elem) => {
elem.classList.add(SELECTED_CLASS);
elem.setAttribute("aria-checked", "true");
};
const deselect = (elem) => {
elem.classList.remove(SELECTED_CLASS);
elem.setAttribute("aria-checked", "false");
};
const state = {};
function getState() {
return { ...state };
}
function setState(updates) {
const previousState = getState();
Object.assign(state, updates);
const event = new CustomEvent(STATE_CHANGE_EVENT, {
detail: {
previousState,
currentState: getState(),
changes: updates,
},
});
document.dispatchEvent(event);
}
function validateOptionElem(optionElem) {
const key = optionElem.dataset.selectorKey;
const value = optionElem.dataset.selectorValue;
const errors = [];
if (!key) errors.push("Missing 'data-selector-key'");
if (!value) errors.push("Missing 'data-selector-value'");
if (errors.length === 0) return;
const label = optionElem.textContent.trim() || "<unnamed option>";
console.error(
`[ROCmDocsSelector] Invalid selector option '${label}': ${
errors.join(", ")
}!`,
);
disable(optionElem);
}
function handleOptionSelect(e) {
const option = e.currentTarget;
const parentGroup = option.closest(GROUP_QUERY);
const siblingOptions = parentGroup.querySelectorAll(OPTION_QUERY);
siblingOptions.forEach((elem) => deselect(elem));
select(option);
// Update global state
const key = option.dataset.selectorKey;
const value = option.dataset.selectorValue;
if (key && value) setState({ [key]: value });
updateVisibility();
}
function shouldBeShown(elem) {
const conditionsData = elem.dataset.showWhen;
if (!conditionsData) return true; // Default visible
try {
const conditions = JSON.parse(conditionsData);
// Ensure it's an object
if (typeof conditions !== "object" || Array.isArray(conditions)) {
console.warn(
"[ROCmDocsSelector] Invalid 'show-when' format (must be key/value object):",
conditionsData,
);
return true;
}
for (const [key, value] of Object.entries(conditions)) {
const currentValue = state[key];
if (currentValue === undefined) return false;
if (Array.isArray(value)) {
if (!value.includes(currentValue)) return false;
continue;
}
if (state[key] !== value) {
return false;
}
}
return true;
} catch (err) {
console.error(
"[ROCmDocsSelector] Couldn't parse 'show-when' conditions:",
err,
);
return true;
}
}
function updateTOC2OptionsList() {
const tocOptionsList = document.querySelector(TOC2_OPTIONS_LIST_QUERY);
if (!tocOptionsList) return;
// Clear previous entries
tocOptionsList.innerHTML = "";
// Get only visible selector groups
const groups = Array.from(document.querySelectorAll(GROUP_QUERY)).filter(
(g) => g.offsetParent !== null
);
if (groups.length === 0) {
const li = document.createElement("li");
li.className =
"nav-item toc-entry toc-h3 rocm-docs-selector-toc2-item empty";
const span = document.createElement("span");
span.textContent = "(no visible selectors)";
li.appendChild(span);
tocOptionsList.appendChild(li);
return;
}
groups.forEach((group) => {
// ✅ Find group heading span
const headingSpan = group.querySelector(
".rocm-docs-selector-group-heading-text"
);
const headingText = headingSpan
? headingSpan.textContent.trim()
: "(Unnamed Selector)";
// Find currently selected option
const selectedOption = group.querySelector(`.${SELECTED_CLASS}`);
const optionText = selectedOption
? selectedOption.textContent.trim()
: "(none selected)";
// Build list item
const li = document.createElement("li");
li.className = "nav-item toc-entry toc-h3 rocm-docs-selector-toc2-item";
const link = document.createElement("a");
link.className = "nav-link";
link.href = `#${group.id}`;
link.innerHTML = `<strong>${headingText}</strong>: ${optionText}`;
li.appendChild(link);
tocOptionsList.appendChild(li);
});
}
function updateTOC2ContentsList() {
const tocOptionsList = document.querySelector(TOC2_OPTIONS_LIST_QUERY);
const tocContentsList = document.querySelector(TOC2_CONTENTS_LIST_QUERY);
if (!tocContentsList || !tocOptionsList) return;
const visibleHeaders = [...document.querySelectorAll(HEADING_QUERY)]
.filter((h) => h.offsetParent !== null); // only visible headings
tocContentsList
.querySelectorAll("li.toc-entry.rocm-docs-selector-toc2-item")
.forEach((node) => node.remove());
if (visibleHeaders.length === 0) return;
let lastH2Li = null;
visibleHeaders.forEach((h) => {
const level = parseInt(h.tagName.substring(1), 10);
const li = document.createElement("li");
li.className = `nav-item toc-entry toc-${h.tagName.toLowerCase()} rocm-docs-selector-toc2-item`;
const a = document.createElement("a");
a.className = "reference internal nav-link";
const section = h.closest("section");
const fallbackId = section ? section.id : "";
a.href = h.id ? `#${h.id}` : fallbackId ? `#${fallbackId}` : "#";
a.textContent = h.cloneNode(true).childNodes[0].textContent.trim();
li.appendChild(a);
// Nest logic: h3+ belong to last h2's inner list
if (level === 2) {
tocContentsList.appendChild(li);
lastH2Li = li;
} else if (level === 3 && lastH2Li) {
// ensure nested UL exists
let innerUl = lastH2Li.querySelector("ul");
if (!innerUl) {
innerUl = document.createElement("ul");
innerUl.className = "nav section-nav flex-column";
lastH2Li.appendChild(innerUl);
}
innerUl.appendChild(li);
} else {
tocContentsList.appendChild(li);
}
});
}
function updateVisibility() {
document.querySelectorAll(COND_QUERY).forEach((elem) => {
if (shouldBeShown(elem)) {
show(elem);
} else {
hide(elem);
}
});
updateTOC2OptionsList();
updateTOC2ContentsList();
}
function init() {
const selectorOptions = document.querySelectorAll(OPTION_QUERY);
const initialState = {};
// Attach listeners and gather defaults
selectorOptions.forEach((option) => {
validateOptionElem(option);
option.addEventListener("click", handleOptionSelect);
option.addEventListener("keydown", (e) => {
if (e.key === "Enter" || e.key === " ") {
e.preventDefault();
handleOptionSelect(e);
}
});
if (isDefaultOption(option)) {
select(option);
const { selectorKey: key, selectorValue: value } = option.dataset;
if (key && value) {
initialState[key] = value;
}
}
});
setState(initialState);
updateVisibility();
document.dispatchEvent(new CustomEvent(READY_EVENT));
}
function domReady(callback) {
if (document.readyState !== "loading") {
callback();
} else {
document.addEventListener("DOMContentLoaded", callback, { once: true });
}
}
// window.rocmDocsSelector = {
// setState,
// getState,
// };
// Initialize when DOM is ready
domReady(init);

View File

@@ -0,0 +1,35 @@
html {
--rocm-docs-table-bg-color: var(--pst-color-background);
--rocm-docs-table-head-bg-color: var(--pst-color-surface);
/* --rocm-docs-table-border-radius: 2rem; */
}
html[data-theme="light"] {
--rocm-docs-table-border-color: var(--pst-gray-400);
--rocm-docs-table-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
html[data-theme="dark"] {
--rocm-docs-table-border-color: var(--pst-color-border);
--rocm-docs-table-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}
.rocm-docs-table {
/* border-radius: var(--rocm-docs-table-border-radius); */
box-shadow: var(--rocm-docs-table-shadow);
}
.rocm-docs-table thead th {
position: sticky;
top: 47px; /* 3rem (== 48px) causes a tiny gap */
box-shadow: inset 0 -2px var(--rocm-docs-table-border-color);
}
.rocm-docs-table th {
background-color: var(--rocm-docs-table-head-bg-color);
border: 2px solid var(--rocm-docs-table-border-color);
}
.rocm-docs-table td {
background-color: var(--rocm-docs-table-bg-color);
border: 2px solid var(--rocm-docs-table-border-color) !important;
}

View File

@@ -0,0 +1,9 @@
from sphinx.util.docutils import SphinxDirective, directives, nodes
from pathlib import Path
def setup(app):
static_assets_dir = Path(__file__).parent / "static"
app.config.html_static_path.append(str(static_assets_dir))
app.add_css_file("table.css")
return {"version": "1.0", "parallel_read_safe": True}

View File

@@ -0,0 +1,20 @@
<div class="tocsection onthispage">
<i class="fa-solid fa-filter"></i>
Options
</div>
<nav class="page-toc rocm-docs-selector-toc2">
<ul
class="visible nav section-nav flex-column rocm-docs-selector-toc2-options"
>
</ul>
</nav>
<div class="page-toc tocsection onthispage">
<i class="fa-solid fa-list"></i>
Contents
</div>
<nav class="bd-toc-nav page-toc rocm-docs-selector-toc2">
<ul
class="visible nav section-nav flex-column rocm-docs-selector-toc2-contents"
>
</ul>
</nav>

View File

@@ -0,0 +1,30 @@
import json
import html
def normalize_key(key):
return key.replace(" ", "_").lower().strip()
def kv_to_data_attr(name, kv_str, separator="="):
"""
Convert key=value pairs delimited by spaces to stringified JSON.
Format it as an HTML data attribute.
Args:
name: Name of the data attribute; it will be prefixed with "data-".
condition_str: String in format "key=value os=ubuntu".
Example output:
'data-show-when="{"os": "ubuntu"}"'
"""
pairs = {}
for token in kv_str.split():
token = token.strip()
if not token or separator not in token:
continue
key, value = token.split(separator, 1)
if key and value:
pairs.setdefault(key, []).append(value.strip())
return f'data-{name}="{html.escape(json.dumps(pairs))}"' if pairs else ""

View File

@@ -1,73 +0,0 @@
---
myst:
html_meta:
"description": "Start building for HPC and AI with the performance-first AMD ROCm software stack. Explore how-to guides and reference docs."
"keywords": "Radeon, open, compute, platform, install, how, conceptual, reference, home, docs"
---
# AMD ROCm documentation
ROCm is an open-source software platform optimized to extract HPC and AI workload
performance from AMD Instinct accelerators and AMD Radeon GPUs while maintaining
compatibility with industry software frameworks. For more information, see
[What is ROCm?](./what-is-rocm.rst)
ROCm supports multiple programming languages and programming interfaces such as
{doc}`HIP (Heterogeneous-Compute Interface for Portability)<hip:index>`, OpenCL,
and OpenMP, as explained in the [Programming guide](./how-to/programming_guide.rst).
If you're using AMD Radeon GPUs or Ryzen APUs in a workstation setting with a display connected, review [ROCm on Radeon and Ryzen documentation](https://rocm.docs.amd.com/projects/radeon-ryzen/en/latest/index.html).
ROCm documentation is organized into the following categories:
::::{grid} 1 2 2 2
:gutter: 3
:class-container: rocm-doc-grid
:::{grid-item-card} Install
:class-body: rocm-card-banner rocm-hue-2
* {doc}`ROCm on Linux <rocm-install-on-linux:reference/system-requirements>`
* {doc}`HIP SDK on Windows <rocm-install-on-windows:reference/system-requirements>`
* [ROCm on Radeon GPUs](https://rocm.docs.amd.com/projects/radeon/en/latest/index.html)
* {doc}`Deep learning frameworks </how-to/deep-learning-rocm>`
* {doc}`Build from source </how-to/build-rocm>`
:::
:::{grid-item-card} How to
:class-body: rocm-card-banner rocm-hue-12
* [Use ROCm for AI](./how-to/rocm-for-ai/index.rst)
* [AI tutorials](https://rocm.docs.amd.com/projects/ai-developer-hub/en/latest/)
* [Use ROCm for HPC](./how-to/rocm-for-hpc/index.rst)
* [System optimization](./how-to/system-optimization/index.rst)
* [AMD Instinct MI300X performance validation and tuning](./how-to/tuning-guides/mi300x/index.rst)
* [System debugging](./how-to/system-debugging.md)
* [Use advanced compiler features](./conceptual/compiler-topics.md)
* [Set the number of CUs](./how-to/setting-cus)
* [Troubleshoot BAR access limitation](./how-to/Bar-Memory.rst)
* [ROCm examples](https://github.com/amd/rocm-examples)
:::
:::{grid-item-card} Conceptual
:class-body: rocm-card-banner rocm-hue-8
* [GPU architecture overview](./conceptual/gpu-arch.md)
* [File structure (Linux FHS)](./conceptual/file-reorg.md)
* [GPU isolation techniques](./conceptual/gpu-isolation.md)
* [Using CMake](./conceptual/cmake-packages.rst)
* [Inception v3 with PyTorch](./conceptual/ai-pytorch-inception.md)
:::
:::{grid-item-card} Reference
:class-body: rocm-card-banner rocm-hue-6
<!-- markdownlint-disable MD051 -->
* [ROCm libraries](./reference/api-libraries.md)
* [ROCm tools, compilers, and runtimes](./reference/rocm-tools.md)
* [Accelerator and GPU hardware specifications](./reference/gpu-arch-specs.rst)
* [Data types and precision support](./reference/precision-support.rst)
* [Graph safe support](./reference/graph-safe-support.rst)
<!-- markdownlint-enable MD051 -->
:::
::::

89
docs/index.rst Normal file
View File

@@ -0,0 +1,89 @@
.. meta::
:description: Learn what ROCm is AMD's open software stack for GPU programming, including runtimes, compilers, libraries, and tools for Linux and Windows.
:keywords: ROCm, AMD, GPU computing, ROCm Core SDK, ROCm components, TheRock, ROCm architecture, HPC, AI, machine learning, ROCm runtime
****************************
AMD ROCm 7.9.0 documentation
****************************
AMD ROCm is an open, modular, and highperformance GPU software ecosystem —
built collaboratively with the community, maintained transparently, and
optimized for consistent, scalable performance across data centers, desktops,
and edge devices.
ROCm 7.9.0 is a technology preview release built with
`TheRock <https://github.com/ROCm/TheRock>`__, AMDs new open build and release
system.
This preview introduces a new modular build workflow that will become standard
in the near future. The existing monolithic release process will continue to be
used in the production ROCm 7.0 stream during this transition period until the
modular workflow fully replaces it. See the :ref:`release notes
<preview-stream-note>` for more information.
What is ROCm?
=============
ROCm is AMDs open software stack for GPUaccelerated computing. It provides
the tools needed to program AMD GPUs — including runtimes, compilers,
performance and system utilities, and optimized math and compute libraries. The
wider ROCm ecosystem includes ROCmenabled HPC applications and deep learning
frameworks such as PyTorch.
**Some key features:**
* **Open source** -- Transparent development driven by community feedback
* **Crossplatform** -- Supports Linux and Windows environments
* **Comprehensive** -- Endtoend toolchain from compilers to libraries
* **Performancefocused** -- Tuned for AMD Instinct™, AMD Radeon™, and AMD Ryzen™ architectures
.. image:: data/rocm-ontology.png
:align: center
:alt: ROCm software ecosystem and components illustration
ROCm supports AMD GPU architectures spanning data center, workstation, and APU
categories. TheRock enables a unified ROCm userspace experience across
devices.
* **AMD Instinct GPUs** -- Purposebuilt for largescale compute, AI training, and HPC workloads.
* **AMD Radeon GPUs and AMD Ryzen AI APUs** -- Designed for workstations, desktop computing, and edge AI applications.
.. note::
This release supports a limited number GPU models. Hardware support will be
expanded with future releases.
Whats changing
===============
ROCm is evolving to improve flexibility, maintainability, and
usecase alignment.
* **Leaner core** The Core SDK focuses on essential runtime and development components.
* **Use casespecific expansions** Optional domainspecific SDKs for AI, data science, and HPC.
* **Modular installation** Install only the components required for your workflow.
This approach streamlines installation, reduces footprint, and accelerates
innovation through independently released packages.
ROCm Core SDK
-------------
The ROCm Core SDK provides the foundational components that power the ROCm
ecosystem — runtimes, compilers, math libraries, and system utilities for GPGPU
computing.
.. image:: data/rocm-sdk-arch.png
:align: center
:alt: ROCm Core SDK internal architecture illustration
The TheRock infrastructure keeps these components modular, consistent, and easy
to integrate across configurations.
Getting started
===============
* See the release notes -- :doc:`/about/release-notes` -- to learn about the latest
changes and current system compatibility information.
* Follow :doc:`/install/rocm` to set up ROCm on your system.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,21 @@
1. Register your Enterprise Linux.
```bash
subscription-manager register --username <username> --password <password>
```
2. Update your Enterprise Linux.
```bash
sudo dnf update --releasever=10.0 --exclude=\*release\*
```
3. Configure permissions for GPU access.
```bash
sudo usermod -a -G render,video $LOGNAME # Add the current user to the render and video groups
```
```{note}
To apply all settings, reboot your system.
```

View File

@@ -0,0 +1,27 @@
1. Register your Enterprise Linux.
```bash
subscription-manager register --username <username> --password <password>
```
2. Update your Enterprise Linux.
```bash
sudo dnf update --releasever=10.0 --exclude=\*release\*
```
3. Install Python 3.12 or 3.13.
```bash
sudo dnf install python3.12 python3.12-pip
```
4. Configure permissions for GPU access.
```bash
sudo usermod -a -G render,video $LOGNAME # Add the current user to the render and video groups
```
```{note}
To apply all settings, reboot your system.
```

View File

@@ -0,0 +1,22 @@
1. Register your Enterprise Linux.
```bash
subscription-manager register --username <username> --password <password>
sudo subscription-manager attach --auto
```
2. Update your Enterprise Linux.
```bash
sudo dnf update --releasever=9.6 --exclude=\*release\*
```
3. Configure permissions for GPU access.
```bash
sudo usermod -a -G render,video $LOGNAME # Add the current user to the render and video groups
```
```{note}
To apply all settings, reboot your system.
```

View File

@@ -0,0 +1,28 @@
1. Register your Enterprise Linux.
```bash
subscription-manager register --username <username> --password <password>
sudo subscription-manager attach --auto
```
2. Update your Enterprise Linux.
```bash
sudo dnf update --releasever=9.6 --exclude=\*release\*
```
3. Install Python 3.11, 3.12 or 3.13.
```bash
sudo dnf install python3.11 python3.11-pip
```
4. Configure permissions for GPU access.
```bash
sudo usermod -a -G render,video $LOGNAME # Add the current user to the render and video groups
```
```{note}
To apply all settings, reboot your system.
```

View File

@@ -0,0 +1,15 @@
1. Install Python 3.11.
```bash
sudo apt install python3.11 python3.11-venv
```
2. Configure permissions for GPU access.
```bash
sudo usermod -a -G render,video $LOGNAME # Add the current user to the render and video groups
```
```{note}
To apply all settings, reboot your system.
```

View File

@@ -0,0 +1,15 @@
1. Install Python 3.12 or 3.13.
```bash
sudo apt install python3.12 python3.12-venv
```
2. Configure permissions for GPU access.
```bash
sudo usermod -a -G render,video $LOGNAME # Add the current user to the render and video groups
```
```{note}
To apply all settings, reboot your system.
```

View File

@@ -0,0 +1,9 @@
Configure permissions for GPU access.
```bash
sudo usermod -a -G render,video $LOGNAME # Add the current user to the render and video groups
```
```{note}
To apply all settings, reboot your system.
```

View File

@@ -0,0 +1,6 @@
1. Remove any existing HIP SDK installations and other
conflicting AMD graphics software.
2. Install the [Adrenalin Driver version
25.9.2](https://www.amd.com/en/resources/support-articles/release-notes/RN-RAD-WIN-25-9-2.html).
For instructions, see [Install AMD Software: Adrenalin Edition](https://www.amd.com/en/resources/support-articles/faqs/RSX2-INSTALL.html).

View File

@@ -0,0 +1,8 @@
1. Remove any existing HIP SDK installations and other
conflicting AMD graphics software.
2. Install the [Adrenalin Driver version
25.9.2](https://www.amd.com/en/resources/support-articles/release-notes/RN-RAD-WIN-25-9-2.html).
For instructions, see [Install AMD Software: Adrenalin Edition](https://www.amd.com/en/resources/support-articles/faqs/RSX2-INSTALL.html).
3. Install a supported Python version: 3.11, 3.12, or 3.13.

View File

@@ -0,0 +1,6 @@
For information about driver compatibility, see the {doc}`compatibility-matrix`.
For information about the AMD GPU driver installation, see the
[RHEL native
installation](https://instinct.docs.amd.com/projects/amdgpu-docs/en/latest/install/detailed-install/package-manager/package-manager-rhel.html)
in the AMD Instinct Data Center GPU Documentation.

View File

@@ -0,0 +1,6 @@
For information about driver compatibility, see the {doc}`compatibility-matrix`.
For information about the AMD GPU driver installation, see the
[Ubuntu native
installation](https://instinct.docs.amd.com/projects/amdgpu-docs/en/latest/install/detailed-install/package-manager/package-manager-ubuntu.html)
in the AMD Instinct Data Center GPU Documentation.

View File

@@ -0,0 +1,20 @@
1. Create the installation directory. For example:
```bash
mkdir therock-tarball && cd therock-tarball
```
```{note}
Subsequent commands assume you're working with the
`therock-tarball` directory.
If you choose a different directory name, adjust the
subsequent commands accordingly.
```
2. Download and unpack the tarball.
```bash
wget https://repo.amd.com/rocm/tarball/therock-dist-linux-gfx1151-7.9.0rc1.tar.gz
mkdir install
tar -xf *.tar.gz -C install
```

View File

@@ -0,0 +1,20 @@
1. Create the installation directory. For example:
```bash
mkdir therock-tarball && cd therock-tarball
```
```{note}
Subsequent commands assume you're working with the
`therock-tarball` directory.
If you choose a different directory name, adjust the
subsequent commands accordingly.
```
2. Download and unpack the tarball.
```bash
wget https://repo.amd.com/rocm/tarball/therock-dist-linux-gfx94X-dcgpu-7.9.0rc1.tar.gz
mkdir install
tar -xf *.tar.gz -C install
```

View File

@@ -0,0 +1,20 @@
1. Create the installation directory. For example:
```bash
mkdir therock-tarball && cd therock-tarball
```
```{note}
Subsequent commands assume you're working with the
`therock-tarball` directory.
If you choose a different directory name, adjust the
subsequent commands accordingly.
```
2. Download and unpack the tarball.
```bash
wget https://repo.amd.com/rocm/tarball/therock-dist-linux-gfx950-dcgpu-7.9.0rc1.tar.gz
mkdir install
tar -xf *.tar.gz -C install
```

View File

@@ -0,0 +1,12 @@
1. Set up your Python virtual environment.
```bash
python3.12 -m venv .venv
source .venv/bin/activate
```
2. Install ROCm wheels packages.
```bash
python -m pip install --index-url https://repo.amd.com/rocm/whl/gfx1151/ "rocm[libraries,devel]"
```

View File

@@ -0,0 +1,12 @@
1. Set up your Python virtual environment.
```bash
python3.11 -m venv .venv
source .venv/bin/activate
```
2. Install ROCm wheels packages.
```bash
python -m pip install --index-url https://repo.amd.com/rocm/whl/gfx94X-dcgpu/ "rocm[libraries,devel]"
```

View File

@@ -0,0 +1,12 @@
1. Set up your Python virtual environment.
```bash
python3.12 -m venv .venv
source .venv/bin/activate
```
2. Install ROCm wheels packages.
```bash
python -m pip install --index-url https://repo.amd.com/rocm/whl/gfx94X-dcgpu/ "rocm[libraries,devel]"
```

View File

@@ -0,0 +1,12 @@
1. Set up your Python virtual environment.
```bash
python3.11 -m venv .venv
source .venv/bin/activate
```
2. Install ROCm wheels packages.
```bash
python -m pip install --index-url https://repo.amd.com/rocm/whl/gfx950-dcgpu/ "rocm[libraries,devel]"
```

View File

@@ -0,0 +1,12 @@
1. Set up your Python virtual environment.
```bash
python3.12 -m venv .venv
source .venv/bin/activate
```
2. Install ROCm wheels packages.
```bash
python -m pip install --index-url https://repo.amd.com/rocm/whl/gfx950-dcgpu/ "rocm[libraries,devel]"
```

View File

@@ -0,0 +1,47 @@
```{important}
- Do not copy/replace the ROCm-SDK compiler and runtime DLLs to
`System32` as this can cause conflicts.
- Disable the following Windows security features as they
can interfere with ROCm functionality:
- Turn off WDAG (Windows Defender Application Guard)
- Control Panel > Programs > Programs and Features > Turn Windows features on or off > **Deselect** "Microsoft Defender Application Guard"
- Turn off SAC (Smart App Control)
- Settings > Privacy & security > Windows Security > App & browser control > Smart App Control settings > **Off**
```
1. Create the installation directory in `C:\TheRock\build`.
```{note}
Subsequent commands assume you're working with the
`C:\TheRock\build` directory.
```
2. Download the tarball and extract the contents to
`C:\TheRock\build`.
- Download link: [https://repo.amd.com/rocm/tarball/therock-dist-windows-gfx1151-7.9.0rc1.tar.gz](https://repo.amd.com/rocm/tarball/therock-dist-windows-gfx1151-7.9.0rc1.tar.gz)
3. Set the following environment variables using the command
prompt as an administrator:
```bat
setx HIP_DEVICE_LIB_PATH “C:\TheRock\build\lib\llvm\amdgcn\bitcode” /M
setx HIP_PATH “C:\TheRock\build” /M
setx HIP_PLATFORM “amd” /M
setx LLVM_PATH “C:\TheRock\build\lib\llvm” /M
```
4. Add the following paths into PATH environment variable using your system settings GUI.
- `C:\TheRock\build\bin`
- `C:\TheRock\build\lib\llvm\bin`
5. Open a new command prompt window for the environment variables to take effect. Run `set`
to see the list of active variables.
```bat
set
````

View File

@@ -0,0 +1,12 @@
1. Set up your Python virtual environment.
```bash
python3.12 -m venv .venv
.venv\Scripts\activate
```
2. Install ROCm wheels packages.
```bash
python -m pip install --index-url https://repo.amd.com/rocm/whl/gfx1151/ "rocm[libraries,devel]"
```

View File

@@ -0,0 +1,55 @@
1. Configure ROCm PATH. Make sure you're in the `therock-tarball` directory before proceeding.
```bash
export ROCM_PATH=$PWD
export PATH=$PATH:$ROCM_PATH/install/bin
```
2. Configure `LD_LIBRARY_PATH`.
```bash
export LD_LIBRARY_PATH=$ROCM_PATH/install/lib
```
3. Verify the ROCm installation.
```bash
rocminfo
amd-smi
```
```{eval-rst}
.. dropdown:: Example output of ``rocminfo``
.. code-block:: shell-session
ROCk module is loaded
=====================
HSA System Attributes
=====================
Runtime Version: 1.18
Runtime Ext Version: 1.14
System Timestamp Freq.: 1000.000000MHz
Sig. Max Wait Duration: 18446744073709551615 (0xFFFFFFFFFFFFFFFF) (timestamp count)
Machine Model: LARGE
System Endianness: LITTLE
Mwaitx: DISABLED
XNACK enabled: NO
DMAbuf Support: YES
VMM Support: YES
==========
HSA Agents
==========
*******
Agent 1
*******
Name: AMD RYZEN AI MAX+ PRO 395 w/ Radeon 8060S
Uuid: CPU-XX
Marketing Name: AMD RYZEN AI MAX+ PRO 395 w/ Radeon 8060S
Vendor Name: CPU
[output truncated]
```

View File

@@ -0,0 +1,72 @@
1. Verify the ROCm installation.
```bash
rocminfo
amd-smi
```
```{eval-rst}
.. dropdown:: Example output of ``rocminfo``
.. code-block:: shell-session
ROCk module is loaded
=====================
HSA System Attributes
=====================
Runtime Version: 1.18
Runtime Ext Version: 1.14
System Timestamp Freq.: 1000.000000MHz
Sig. Max Wait Duration: 18446744073709551615 (0xFFFFFFFFFFFFFFFF) (timestamp count)
Machine Model: LARGE
System Endianness: LITTLE
Mwaitx: DISABLED
XNACK enabled: NO
DMAbuf Support: YES
VMM Support: YES
==========
HSA Agents
==========
*******
Agent 1
*******
Name: AMD RYZEN AI MAX+ PRO 395 w/ Radeon 8060S
Uuid: CPU-XX
Marketing Name: AMD RYZEN AI MAX+ PRO 395 w/ Radeon 8060S
Vendor Name: CPU
[output truncated]
```
2. Inspect your ROCm installation in your Python environment.
```bash
pip freeze | grep rocm
which rocm-sdk
ls .venv/bin
```
3. Test your ROCm installation.
```bash
rocm-sdk targets
rocm-sdk path --cmake
rocm-sdk path --bin
rocm-sdk path --root
rocm-sdk test
```
To learn more about the `rocm-sdk` tool and to see example expected outputs,
see [Using ROCm Python packages
(TheRock)](https://github.com/ROCm/TheRock/blob/main/RELEASES.md#using-rocm-python-packages).
````{tip}
If you need to deactivate your Python virtual environment when finished,
run:
```shell
deactivate
```
````

View File

@@ -0,0 +1,72 @@
1. Verify the ROCm installation.
```bash
rocminfo
amd-smi
```
```{eval-rst}
.. dropdown:: Example output of ``rocminfo``
.. code-block:: shell-session
ROCk module is loaded
=====================
HSA System Attributes
=====================
Runtime Version: 1.18
Runtime Ext Version: 1.14
System Timestamp Freq.: 1000.000000MHz
Sig. Max Wait Duration: 18446744073709551615 (0xFFFFFFFFFFFFFFFF) (timestamp count)
Machine Model: LARGE
System Endianness: LITTLE
Mwaitx: DISABLED
XNACK enabled: NO
DMAbuf Support: YES
VMM Support: YES
==========
HSA Agents
==========
*******
Agent 1
*******
Name: AMD RYZEN AI MAX+ PRO 395 w/ Radeon 8060S
Uuid: CPU-XX
Marketing Name: AMD RYZEN AI MAX+ PRO 395 w/ Radeon 8060S
Vendor Name: CPU
[output truncated]
```
2. Inspect your ROCm installation in your Python environment.
```bash
pip freeze | grep rocm
which rocm-sdk
ls .venv/bin
```
3. Test your ROCm installation.
```bash
rocm-sdk targets
rocm-sdk path --cmake
rocm-sdk path --bin
rocm-sdk path --root
rocm-sdk test
```
To learn more about the `rocm-sdk` tool and to see example expected outputs,
see [Using ROCm Python packages
(TheRock)](https://github.com/ROCm/TheRock/blob/main/RELEASES.md#using-rocm-python-packages).
````{tip}
If you need to deactivate your Python virtual environment when finished,
run:
```shell
deactivate
```
````

View File

@@ -0,0 +1,23 @@
Verify the ROCm installation.
```shell
hipinfo
```
```{eval-rst}
.. dropdown:: Example output of ``hipinfo``
.. code-block:: shell-session
--------------------------------------------------------------------------------
device# 0
Name: AMD Radeon(TM) 8060S Graphics
pciBusID: 197
pciDeviceID: 0
pciDomainID: 0
multiProcessorCount: 20
[output truncated]
```

View File

@@ -0,0 +1,50 @@
1. Verify the ROCm installation.
```bash
hipinfo
```
```{eval-rst}
.. dropdown:: Example output of ``hipinfo``
.. code-block:: shell-session
--------------------------------------------------------------------------------
device# 0
Name: AMD Radeon(TM) 8060S Graphics
pciBusID: 197
pciDeviceID: 0
pciDomainID: 0
multiProcessorCount: 20
[output truncated]
```
2. Inspect your ROCm installation in your Python environment.
```bash
pip freeze
where rocm-sdk
dir .venv\Scripts
```
3. Test your ROCm installation.
```bash
rocm-sdk test
```
To learn more about the `rocm-sdk` tool and to see example expected outputs,
see [Using ROCm Python packages
(TheRock)](https://github.com/ROCm/TheRock/blob/main/RELEASES.md#using-rocm-python-packages).
````{tip}
If you need to deactivate your Python virtual environment when finished,
run:
```shell
deactivate
```
````

View File

@@ -0,0 +1,5 @@
To uninstall ROCm, remove your installation directory.
```bash
sudo rm -rf therock-tarball
```

View File

@@ -0,0 +1,11 @@
1. Clear the pip cache.
```bash
sudo rm -rf ~/.cache/pip
```
2. Remove your local Python virtual environment.
```bash
sudo rm -rf .venv
```

View File

@@ -0,0 +1,11 @@
1. Clear the pip cache.
```bash
pip cache purge
```
2. Remove your local Python virtual environment.
```bash
rmdir /s /q .venv
```

View File

@@ -0,0 +1,18 @@
1. Delete the `C:\TheRock\build` and its contents.
2. Delete the environment variables. For example, using Powershell as an administrator:
```powershell
[Environment]::SetEnvironmentVariable("HIP_PATH", $null, "Machine")
[Environment]::SetEnvironmentVariable("HIP_DEVICE_LIB_PATH", $null, "Machine")
[Environment]::SetEnvironmentVariable("HIP_PLATFORM", $null, "Machine")
[Environment]::SetEnvironmentVariable("LLVM_PATH", $null, "Machine")
```
3. Remove the following paths from your PATH environment variable using your system settings GUI.
- `C:\TheRock\build\bin`
- `C:\TheRock\build\lib\llvm\bin`
4. If you want to uninstall the Adrenalin driver, see [Uninstall AMD Software](https://www.amd.com/en/resources/support-articles/faqs/RSX2-UNINSTALL.html).

View File

@@ -0,0 +1,8 @@
Docker images often only include a minimal set of installations, meaning some
essential packages might be missing. When installing ROCm within a Docker
container, you might need to install additional packages for a successful
installation. Use the following commands to install the prerequisite packages.
```bash
dnf install sudo libatomic
```

View File

@@ -0,0 +1,9 @@
Docker images often only include a minimal set of installations, meaning some
essential packages might be missing. When installing ROCm within a Docker
container, you might need to install additional packages for a successful
installation. Use the following commands to install the prerequisite packages.
```bash
apt update
apt install sudo wget
```

View File

@@ -0,0 +1,169 @@
.. meta::
:description: Step-by-step guide to installing PyTorch with AMD ROCm 7.9.0 and setting up ComfyUI for AI image generation on Ryzen AI (gfx1151) APUs. Covers Linux and Windows installation, environment setup, and troubleshooting.
:keywords: PyTorch ROCm, ComfyUI, ROCm 7.9.0, AMD GPU, Ryzen AI APU, install PyTorch ROCm, ROCm PyTorch Windows, ROCm PyTorch Linux, ROCm AI image generation, ROCm gfx1151, ComfyUI ROCm setup, PyTorch 2.9.0 ROCm
*****************************************
Install PyTorch and ComfyUI on ROCm 7.9.0
*****************************************
This guide walks you through installing PyTorch with ROCm support on AMD
hardware. It applies to :ref:`supported AMD GPUs and platforms
<790-supported-hw>`. It also includes additional setup steps for ComfyUI on
Windows using Ryzen AI (gfx1151) APUs, showcasing AI-powered image generation.
Prerequisites
=============
Before beginning, ensure your system meets these requirements:
- Python version: 3.11, 3.12, or 3.13 installed and accessible
- ROCm 7.9.0: A working ROCm installation (if not already installed via pip, this guide covers the setup)
Review the :doc:`ROCm 7.9.0 compatibility <compatibility-matrix>` information.
.. _790-install-pyt:
Install PyTorch
===============
For prerequisite steps and post-installation recommendations, see :doc:`rocm`.
1. Set up your Python virtual environment. If you already have a successful
:doc:`ROCm 7.9.0 installation via pip <rocm>`, skip this step.
.. code-block:: shell
python3.12 -m venv .venv
2. Activate your Python virtual environment.
.. tab-set::
.. tab-item:: Linux
:sync: linux
.. code-block:: shell
source .venv/bin/activate
.. tab-item:: Windows
:sync: windows
.. code-block:: shell
.venv\Scripts\activate
3. Install the appropriate ROCm-enabled PyTorch build for your operating system
and AMD hardware architecture.
.. tab-set::
.. tab-item:: Linux (PyTorch 2.7.1)
:sync: linux
.. tab-set::
.. tab-item:: Instinct MI350 Series
:sync: gfx950
.. code-block:: bash
python -m pip install --index-url https://repo.amd.com/rocm/whl/gfx950-dcgpu/ torch torchvision torchaudio
.. tab-item:: Instinct MI300 Series
:sync: gfx942
.. code-block:: bash
python -m pip install --index-url https://repo.amd.com/rocm/whl/gfx94X-dcgpu/ torch torchvision torchaudio
.. tab-item:: Ryzen AI Max APU
:sync: gfx1151
.. code-block:: bash
python -m pip install --index-url https://repo.amd.com/rocm/whl/gfx1151/ torch torchvision torchaudio
.. tab-item:: Windows (PyTorch 2.9.0)
:sync: windows
.. tab-set::
.. tab-item:: Ryzen AI Max APU
:sync: gfx1151
.. code-block:: bash
python -m pip install --index-url https://repo.amd.com/rocm/whl/gfx1151/ torch torchvision torchaudio
4. Check your PyTorch installation.
.. code-block:: shell
python -c "import torch; print(torch.cuda.is_available())"
This prints ``True`` if PyTorch and ROCm are installed properly.
Optionally, if you're running Windows on a supported Ryzen AI APU, try
:ref:`ComfyUI on Windows <790-install-comfyui>`.
.. _790-install-comfyui:
Install ComfyUI on Windows
==========================
ComfyUI is tested for support only on Ryzen AI (gfx1151) APUs on
Windows.
1. Ensure your working environment is running ROCm-enabled PyTorch 2.9.0 on Windows.
See :ref:`Install PyTorch <790-install-pyt>`.
2. Clone the ComfyUI repository.
.. code-block:: shell
git clone https://github.com/comfyanonymous/ComfyUI.git
3. Install Python dependencies.
.. code-block:: shell
pip install -r ComfyUI\requirements.txt
4. Run ComfyUI.
a. Start the ComfyUI server from the command line.
.. code-block:: bash
python ComfyUI\main.py
This will start the server and display a prompt like:
.. code-block:: text
To see the GUI go to: http://127.0.0.1:8188
b. Navigate to ``http://127.0.0.1:8188`` in your web browser. You might need to
replace `8188` with the appropriate port number.
.. image:: /data/comfyui.png
:align: center
c. Search for the "Chroma1 Radiance text to image" template.
- Select **Template****Images****Chroma1_radiance**.
- Download any missing required models.
.. image:: /data/comfyui-missing-models.png
:align: center
d. Click the **Run** button.
The application will use your AMD GPU to convert the prompted text to an image.
Known limitations
-----------------
ComfyUI might not start if Smart App Control is enabled.

441
docs/install/rocm.rst Normal file
View File

@@ -0,0 +1,441 @@
.. meta::
:description: Learn how to install AMD ROCm 7.9.0 for supported Instinct GPUs and Ryzen AI APUs on Ubuntu, RHEL, and Windows. This step-by-step guide covers prerequisites, driver setup, installation methods (pip and tarball), and troubleshooting.
:keywords: AMD ROCm 7.9.0, install ROCm, Instinct GPU, Ryzen APU, Ubuntu, RHEL, Windows, pip install ROCm, ROCm wheel, ROCm tarball, ROCm GPU driver, ROCm setup, ROCm uninstall, ROCm troubleshooting**********************
Install AMD ROCm 7.9.0
**********************
Use the following selector to choose your installation method for your
supported AMD GPU or APU and operating system. For information about supported
operating systems and compatible AMD devices, see the :doc:`Compatibility matrix
<compatibility-matrix>`.
.. selector:: AMD product family
:key: plat
.. selector-option:: Instinct GPU
:value: instinct
:width: 6
.. selector-option:: Ryzen APU
:value: ryzen
:width: 6
.. selected:: plat=instinct
.. selector:: Instinct GPU
:key: instinct-arch
.. selector-option:: Instinct MI355X, MI350X
:value: gfx950
.. selector-option:: Instinct MI325X, MI300X, MI300A
:value: gfx942
.. selector:: Operating system
:key: instinct-os
.. selector-option:: Ubuntu
:value: ubuntu
:icon: fab fa-linux fa-lg
.. selector-option:: Red Hat Enterprise Linux
:value: rhel
:icon: fab fa-linux fa-lg
.. selector:: Ubuntu version
:key: instinct-ubuntu-version
:show-when: instinct-os=ubuntu
.. selector-option:: 24.04.3
:value: 24.04
:icon: fab fa-ubuntu fa-lg
.. selector-option:: 22.04.5
:value: 22.04
:icon: fab fa-ubuntu fa-lg
.. selector:: RHEL version
:key: instinct-rhel-version
:show-when: instinct-os=rhel
.. selector-option:: 10.0
:value: 10.0
:icon: fab fa-redhat fa-lg
.. selector-option:: 9.6
:value: 9.6
:icon: fab fa-redhat fa-lg
.. selected:: plat=ryzen
.. selector:: Ryzen APU
:key: ryzen
.. selector-option:: Ryzen AI Max+ PRO 395, 390, 385, 380
:value: ryzen-ai-max-pro
:width: 7
.. selector-option:: Ryzen AI Max 395, 390, 385
:value: ryzen-ai-max
:width: 5
.. selector:: Operating system
:key: ryzen-os
.. selector-option:: Ubuntu
:value: ubuntu
:icon: fab fa-linux fa-lg
.. selector-option:: Windows
:value: windows
:icon: fab fa-windows fa-lg
.. selector:: Ubuntu version
:key: ryzen-ubuntu-version
:show-when: ryzen-os=ubuntu
.. selector-option:: 24.04.3
:value: 24.04
:icon: fab fa-ubuntu fa-lg
:width: 12
.. selector:: Windows version
:key: ryzen-windows-version
:show-when: ryzen-os=windows
.. selector-option:: 11 24H2
:value: 11_24h2
:icon: fab fa-windows fa-lg
:width: 12
.. selector:: Installation method
:key: install-method
.. selector-option:: pip
:value: wheel
.. selector-option:: Tarball
:value: tar
.. selected:: install-method=wheel
:heading: Prerequisites
.. selected:: plat=instinct
.. selected:: instinct-os=ubuntu
.. selected:: instinct-ubuntu-version=22.04
.. include:: ./includes/1_ubuntu-22.04-wheel-prerequisites.md
:parser: myst
.. selected:: instinct-ubuntu-version=24.04
.. include:: ./includes/1_ubuntu-24.04-wheel-prerequisites.md
:parser: myst
.. selected:: instinct-os=rhel
.. selected:: instinct-rhel-version=9.6
.. include:: ./includes/1_rhel-9.6-wheel-prerequisites.md
:parser: myst
.. selected:: instinct-rhel-version=10.0
.. include:: ./includes/1_rhel-10.0-wheel-prerequisites.md
:parser: myst
.. selected:: plat=ryzen
.. selected:: ryzen-os=ubuntu
.. selected:: ryzen-ubuntu-version=24.04
.. include:: ./includes/1_ubuntu-24.04-wheel-prerequisites.md
:parser: myst
.. selected:: ryzen-os=windows
.. include:: ./includes/1_windows-wheel-prerequisites.md
:parser: myst
.. selected:: install-method=tar
:heading: Prerequisites
.. selected:: plat=instinct
.. selected:: instinct-os=ubuntu
.. include:: ./includes/1_ubuntu-tar-prerequisites.md
:parser: myst
.. selected:: instinct-os=rhel
.. selected:: instinct-rhel-version=9.6
.. include:: ./includes/1_rhel-9.6-tar-prerequisites.md
:parser: myst
.. selected:: instinct-rhel-version=10.0
.. include:: ./includes/1_rhel-10.0-tar-prerequisites.md
:parser: myst
.. selected:: plat=ryzen
.. selected:: ryzen-os=ubuntu
.. include:: ./includes/1_ubuntu-tar-prerequisites.md
:parser: myst
.. selected:: ryzen-os=windows
.. include:: ./includes/1_windows-tar-prerequisites.md
:parser: myst
.. selected:: plat=instinct
:heading: Installing
.. selected:: instinct-os=ubuntu
:heading: Install AMD GPU Driver
:heading-level: 3
.. include:: ./includes/2_ubuntu-instinct-install-kmd.md
:parser: myst
.. selected:: instinct-os=rhel
:heading: Install AMD GPU Driver
:heading-level: 3
.. include:: ./includes/2_rhel-instinct-install-kmd.md
:parser: myst
.. selected:: plat=ryzen
:heading: Installing
.. selected:: ryzen-os=ubuntu
:heading: Install kernel driver
:heading-level: 3
Supported Ryzen AI APUs require the inbox kernel driver included with
Ubuntu 24.04.3.
.. selected:: install-method=wheel
:heading: Install ROCm
:heading-level: 3
.. selected:: plat=instinct
.. selected:: instinct-arch=gfx950
.. selected:: instinct-os=ubuntu
.. selected:: instinct-ubuntu-version=22.04
.. include:: ./includes/3_wheel-gfx950-install-rocm-py311.md
:parser: myst
.. selected:: instinct-ubuntu-version=24.04
.. include:: ./includes/3_wheel-gfx950-install-rocm.md
:parser: myst
.. selected:: instinct-os=rhel
.. selected:: instinct-rhel-version=10.0
.. include:: ./includes/3_wheel-gfx950-install-rocm.md
:parser: myst
.. selected:: instinct-rhel-version=9.6
.. include:: ./includes/3_wheel-gfx950-install-rocm-py311.md
:parser: myst
.. selected:: instinct-arch=gfx942
.. selected:: instinct-os=ubuntu
.. selected:: instinct-ubuntu-version=22.04
.. include:: ./includes/3_wheel-gfx942-install-rocm-py311.md
:parser: myst
.. selected:: instinct-ubuntu-version=24.04
.. include:: ./includes/3_wheel-gfx942-install-rocm.md
:parser: myst
.. selected:: instinct-os=rhel
.. selected:: instinct-rhel-version=10.0
.. include:: ./includes/3_wheel-gfx942-install-rocm.md
:parser: myst
.. selected:: instinct-rhel-version=9.6
.. include:: ./includes/3_wheel-gfx942-install-rocm-py311.md
:parser: myst
.. selected:: plat=ryzen
.. selected:: ryzen-os=ubuntu
.. include:: ./includes/3_wheel-gfx1151-install-rocm.md
:parser: myst
.. selected:: ryzen-os=windows
.. include:: ./includes/3_windows-wheel-install-rocm.md
:parser: myst
.. selected:: install-method=tar
:heading: Install ROCm
:heading-level: 3
.. selected:: plat=instinct
.. selected:: instinct-arch=gfx950
.. include:: ./includes/3_tar-gfx950-install-rocm.md
:parser: myst
.. selected:: instinct-arch=gfx942
.. include:: ./includes/3_tar-gfx942-install-rocm.md
:parser: myst
.. selected:: plat=ryzen
.. selected:: ryzen-os=ubuntu
.. include:: ./includes/3_tar-gfx1151-install-rocm.md
:parser: myst
.. selected:: ryzen-os=windows
.. include:: ./includes/3_windows-tar-install-rocm.md
:parser: myst
.. selected:: install-method=tar
:heading: Post-installation
.. selected:: plat=instinct
.. include:: ./includes/4_linux-tar-post-install.md
:parser: myst
.. selected:: plat=ryzen
.. selected:: ryzen-os=ubuntu
.. include:: ./includes/4_linux-tar-post-install.md
:parser: myst
.. selected:: ryzen-os=windows
.. include:: ./includes/4_windows-tar-post-install.md
:parser: myst
.. selected:: install-method=wheel
:heading: Post-installation
.. selected:: plat=instinct
.. selected:: instinct-os=ubuntu
.. include:: ./includes/4_ubuntu-wheel-post-install.md
:parser: myst
.. selected:: instinct-os=rhel
.. include:: ./includes/4_rhel-wheel-post-install.md
:parser: myst
.. selected:: plat=ryzen
.. selected:: ryzen-os=ubuntu
.. include:: ./includes/4_ubuntu-wheel-post-install.md
:parser: myst
.. selected:: ryzen-os=windows
.. include:: ./includes/4_windows-wheel-post-install.md
:parser: myst
.. selected:: install-method=tar
:heading: Uninstalling
.. selected:: plat=instinct
.. include:: ./includes/5_tar-uninstall.md
:parser: myst
.. selected:: plat=ryzen
.. selected:: ryzen-os=ubuntu
.. include:: ./includes/5_tar-uninstall.md
:parser: myst
.. selected:: ryzen-os=windows
.. include:: ./includes/5_windows-tar-uninstall.md
:parser: myst
.. selected:: install-method=wheel
:heading: Uninstalling
.. selected:: plat=instinct
.. include:: ./includes/5_wheel-linux-uninstall.md
:parser: myst
.. selected:: plat=ryzen
.. selected:: ryzen-os=ubuntu
.. include:: ./includes/5_wheel-linux-uninstall.md
:parser: myst
.. selected:: ryzen-os=windows
.. include:: ./includes/5_wheel-windows-uninstall.md
:parser: myst
.. selected:: plat=instinct
:heading: Troubleshooting
.. selected:: instinct-os=ubuntu
.. selected:: instinct-os=ubuntu
:heading-level: 3
:heading: Additional packages for Docker installation
.. include:: ./includes/6_ubuntu-troubleshooting.md
:parser: myst
.. selected:: instinct-os=rhel
.. selected:: instinct-os=rhel
:heading-level: 3
:heading: Additional packages for Docker installation
.. include:: ./includes/6_rhel-troubleshooting.md
:parser: myst
.. selected:: plat=ryzen
.. selected:: ryzen-os=ubuntu
:heading: Troubleshooting
.. selected:: ryzen-os=ubuntu
:heading-level: 3
:heading: Additional packages for Docker installation
.. include:: ./includes/6_ubuntu-troubleshooting.md
:parser: myst

View File

@@ -2,8 +2,8 @@
:description: AMD Instinct™ accelerator, AMD Radeon PRO™, and AMD Radeon™ GPU architecture information
:keywords: Instinct, Radeon, accelerator, GCN, CDNA, RDNA, GPU, architecture, VRAM, Compute Units, Cache, Registers, LDS, Register File
Accelerator and GPU hardware specifications
===========================================
AMD GPU hardware specifications
===============================
The following tables provide an overview of the hardware specifications for AMD Instinct™ accelerators, and AMD Radeon™ PRO and Radeon™ GPUs.

View File

@@ -5,230 +5,228 @@ defaults:
maxdepth: 6
root: index
subtrees:
- entries:
- file: what-is-rocm.rst
- file: about/release-notes.md
title: Release notes
- file: compatibility/compatibility-matrix.rst
title: Compatibility matrix
- entries:
- file: about/release-notes.md
title: Release notes
- file: install/compatibility-matrix.md
title: Compatibility matrix
- caption: Installation
entries:
- url: https://rocm.docs.amd.com/projects/install-on-linux/en/latest/reference/system-requirements.html
title: Linux system requirements
- url: https://rocm.docs.amd.com/projects/install-on-windows/en/${branch}/reference/system-requirements.html
title: Windows system requirements
- caption: Install
entries:
- url: https://rocm.docs.amd.com/projects/install-on-linux/en/${branch}/
title: ROCm on Linux
- url: https://rocm.docs.amd.com/projects/install-on-windows/en/latest/
title: HIP SDK on Windows
- url: https://rocm.docs.amd.com/projects/radeon-ryzen/en/latest/index.html
title: ROCm on Radeon and Ryzen
- file: how-to/deep-learning-rocm.md
title: Deep learning frameworks
subtrees:
- entries:
- file: compatibility/ml-compatibility/pytorch-compatibility.rst
title: PyTorch compatibility
- file: compatibility/ml-compatibility/tensorflow-compatibility.rst
title: TensorFlow compatibility
- file: compatibility/ml-compatibility/jax-compatibility.rst
title: JAX compatibility
- file: compatibility/ml-compatibility/verl-compatibility.rst
title: verl compatibility
- file: compatibility/ml-compatibility/stanford-megatron-lm-compatibility.rst
title: Stanford Megatron-LM compatibility
- file: compatibility/ml-compatibility/dgl-compatibility.rst
title: DGL compatibility
- file: compatibility/ml-compatibility/megablocks-compatibility.rst
title: Megablocks compatibility
- file: compatibility/ml-compatibility/taichi-compatibility.rst
title: Taichi compatibility
- file: compatibility/ml-compatibility/ray-compatibility.rst
title: Ray compatibility
- file: compatibility/ml-compatibility/llama-cpp-compatibility.rst
title: llama.cpp compatibility
- file: compatibility/ml-compatibility/flashinfer-compatibility.rst
title: FlashInfer compatibility
- file: how-to/build-rocm.rst
title: Build ROCm from source
- caption: How to
entries:
- file: how-to/rocm-for-ai/index.rst
title: Use ROCm for AI
subtrees:
- entries:
- file: how-to/rocm-for-ai/install.rst
- file: install/rocm
title: Installation
- file: how-to/rocm-for-ai/system-setup/index.rst
title: System setup
entries:
- file: how-to/rocm-for-ai/system-setup/prerequisite-system-validation.rst
title: System validation
- file: how-to/rocm-for-ai/system-setup/multi-node-setup.rst
title: Multi-node setup
- file: how-to/rocm-for-ai/system-setup/system-health-check.rst
title: System health benchmarks
- file: how-to/rocm-for-ai/training/index.rst
title: Training
subtrees:
- entries:
- file: how-to/rocm-for-ai/training/benchmark-docker/primus-megatron.rst
title: Train a model with Primus and Megatron-LM
- file: how-to/rocm-for-ai/training/benchmark-docker/primus-pytorch.rst
title: Train a model with Primus and PyTorch
- file: how-to/rocm-for-ai/training/benchmark-docker/jax-maxtext.rst
title: Train a model with JAX MaxText
- file: how-to/rocm-for-ai/training/benchmark-docker/mpt-llm-foundry
title: Train a model with LLM Foundry
- file: how-to/rocm-for-ai/training/scale-model-training.rst
title: Scale model training
- url: https://github.com/ROCm/TheRock
title: Build from source
- caption: ROCm for AI
entries:
- file: install/pytorch-comfyui
title: Install PyTorch and ComfyUI
# - url: https://rocm.docs.amd.com/projects/install-on-linux/en/${branch}/
# title: ROCm on Linux
# - url: https://rocm.docs.amd.com/projects/install-on-windows/en/latest/
# title: HIP SDK on Windows
# - url: https://rocm.docs.amd.com/projects/radeon-ryzen/en/latest/index.html
# title: ROCm on Radeon and Ryzen
# - file: how-to/deep-learning-rocm.md
# title: Deep learning frameworks
# subtrees:
# - entries:
# - file: compatibility/ml-compatibility/pytorch-compatibility.rst
# title: PyTorch compatibility
# - file: compatibility/ml-compatibility/tensorflow-compatibility.rst
# title: TensorFlow compatibility
# - file: compatibility/ml-compatibility/jax-compatibility.rst
# title: JAX compatibility
# - file: compatibility/ml-compatibility/verl-compatibility.rst
# title: verl compatibility
# - file: compatibility/ml-compatibility/stanford-megatron-lm-compatibility.rst
# title: Stanford Megatron-LM compatibility
# - file: compatibility/ml-compatibility/dgl-compatibility.rst
# title: DGL compatibility
# - file: compatibility/ml-compatibility/megablocks-compatibility.rst
# title: Megablocks compatibility
# - file: compatibility/ml-compatibility/taichi-compatibility.rst
# title: Taichi compatibility
# - file: compatibility/ml-compatibility/ray-compatibility.rst
# title: Ray compatibility
# - file: compatibility/ml-compatibility/llama-cpp-compatibility.rst
# title: llama.cpp compatibility
# - file: compatibility/ml-compatibility/flashinfer-compatibility.rst
# title: FlashInfer compatibility
- file: how-to/rocm-for-ai/fine-tuning/index.rst
title: Fine-tuning LLMs
subtrees:
- entries:
- file: how-to/rocm-for-ai/fine-tuning/overview.rst
title: Conceptual overview
- file: how-to/rocm-for-ai/fine-tuning/fine-tuning-and-inference.rst
title: Fine-tuning
subtrees:
- entries:
- file: how-to/rocm-for-ai/fine-tuning/single-gpu-fine-tuning-and-inference.rst
title: Use a single accelerator
- file: how-to/rocm-for-ai/fine-tuning/multi-gpu-fine-tuning-and-inference.rst
title: Use multiple accelerators
# - caption: How to
# entries:
# - file: how-to/rocm-for-ai/index.rst
# title: Use ROCm for AI
# subtrees:
# - entries:
# - file: how-to/rocm-for-ai/install.rst
# title: Installation
# - file: how-to/rocm-for-ai/system-setup/index.rst
# title: System setup
# entries:
# - file: how-to/rocm-for-ai/system-setup/prerequisite-system-validation.rst
# title: System validation
# - file: how-to/rocm-for-ai/system-setup/multi-node-setup.rst
# title: Multi-node setup
# - file: how-to/rocm-for-ai/system-setup/system-health-check.rst
# title: System health benchmarks
# - file: how-to/rocm-for-ai/training/index.rst
# title: Training
# subtrees:
# - entries:
# - file: how-to/rocm-for-ai/training/benchmark-docker/primus-megatron.rst
# title: Train a model with Primus and Megatron-LM
# - file: how-to/rocm-for-ai/training/benchmark-docker/primus-pytorch.rst
# title: Train a model with Primus and PyTorch
# - file: how-to/rocm-for-ai/training/benchmark-docker/jax-maxtext.rst
# title: Train a model with JAX MaxText
# - file: how-to/rocm-for-ai/training/benchmark-docker/mpt-llm-foundry
# title: Train a model with LLM Foundry
# - file: how-to/rocm-for-ai/training/scale-model-training.rst
# title: Scale model training
#
# - file: how-to/rocm-for-ai/fine-tuning/index.rst
# title: Fine-tuning LLMs
# subtrees:
# - entries:
# - file: how-to/rocm-for-ai/fine-tuning/overview.rst
# title: Conceptual overview
# - file: how-to/rocm-for-ai/fine-tuning/fine-tuning-and-inference.rst
# title: Fine-tuning
# subtrees:
# - entries:
# - file: how-to/rocm-for-ai/fine-tuning/single-gpu-fine-tuning-and-inference.rst
# title: Use a single accelerator
# - file: how-to/rocm-for-ai/fine-tuning/multi-gpu-fine-tuning-and-inference.rst
# title: Use multiple accelerators
#
# - file: how-to/rocm-for-ai/inference/index.rst
# title: Inference
# subtrees:
# - entries:
# - file: how-to/rocm-for-ai/inference/hugging-face-models.rst
# title: Run models from Hugging Face
# - file: how-to/rocm-for-ai/inference/llm-inference-frameworks.rst
# title: LLM inference frameworks
# - file: how-to/rocm-for-ai/inference/benchmark-docker/vllm.rst
# title: vLLM inference performance testing
# - file: how-to/rocm-for-ai/inference/benchmark-docker/pytorch-inference.rst
# title: PyTorch inference performance testing
# - file: how-to/rocm-for-ai/inference/benchmark-docker/sglang.rst
# title: SGLang inference performance testing
# - file: how-to/rocm-for-ai/inference/benchmark-docker/sglang-distributed.rst
# title: SGLang distributed inference with Mooncake
# - file: how-to/rocm-for-ai/inference/deploy-your-model.rst
# title: Deploy your model
#
# - file: how-to/rocm-for-ai/inference-optimization/index.rst
# title: Inference optimization
# subtrees:
# - entries:
# - file: how-to/rocm-for-ai/inference-optimization/model-quantization.rst
# - file: how-to/rocm-for-ai/inference-optimization/model-acceleration-libraries.rst
# - file: how-to/rocm-for-ai/inference-optimization/optimizing-with-composable-kernel.md
# title: Optimize with Composable Kernel
# - file: how-to/rocm-for-ai/inference-optimization/optimizing-triton-kernel.rst
# title: Optimize Triton kernels
# - file: how-to/rocm-for-ai/inference-optimization/profiling-and-debugging.rst
# title: Profile and debug
# - file: how-to/rocm-for-ai/inference-optimization/workload.rst
# title: Workload optimization
#
# - url: https://rocm.docs.amd.com/projects/ai-developer-hub/en/latest/
# title: AI tutorials
#
# - file: how-to/rocm-for-hpc/index.rst
# title: Use ROCm for HPC
# - file: how-to/system-optimization/index.rst
# title: System optimization
# - file: how-to/gpu-performance/mi300x.rst
# title: AMD Instinct MI300X performance guides
# - file: how-to/system-debugging.md
# - file: conceptual/compiler-topics.md
# title: Use advanced compiler features
# subtrees:
# - entries:
# - url: https://rocm.docs.amd.com/projects/llvm-project/en/latest/index.html
# title: ROCm compiler infrastructure
# - url: https://rocm.docs.amd.com/projects/llvm-project/en/latest/conceptual/using-gpu-sanitizer.html
# title: Use AddressSanitizer
# - url: https://rocm.docs.amd.com/projects/llvm-project/en/latest/conceptual/openmp.html
# title: OpenMP support
# - file: how-to/setting-cus
# title: Set the number of CUs
# - file: how-to/Bar-Memory.rst
# title: Troubleshoot BAR access limitation
# - url: https://github.com/amd/rocm-examples
# title: ROCm examples
#
# - caption: Conceptual
# entries:
# - file: conceptual/gpu-arch.md
# title: GPU architecture overview
# subtrees:
# - entries:
# - file: conceptual/gpu-arch/mi300.md
# title: MI300 microarchitecture
# subtrees:
# - entries:
# - url: https://www.amd.com/content/dam/amd/en/documents/instinct-tech-docs/instruction-set-architectures/amd-instinct-mi300-cdna3-instruction-set-architecture.pdf
# title: AMD Instinct MI300/CDNA3 ISA
# - url: https://www.amd.com/content/dam/amd/en/documents/instinct-tech-docs/white-papers/amd-cdna-3-white-paper.pdf
# title: White paper
# - file: conceptual/gpu-arch/mi300-mi200-performance-counters.rst
# title: MI300 and MI200 performance counters
# - file: conceptual/gpu-arch/mi350-performance-counters.rst
# title: MI350 series performance counters
# - file: conceptual/gpu-arch/mi250.md
# title: MI250 microarchitecture
# subtrees:
# - entries:
# - url: https://www.amd.com/system/files/TechDocs/instinct-mi200-cdna2-instruction-set-architecture.pdf
# title: AMD Instinct MI200/CDNA2 ISA
# - url: https://www.amd.com/content/dam/amd/en/documents/instinct-business-docs/white-papers/amd-cdna2-white-paper.pdf
# title: White paper
# - file: conceptual/gpu-arch/mi100.md
# title: MI100 microarchitecture
# subtrees:
# - entries:
# - url: https://www.amd.com/system/files/TechDocs/instinct-mi100-cdna1-shader-instruction-set-architecture%C2%A0.pdf
# title: AMD Instinct MI100/CDNA1 ISA
# - url: https://www.amd.com/content/dam/amd/en/documents/instinct-business-docs/white-papers/amd-cdna-white-paper.pdf
# title: White paper
# - file: conceptual/file-reorg.md
# title: File structure (Linux FHS)
# - file: conceptual/gpu-isolation.md
# title: GPU isolation techniques
# - file: conceptual/cmake-packages.rst
# title: Using CMake
# - file: conceptual/ai-pytorch-inception.md
# title: Inception v3 with PyTorch
#
# - caption: Reference
# entries:
# - file: reference/api-libraries.md
# title: ROCm libraries
# - file: reference/rocm-tools.md
# title: ROCm tools, compilers, and runtimes
# - file: reference/gpu-arch-specs.rst
# - file: reference/gpu-atomics-operation.rst
# - file: reference/precision-support.rst
# title: Data types and precision support
# - file: reference/graph-safe-support.rst
# title: Graph safe support
- file: how-to/rocm-for-ai/inference/index.rst
title: Inference
subtrees:
- entries:
- file: how-to/rocm-for-ai/inference/hugging-face-models.rst
title: Run models from Hugging Face
- file: how-to/rocm-for-ai/inference/llm-inference-frameworks.rst
title: LLM inference frameworks
- file: how-to/rocm-for-ai/inference/benchmark-docker/vllm.rst
title: vLLM inference performance testing
- file: how-to/rocm-for-ai/inference/benchmark-docker/pytorch-inference.rst
title: PyTorch inference performance testing
- file: how-to/rocm-for-ai/inference/benchmark-docker/sglang.rst
title: SGLang inference performance testing
- file: how-to/rocm-for-ai/inference/benchmark-docker/sglang-distributed.rst
title: SGLang distributed inference with Mooncake
- file: how-to/rocm-for-ai/inference/deploy-your-model.rst
title: Deploy your model
- file: how-to/rocm-for-ai/inference-optimization/index.rst
title: Inference optimization
subtrees:
- entries:
- file: how-to/rocm-for-ai/inference-optimization/model-quantization.rst
- file: how-to/rocm-for-ai/inference-optimization/model-acceleration-libraries.rst
- file: how-to/rocm-for-ai/inference-optimization/optimizing-with-composable-kernel.md
title: Optimize with Composable Kernel
- file: how-to/rocm-for-ai/inference-optimization/optimizing-triton-kernel.rst
title: Optimize Triton kernels
- file: how-to/rocm-for-ai/inference-optimization/profiling-and-debugging.rst
title: Profile and debug
- file: how-to/rocm-for-ai/inference-optimization/workload.rst
title: Workload optimization
- url: https://rocm.docs.amd.com/projects/ai-developer-hub/en/latest/
title: AI tutorials
- file: how-to/rocm-for-hpc/index.rst
title: Use ROCm for HPC
- file: how-to/system-optimization/index.rst
title: System optimization
- file: how-to/gpu-performance/mi300x.rst
title: AMD Instinct MI300X performance guides
- file: how-to/system-debugging.md
- file: conceptual/compiler-topics.md
title: Use advanced compiler features
subtrees:
- entries:
- url: https://rocm.docs.amd.com/projects/llvm-project/en/latest/index.html
title: ROCm compiler infrastructure
- url: https://rocm.docs.amd.com/projects/llvm-project/en/latest/conceptual/using-gpu-sanitizer.html
title: Use AddressSanitizer
- url: https://rocm.docs.amd.com/projects/llvm-project/en/latest/conceptual/openmp.html
title: OpenMP support
- file: how-to/setting-cus
title: Set the number of CUs
- file: how-to/Bar-Memory.rst
title: Troubleshoot BAR access limitation
- url: https://github.com/amd/rocm-examples
title: ROCm examples
- caption: Conceptual
entries:
- file: conceptual/gpu-arch.md
title: GPU architecture overview
subtrees:
- entries:
- file: conceptual/gpu-arch/mi300.md
title: MI300 microarchitecture
subtrees:
- entries:
- url: https://www.amd.com/content/dam/amd/en/documents/instinct-tech-docs/instruction-set-architectures/amd-instinct-mi300-cdna3-instruction-set-architecture.pdf
title: AMD Instinct MI300/CDNA3 ISA
- url: https://www.amd.com/content/dam/amd/en/documents/instinct-tech-docs/white-papers/amd-cdna-3-white-paper.pdf
title: White paper
- file: conceptual/gpu-arch/mi300-mi200-performance-counters.rst
title: MI300 and MI200 performance counters
- file: conceptual/gpu-arch/mi350-performance-counters.rst
title: MI350 series performance counters
- file: conceptual/gpu-arch/mi250.md
title: MI250 microarchitecture
subtrees:
- entries:
- url: https://www.amd.com/system/files/TechDocs/instinct-mi200-cdna2-instruction-set-architecture.pdf
title: AMD Instinct MI200/CDNA2 ISA
- url: https://www.amd.com/content/dam/amd/en/documents/instinct-business-docs/white-papers/amd-cdna2-white-paper.pdf
title: White paper
- file: conceptual/gpu-arch/mi100.md
title: MI100 microarchitecture
subtrees:
- entries:
- url: https://www.amd.com/system/files/TechDocs/instinct-mi100-cdna1-shader-instruction-set-architecture%C2%A0.pdf
title: AMD Instinct MI100/CDNA1 ISA
- url: https://www.amd.com/content/dam/amd/en/documents/instinct-business-docs/white-papers/amd-cdna-white-paper.pdf
title: White paper
- file: conceptual/file-reorg.md
title: File structure (Linux FHS)
- file: conceptual/gpu-isolation.md
title: GPU isolation techniques
- file: conceptual/cmake-packages.rst
title: Using CMake
- file: conceptual/ai-pytorch-inception.md
title: Inception v3 with PyTorch
- caption: Reference
entries:
- file: reference/api-libraries.md
title: ROCm libraries
- file: reference/rocm-tools.md
title: ROCm tools, compilers, and runtimes
- file: reference/gpu-arch-specs.rst
- file: reference/gpu-atomics-operation.rst
- file: reference/precision-support.rst
title: Data types and precision support
- file: reference/graph-safe-support.rst
title: Graph safe support
- caption: Contribute
entries:
- file: contribute/contributing.md
title: Contributing to the ROCm documentation
subtrees:
- entries:
- file: contribute/toolchain.md
title: ROCm documentation toolchain
- file: contribute/building.md
- file: contribute/feedback.md
title: Providing feedback about the ROCm documentation
- file: about/license.md
title: ROCm licenses
# - caption: Contribute
# entries:
# - file: contribute/contributing.md
# title: Contributing to the ROCm documentation
# subtrees:
# - entries:
# - file: contribute/toolchain.md
# title: ROCm documentation toolchain
# - file: contribute/building.md
# - file: contribute/feedback.md
# title: Providing feedback about the ROCm documentation
# - file: about/license.md
# title: ROCm licenses

View File

@@ -1,10 +1,10 @@
/* Override PyData Sphinx Theme default colors */
html[data-theme='light'] {
--pst-color-table-row-hover-bg: #E2E8F0;
html[data-theme="light"] {
--pst-color-table-row-hover-bg: #e2e8f0;
}
html[data-theme='dark'] {
--pst-color-table-row-hover-bg: #1E293B;
html[data-theme="dark"] {
--pst-color-table-row-hover-bg: #1e293b;
}
a svg {
@@ -14,8 +14,3 @@ a svg {
a svg:hover {
color: var(--pst-color-link-hover);
}
/* Adds container for big tables, used for Compatibility Matrix */
.format-big-table {
white-space: nowrap;
}

View File

@@ -16,111 +16,253 @@
#rocm-rn-components a svg:hover {
color: var(--pst-color-link-hover);
}
#rocm-rn-components .tbody-reverse-zebra tr:nth-child(2n + 1) td {
#rocm-rn-components .tbody-reverse-zebra tr:nth-child(2n+1) td {
background-color: var(--pst-color-table-row-zebra-high-bg);
}
#rocm-rn-components .tbody-reverse-zebra tr:nth-child(2n) td {
background-color: var(--pst-color-table-row-zebra-low-bg);
}
#rocm-rn-components:has(tbody.rocm-components-libs th[rowspan]:first-of-type:hover) .rocm-components-libs,
#rocm-rn-components:has(tbody.rocm-components-libs th[rowspan]:first-of-type:hover) .rocm-components-libs td,
#rocm-rn-components:has(tbody.rocm-components-libs th[rowspan]:first-of-type:hover) tbody.rocm-components-libs th {
#rocm-rn-components:has(
tbody.rocm-components-libs th[rowspan]:first-of-type:hover
)
.rocm-components-libs,
#rocm-rn-components:has(
tbody.rocm-components-libs th[rowspan]:first-of-type:hover
)
.rocm-components-libs
td,
#rocm-rn-components:has(
tbody.rocm-components-libs th[rowspan]:first-of-type:hover
)
tbody.rocm-components-libs
th {
background-color: var(--pst-color-table-row-hover-bg);
}
#rocm-rn-components:has(tbody.rocm-components-tools th[rowspan]:first-of-type:hover) .rocm-components-tools,
#rocm-rn-components:has(tbody.rocm-components-tools th[rowspan]:first-of-type:hover) .rocm-components-tools td,
#rocm-rn-components:has(tbody.rocm-components-tools th[rowspan]:first-of-type:hover) tbody.rocm-components-tools th {
#rocm-rn-components:has(
tbody.rocm-components-tools th[rowspan]:first-of-type:hover
)
.rocm-components-tools,
#rocm-rn-components:has(
tbody.rocm-components-tools th[rowspan]:first-of-type:hover
)
.rocm-components-tools
td,
#rocm-rn-components:has(
tbody.rocm-components-tools th[rowspan]:first-of-type:hover
)
tbody.rocm-components-tools
th {
background-color: var(--pst-color-table-row-hover-bg);
}
#rocm-rn-components:has(tbody.rocm-components-compilers th[rowspan]:first-of-type:hover) .rocm-components-compilers,
#rocm-rn-components:has(tbody.rocm-components-compilers th[rowspan]:first-of-type:hover) .rocm-components-compilers td {
#rocm-rn-components:has(
tbody.rocm-components-compilers th[rowspan]:first-of-type:hover
)
.rocm-components-compilers,
#rocm-rn-components:has(
tbody.rocm-components-compilers th[rowspan]:first-of-type:hover
)
.rocm-components-compilers
td {
background-color: var(--pst-color-table-row-hover-bg);
}
#rocm-rn-components:has(tbody.rocm-components-runtimes th[rowspan]:first-of-type:hover) .rocm-components-runtimes,
#rocm-rn-components:has(tbody.rocm-components-runtimes th[rowspan]:first-of-type:hover) .rocm-components-runtimes td {
#rocm-rn-components:has(
tbody.rocm-components-runtimes th[rowspan]:first-of-type:hover
)
.rocm-components-runtimes,
#rocm-rn-components:has(
tbody.rocm-components-runtimes th[rowspan]:first-of-type:hover
)
.rocm-components-runtimes
td {
background-color: var(--pst-color-table-row-hover-bg);
}
#rocm-rn-components:has(tbody.rocm-components-tools th[rowspan]:first-of-type:hover) .rocm-components-tools td {
#rocm-rn-components:has(
tbody.rocm-components-tools th[rowspan]:first-of-type:hover
)
.rocm-components-tools
td {
background-color: var(--pst-color-table-row-hover-bg);
}
#rocm-rn-components:has(tbody.rocm-components-compilers th[rowspan]:first-of-type:hover) .rocm-components-compilers td {
#rocm-rn-components:has(
tbody.rocm-components-compilers th[rowspan]:first-of-type:hover
)
.rocm-components-compilers
td {
background-color: var(--pst-color-table-row-hover-bg);
}
#rocm-rn-components:has(tbody.rocm-components-runtimes th[rowspan]:first-of-type:hover) .rocm-components-runtimes td {
#rocm-rn-components:has(
tbody.rocm-components-runtimes th[rowspan]:first-of-type:hover
)
.rocm-components-runtimes
td {
background-color: var(--pst-color-table-row-hover-bg);
}
#rocm-rn-components:has(tbody.rocm-components-ml th[rowspan]:nth-of-type(2):hover) .rocm-components-ml td,
#rocm-rn-components:has(tbody.rocm-components-ml th[rowspan]:nth-of-type(2):hover) .rocm-components-libs th:first-of-type {
#rocm-rn-components:has(
tbody.rocm-components-ml th[rowspan]:nth-of-type(2):hover
)
.rocm-components-ml
td,
#rocm-rn-components:has(
tbody.rocm-components-ml th[rowspan]:nth-of-type(2):hover
)
.rocm-components-libs
th:first-of-type {
background-color: var(--pst-color-table-row-hover-bg);
}
#rocm-rn-components:has(tbody.rocm-components-communication th[rowspan]:nth-of-type(2):hover) .rocm-components-communication td,
#rocm-rn-components:has(tbody.rocm-components-communication th[rowspan]:nth-of-type(2):hover) .rocm-components-libs th:first-of-type {
#rocm-rn-components:has(
tbody.rocm-components-communication th[rowspan]:nth-of-type(2):hover
)
.rocm-components-communication
td,
#rocm-rn-components:has(
tbody.rocm-components-communication th[rowspan]:nth-of-type(2):hover
)
.rocm-components-libs
th:first-of-type {
background-color: var(--pst-color-table-row-hover-bg);
}
#rocm-rn-components:has(tbody.rocm-components-math th[rowspan]:nth-of-type(2):hover) .rocm-components-math td,
#rocm-rn-components:has(tbody.rocm-components-math th[rowspan]:nth-of-type(2):hover) .rocm-components-libs th:first-of-type {
#rocm-rn-components:has(
tbody.rocm-components-math th[rowspan]:nth-of-type(2):hover
)
.rocm-components-math
td,
#rocm-rn-components:has(
tbody.rocm-components-math th[rowspan]:nth-of-type(2):hover
)
.rocm-components-libs
th:first-of-type {
background-color: var(--pst-color-table-row-hover-bg);
}
#rocm-rn-components:has(tbody.rocm-components-primitives th[rowspan]:nth-of-type(2):hover) .rocm-components-primitives td,
#rocm-rn-components:has(tbody.rocm-components-primitives th[rowspan]:nth-of-type(2):hover) .rocm-components-libs th:first-of-type {
#rocm-rn-components:has(
tbody.rocm-components-primitives th[rowspan]:nth-of-type(2):hover
)
.rocm-components-primitives
td,
#rocm-rn-components:has(
tbody.rocm-components-primitives th[rowspan]:nth-of-type(2):hover
)
.rocm-components-libs
th:first-of-type {
background-color: var(--pst-color-table-row-hover-bg);
}
#rocm-rn-components:has(tbody.rocm-components-dev th[rowspan]:nth-of-type(2):hover) .rocm-components-dev td,
#rocm-rn-components:has(tbody.rocm-components-dev th[rowspan]:nth-of-type(2):hover) .rocm-components-tools th:first-of-type {
#rocm-rn-components:has(
tbody.rocm-components-dev th[rowspan]:nth-of-type(2):hover
)
.rocm-components-dev
td,
#rocm-rn-components:has(
tbody.rocm-components-dev th[rowspan]:nth-of-type(2):hover
)
.rocm-components-tools
th:first-of-type {
background-color: var(--pst-color-table-row-hover-bg);
}
#rocm-rn-components:has(tbody.rocm-components-perf th[rowspan]:nth-of-type(2):hover) .rocm-components-perf td,
#rocm-rn-components:has(tbody.rocm-components-perf th[rowspan]:nth-of-type(2):hover) .rocm-components-tools th:first-of-type {
#rocm-rn-components:has(
tbody.rocm-components-perf th[rowspan]:nth-of-type(2):hover
)
.rocm-components-perf
td,
#rocm-rn-components:has(
tbody.rocm-components-perf th[rowspan]:nth-of-type(2):hover
)
.rocm-components-tools
th:first-of-type {
background-color: var(--pst-color-table-row-hover-bg);
}
#rocm-rn-components:has(tbody.rocm-components-system th[rowspan]:nth-of-type(2):hover) .rocm-components-system td,
#rocm-rn-components:has(tbody.rocm-components-system th[rowspan]:nth-of-type(2):hover) .rocm-components-tools th:first-of-type {
#rocm-rn-components:has(
tbody.rocm-components-system th[rowspan]:nth-of-type(2):hover
)
.rocm-components-system
td,
#rocm-rn-components:has(
tbody.rocm-components-system th[rowspan]:nth-of-type(2):hover
)
.rocm-components-tools
th:first-of-type {
background-color: var(--pst-color-table-row-hover-bg);
}
#rocm-rn-components:has(tbody.rocm-components-ml td:hover) .rocm-components-ml th,
#rocm-rn-components:has(tbody.rocm-components-ml td:hover) .rocm-components-libs th:first-of-type,
#rocm-rn-components:has(tbody.rocm-components-ml td:hover)
.rocm-components-ml
th,
#rocm-rn-components:has(tbody.rocm-components-ml td:hover)
.rocm-components-libs
th:first-of-type,
#rocm-rn-components:has(tbody.rocm-components-ml td:hover) tr:hover > td {
background-color: var(--pst-color-table-row-hover-bg);
}
#rocm-rn-components:has(tbody.rocm-components-communication td:hover) .rocm-components-communication th,
#rocm-rn-components:has(tbody.rocm-components-communication td:hover) .rocm-components-libs th:first-of-type,
#rocm-rn-components:has(tbody.rocm-components-communication td:hover) tr:hover > td {
#rocm-rn-components:has(tbody.rocm-components-communication td:hover)
.rocm-components-communication
th,
#rocm-rn-components:has(tbody.rocm-components-communication td:hover)
.rocm-components-libs
th:first-of-type,
#rocm-rn-components:has(tbody.rocm-components-communication td:hover)
tr:hover
> td {
background-color: var(--pst-color-table-row-hover-bg);
}
#rocm-rn-components:has(tbody.rocm-components-math td:hover) .rocm-components-math th,
#rocm-rn-components:has(tbody.rocm-components-math td:hover) .rocm-components-libs th:first-of-type,
#rocm-rn-components:has(tbody.rocm-components-math td:hover)
.rocm-components-math
th,
#rocm-rn-components:has(tbody.rocm-components-math td:hover)
.rocm-components-libs
th:first-of-type,
#rocm-rn-components:has(tbody.rocm-components-math td:hover) tr:hover > td {
background-color: var(--pst-color-table-row-hover-bg);
}
#rocm-rn-components:has(tbody.rocm-components-primitives td:hover) .rocm-components-primitives th,
#rocm-rn-components:has(tbody.rocm-components-primitives td:hover) .rocm-components-libs th:first-of-type,
#rocm-rn-components:has(tbody.rocm-components-primitives td:hover) tr:hover > td {
#rocm-rn-components:has(tbody.rocm-components-primitives td:hover)
.rocm-components-primitives
th,
#rocm-rn-components:has(tbody.rocm-components-primitives td:hover)
.rocm-components-libs
th:first-of-type,
#rocm-rn-components:has(tbody.rocm-components-primitives td:hover)
tr:hover
> td {
background-color: var(--pst-color-table-row-hover-bg);
}
#rocm-rn-components:has(tbody.rocm-components-dev td:hover) .rocm-components-dev th,
#rocm-rn-components:has(tbody.rocm-components-dev td:hover) .rocm-components-tools th:first-of-type,
#rocm-rn-components:has(tbody.rocm-components-dev td:hover)
.rocm-components-dev
th,
#rocm-rn-components:has(tbody.rocm-components-dev td:hover)
.rocm-components-tools
th:first-of-type,
#rocm-rn-components:has(tbody.rocm-components-dev td:hover) tr:hover > td {
background-color: var(--pst-color-table-row-hover-bg);
}
#rocm-rn-components:has(tbody.rocm-components-perf td:hover) .rocm-components-perf th,
#rocm-rn-components:has(tbody.rocm-components-perf td:hover) .rocm-components-tools th:first-of-type,
#rocm-rn-components:has(tbody.rocm-components-perf td:hover)
.rocm-components-perf
th,
#rocm-rn-components:has(tbody.rocm-components-perf td:hover)
.rocm-components-tools
th:first-of-type,
#rocm-rn-components:has(tbody.rocm-components-perf td:hover) tr:hover > td {
background-color: var(--pst-color-table-row-hover-bg);
}
#rocm-rn-components:has(tbody.rocm-components-system td:hover) .rocm-components-system th,
#rocm-rn-components:has(tbody.rocm-components-system td:hover) .rocm-components-tools th:first-of-type,
#rocm-rn-components:has(tbody.rocm-components-system td:hover)
.rocm-components-system
th,
#rocm-rn-components:has(tbody.rocm-components-system td:hover)
.rocm-components-tools
th:first-of-type,
#rocm-rn-components:has(tbody.rocm-components-system td:hover) tr:hover > td {
background-color: var(--pst-color-table-row-hover-bg);
}
#rocm-rn-components:has(tbody.rocm-components-compilers td:hover) .rocm-components-compilers th:first-of-type,
#rocm-rn-components:has(tbody.rocm-components-compilers td:hover) tr:hover > td {
#rocm-rn-components:has(tbody.rocm-components-compilers td:hover)
.rocm-components-compilers
th:first-of-type,
#rocm-rn-components:has(tbody.rocm-components-compilers td:hover)
tr:hover
> td {
background-color: var(--pst-color-table-row-hover-bg);
}
#rocm-rn-components:has(tbody.rocm-components-runtimes td:hover) .rocm-components-runtimes th:first-of-type,
#rocm-rn-components:has(tbody.rocm-components-runtimes td:hover)
.rocm-components-runtimes
th:first-of-type,
#rocm-rn-components:has(tbody.rocm-components-runtimes td:hover) tr:hover > td {
background-color: var(--pst-color-table-row-hover-bg);
}