distros/skills/rocm/SKILL.md
AMD ROCm runtime, OpenCL, and GPU compute support via system packages. Use when working with AMD GPU computing, ROCm, HIP, OpenCL, or AMD GPU passthrough in containers.
npx skillsauth add overthinkos/overthink-plugins rocmInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
| Property | Value |
|----------|-------|
| Install files | charly.yml |
| Variable | Value |
|----------|-------|
| ROCM_PATH | /usr |
| Variable | Source | Example |
|----------|--------|---------|
| HSA_OVERRIDE_GFX_VERSION | KFD topology sysfs | 10.3.0 (RDNA2), 11.0.0 (RDNA3) |
| DRINODE | DRM render node enumeration | /dev/dri/renderD128 (typical), /dev/dri/renderD129 (multi-GPU) |
Both variables are not baked into the candy — they are auto-detected from host state at runtime and injected as container environment variables via appendAutoDetectedEnv() in charly/devices.go. The same function is called by charly config, charly start, and charly shell, so interactive shells and deployed services see the identical env set.
HSA_OVERRIDE_GFX_VERSION is read from /sys/class/kfd/kfd/topology/nodes/*/properties (gfx_target_version field).DRINODE is selected by walking /dev/dri/renderD* and picking the node that matches the AMD PCI device exposed to the container.Override either with -e HSA_OVERRIDE_GFX_VERSION=X.Y.Z or -e DRINODE=/dev/dri/renderD129. See /charly-core:charly-doctor (Hardware Detection) for how the probe runs on the host side, and /charly-distros:nvidia (DRINODE Auto-Injection) for the NVIDIA counterpart using the same mechanism.
security:
group_add:
- keep-groups
Uses keep-groups to preserve host supplementary groups (video, render) inside the container. This is the standard approach across all candies -- Podman's keep-groups is mutually exclusive with explicit group names.
RPM (Fedora system repos): rocm-hip-runtime, rocm-opencl, rocm-clinfo, rocm-smi
AMD GPU support requires:
/dev/kfd device (auto-detected by charly)/dev/dri/renderD* render nodes (auto-detected)video and render groups (charly udev status to check)amdgpu kernel driver loadedRun charly doctor to verify detection. Run charly udev install to set up device permissions.
# charly.yml -- standalone AMD GPU image
my-amd-app:
base: fedora
candy:
- rocm
- my-app
# Check AMD GPU detected on host
charly doctor | grep "AMD GPU"
# Verify inside container
charly shell my-amd-app -c "clinfo --list"
charly shell my-amd-app -c "rocm-smi"
charly shell my-amd-app -c "echo \$HSA_OVERRIDE_GFX_VERSION"
/charly-distros:nvidia -- NVIDIA GPU counterpart (runtime libs + CDI), shares appendAutoDetectedEnv() DRINODE injection/charly-distros:cuda -- NVIDIA CUDA toolkit (stacked on nvidia)/charly-languages:python-ml -- ML Python environment (currently depends on cuda; ROCm equivalent is a future direction)/charly-core:charly-doctor -- Host AMD GPU detection (/dev/kfd, render nodes, driver status)/charly-core:shell -- Interactive shells receive the same auto-detected HSA_OVERRIDE_GFX_VERSION + DRINODE envs/charly-automation:udev -- Device permission management for /dev/kfd and /dev/dri/renderD*/charly-core:charly-config -- Runtime GPU env injection at deployment time (same auto-detect path)/charly-core:start -- Runtime GPU env injection at service start timeNot directly used in any current box definition. Available as a standalone candy for AMD GPU support. The NVIDIA base image (/charly-distros:nvidia) is the currently-shipped GPU box; an AMD counterpart can be composed by substituting this candy.
Use when the user asks about:
/dev/kfd device accessHSA_OVERRIDE_GFX_VERSION configuration/charly-image:layer — candy authoring reference (charly.yml schema, task verbs, service declarations)/charly-eval:eval — declarative testing (eval: block, charly eval box, charly eval live)tools
OpenCharly CLI (charly) binary installed into container/VM images for in-container use. Use when working with charly binary deployment inside containers, native D-Bus support, or the full charly toolchain (charly binary + virtualization + gocryptfs + socat).
development
Operator CachyOS workstation profile — a kind:local template + target:local deploy that installs the full dev stack (30 candies) onto a CachyOS host via ShellExecutor. Lives in the overthinkos/cachyos submodule. MUST be invoked before editing or applying the charly-cachyos workstation profile.
tools
Fedora box with the full charly toolchain using shared candies. Rootless-first — runs as uid=1000 with passwordless sudo (no root, no cap_add: ALL). Same candy list as charly-arch. Includes NVIDIA GPU runtime. MUST be invoked before building, deploying, configuring, or troubleshooting the charly-fedora box.
tools
Arch Linux box with the full charly toolchain. Rootless-first — runs as uid=1000 with passwordless sudo (no root, no cap_add: ALL). Composes /charly-coder:charly-mcp so the box is reachable as an MCP gateway on port 18765. NVIDIA GPU runtime composed in. MUST be invoked before building, deploying, configuring, or troubleshooting the charly-arch box.