mirror of
https://github.com/ROCm/ROCm.git
synced 2026-01-08 22:28:06 -05:00
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:
1263
RELEASE.md
1263
RELEASE.md
File diff suppressed because it is too large
Load Diff
5
docs/compatibility/frameworks.rst
Normal file
5
docs/compatibility/frameworks.rst
Normal file
@@ -0,0 +1,5 @@
|
||||
**************************************
|
||||
Deep learning frameworks compatibility
|
||||
**************************************
|
||||
|
||||
Basdflkj; jaksldf;jkasl;d jkl;fdksalsdfhguieqwrasdf .asdf
|
||||
259
docs/conf.py
259
docs/conf.py
@@ -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
|
||||
|
||||
BIN
docs/data/comfyui-missing-models.png
Normal file
BIN
docs/data/comfyui-missing-models.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 47 KiB |
BIN
docs/data/comfyui.png
Normal file
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
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
BIN
docs/data/rocm-sdk-arch.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 46 KiB |
25
docs/extension/rocm_docs_custom/icon.py
Normal file
25
docs/extension/rocm_docs_custom/icon.py
Normal 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}
|
||||
277
docs/extension/rocm_docs_custom/selector.py
Normal file
277
docs/extension/rocm_docs_custom/selector.py
Normal 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}
|
||||
103
docs/extension/rocm_docs_custom/static/selector.css
Normal file
103
docs/extension/rocm_docs_custom/static/selector.css
Normal 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;
|
||||
}
|
||||
300
docs/extension/rocm_docs_custom/static/selector.js
Normal file
300
docs/extension/rocm_docs_custom/static/selector.js
Normal 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);
|
||||
35
docs/extension/rocm_docs_custom/static/table.css
Normal file
35
docs/extension/rocm_docs_custom/static/table.css
Normal 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;
|
||||
}
|
||||
9
docs/extension/rocm_docs_custom/table.py
Normal file
9
docs/extension/rocm_docs_custom/table.py
Normal 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}
|
||||
20
docs/extension/rocm_docs_custom/templates/selector-toc2.html
Normal file
20
docs/extension/rocm_docs_custom/templates/selector-toc2.html
Normal 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>
|
||||
30
docs/extension/rocm_docs_custom/utils.py
Normal file
30
docs/extension/rocm_docs_custom/utils.py
Normal 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 ""
|
||||
|
||||
@@ -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
89
docs/index.rst
Normal 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 high‑performance 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>`__, AMD’s 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 AMD’s open software stack for GPU‑accelerated 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 ROCm‑enabled HPC applications and deep learning
|
||||
frameworks such as PyTorch.
|
||||
|
||||
**Some key features:**
|
||||
|
||||
* **Open source** -- Transparent development driven by community feedback
|
||||
* **Cross‑platform** -- Supports Linux and Windows environments
|
||||
* **Comprehensive** -- End‑to‑end toolchain from compilers to libraries
|
||||
* **Performance‑focused** -- 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 user‑space experience across
|
||||
devices.
|
||||
|
||||
* **AMD Instinct GPUs** -- Purpose‑built for large‑scale 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.
|
||||
|
||||
What’s changing
|
||||
===============
|
||||
|
||||
ROCm is evolving to improve flexibility, maintainability, and
|
||||
use‑case alignment.
|
||||
|
||||
* **Leaner core** – The Core SDK focuses on essential runtime and development components.
|
||||
* **Use case‑specific expansions** – Optional domain‑specific 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.
|
||||
1054
docs/install/compatibility-matrix.md
Normal file
1054
docs/install/compatibility-matrix.md
Normal file
File diff suppressed because it is too large
Load Diff
21
docs/install/includes/1_rhel-10.0-tar-prerequisites.md
Normal file
21
docs/install/includes/1_rhel-10.0-tar-prerequisites.md
Normal 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.
|
||||
```
|
||||
27
docs/install/includes/1_rhel-10.0-wheel-prerequisites.md
Normal file
27
docs/install/includes/1_rhel-10.0-wheel-prerequisites.md
Normal 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.
|
||||
```
|
||||
22
docs/install/includes/1_rhel-9.6-tar-prerequisites.md
Normal file
22
docs/install/includes/1_rhel-9.6-tar-prerequisites.md
Normal 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.
|
||||
```
|
||||
28
docs/install/includes/1_rhel-9.6-wheel-prerequisites.md
Normal file
28
docs/install/includes/1_rhel-9.6-wheel-prerequisites.md
Normal 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.
|
||||
```
|
||||
15
docs/install/includes/1_ubuntu-22.04-wheel-prerequisites.md
Normal file
15
docs/install/includes/1_ubuntu-22.04-wheel-prerequisites.md
Normal 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.
|
||||
```
|
||||
15
docs/install/includes/1_ubuntu-24.04-wheel-prerequisites.md
Normal file
15
docs/install/includes/1_ubuntu-24.04-wheel-prerequisites.md
Normal 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.
|
||||
```
|
||||
9
docs/install/includes/1_ubuntu-tar-prerequisites.md
Normal file
9
docs/install/includes/1_ubuntu-tar-prerequisites.md
Normal 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.
|
||||
```
|
||||
6
docs/install/includes/1_windows-tar-prerequisites.md
Normal file
6
docs/install/includes/1_windows-tar-prerequisites.md
Normal 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).
|
||||
8
docs/install/includes/1_windows-wheel-prerequisites.md
Normal file
8
docs/install/includes/1_windows-wheel-prerequisites.md
Normal 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.
|
||||
6
docs/install/includes/2_rhel-instinct-install-kmd.md
Normal file
6
docs/install/includes/2_rhel-instinct-install-kmd.md
Normal 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.
|
||||
6
docs/install/includes/2_ubuntu-instinct-install-kmd.md
Normal file
6
docs/install/includes/2_ubuntu-instinct-install-kmd.md
Normal 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.
|
||||
20
docs/install/includes/3_tar-gfx1151-install-rocm.md
Normal file
20
docs/install/includes/3_tar-gfx1151-install-rocm.md
Normal 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
|
||||
```
|
||||
20
docs/install/includes/3_tar-gfx942-install-rocm.md
Normal file
20
docs/install/includes/3_tar-gfx942-install-rocm.md
Normal 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
|
||||
```
|
||||
20
docs/install/includes/3_tar-gfx950-install-rocm.md
Normal file
20
docs/install/includes/3_tar-gfx950-install-rocm.md
Normal 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
|
||||
```
|
||||
12
docs/install/includes/3_wheel-gfx1151-install-rocm.md
Normal file
12
docs/install/includes/3_wheel-gfx1151-install-rocm.md
Normal 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]"
|
||||
```
|
||||
12
docs/install/includes/3_wheel-gfx942-install-rocm-py311.md
Normal file
12
docs/install/includes/3_wheel-gfx942-install-rocm-py311.md
Normal 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]"
|
||||
```
|
||||
12
docs/install/includes/3_wheel-gfx942-install-rocm.md
Normal file
12
docs/install/includes/3_wheel-gfx942-install-rocm.md
Normal 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]"
|
||||
```
|
||||
12
docs/install/includes/3_wheel-gfx950-install-rocm-py311.md
Normal file
12
docs/install/includes/3_wheel-gfx950-install-rocm-py311.md
Normal 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]"
|
||||
```
|
||||
12
docs/install/includes/3_wheel-gfx950-install-rocm.md
Normal file
12
docs/install/includes/3_wheel-gfx950-install-rocm.md
Normal 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]"
|
||||
```
|
||||
47
docs/install/includes/3_windows-tar-install-rocm.md
Normal file
47
docs/install/includes/3_windows-tar-install-rocm.md
Normal 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
|
||||
````
|
||||
12
docs/install/includes/3_windows-wheel-install-rocm.md
Normal file
12
docs/install/includes/3_windows-wheel-install-rocm.md
Normal 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]"
|
||||
```
|
||||
55
docs/install/includes/4_linux-tar-post-install.md
Normal file
55
docs/install/includes/4_linux-tar-post-install.md
Normal 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]
|
||||
```
|
||||
|
||||
72
docs/install/includes/4_rhel-wheel-post-install.md
Normal file
72
docs/install/includes/4_rhel-wheel-post-install.md
Normal 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
|
||||
```
|
||||
````
|
||||
72
docs/install/includes/4_ubuntu-wheel-post-install.md
Normal file
72
docs/install/includes/4_ubuntu-wheel-post-install.md
Normal 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
|
||||
```
|
||||
````
|
||||
23
docs/install/includes/4_windows-tar-post-install.md
Normal file
23
docs/install/includes/4_windows-tar-post-install.md
Normal 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]
|
||||
```
|
||||
|
||||
50
docs/install/includes/4_windows-wheel-post-install.md
Normal file
50
docs/install/includes/4_windows-wheel-post-install.md
Normal 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
|
||||
```
|
||||
````
|
||||
5
docs/install/includes/5_tar-uninstall.md
Normal file
5
docs/install/includes/5_tar-uninstall.md
Normal file
@@ -0,0 +1,5 @@
|
||||
To uninstall ROCm, remove your installation directory.
|
||||
|
||||
```bash
|
||||
sudo rm -rf therock-tarball
|
||||
```
|
||||
11
docs/install/includes/5_wheel-linux-uninstall.md
Normal file
11
docs/install/includes/5_wheel-linux-uninstall.md
Normal 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
|
||||
```
|
||||
11
docs/install/includes/5_wheel-windows-uninstall.md
Normal file
11
docs/install/includes/5_wheel-windows-uninstall.md
Normal 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
|
||||
```
|
||||
18
docs/install/includes/5_windows-tar-uninstall.md
Normal file
18
docs/install/includes/5_windows-tar-uninstall.md
Normal 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).
|
||||
8
docs/install/includes/6_rhel-troubleshooting.md
Normal file
8
docs/install/includes/6_rhel-troubleshooting.md
Normal 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
|
||||
```
|
||||
9
docs/install/includes/6_ubuntu-troubleshooting.md
Normal file
9
docs/install/includes/6_ubuntu-troubleshooting.md
Normal 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
|
||||
```
|
||||
169
docs/install/pytorch-comfyui.rst
Normal file
169
docs/install/pytorch-comfyui.rst
Normal 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
441
docs/install/rocm.rst
Normal 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
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user