Skip to main content
skill CX Codex

quark-torch-llm-ptq — Claude Code skill: LLM PTQ with AMD Quark

Walks a PyTorch or Hugging Face model through AMD Quark post-training quantization: intake, plan, manifest, run.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add amd/skills --skill quark-torch-llm-ptq -a claude-code
Open on GitHub

What quark-torch-llm-ptq does

The skill runs one pass from model identification to quantized weights. It inspects the source first — a Hugging Face repo ID or a local directory — and reads only config.json, without loading weights. That produces model_analysis.json with the model type, loading hints and an estimate of how many linear layers can be quantized.

Then comes the plan: global scheme, optional KV-cache scheme, per-pattern overrides, exclusions, algorithm and calibration data. It lands in quant_plan.json, and the run command in run_manifest.yaml. The workflow stops at checkpoints, so quantization does not start until you confirm the analysis and the plan. Execution goes through quark-cli torch-llm-ptq from the amd-quark[cli] package.

You need Python 3.11 to 3.13, PyTorch 2.2 or newer matched to your accelerator, and datasets. The ROCm version and GPU architecture depend on the PyTorch build and the chosen scheme, so the skill asks you to record the actual runtime and the gfx... value from gcnArchName. It does not accept .onnx model inputs, and it will not fine-tune a model or patch Quark sources.

What it helps with

  • estimate how many linear layers of a model are quantizable
  • pick an FP8 or INT4 scheme for a given GPU and accuracy target
  • build reproducible artifacts before anything runs
  • catch a mismatched PyTorch build before the command fails
  • get a quantized model with config and tokenizer in the chosen directory

Example prompts for the agent

  • analyze meta-llama/Llama-3-8B and propose an INT4 quantization plan
  • write quant_plan.json and run_manifest.yaml for the local ./qwen-model folder with FP8
  • check the environment and show the quark-cli torch-llm-ptq command before running

How to install quark-torch-llm-ptq

1Skills CLI (Vercel)

npx skills add amd/skills --skill quark-torch-llm-ptq -a claude-code

2Manually: put the files in place

~/.claude/skills/quark-torch-llm-ptq/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/quark-torch-llm-ptq/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about quark-torch-llm-ptq

How do I install quark-torch-llm-ptq in Claude?

Run npx skills add amd/skills --skill quark-torch-llm-ptq -a claude-code. The skill lands at ~/.claude/skills/quark-torch-llm-ptq/SKILL.md.

What does quark-torch-llm-ptq do?

It runs post-training quantization for PyTorch or Hugging Face LLMs through AMD Quark: model analysis, a quantization plan, a run manifest and the quantized model itself.

Which models and schemes are supported?

Llama, Qwen, Mistral and similar transformers with FP8, INT4 or another Quark scheme. .onnx model inputs and ONNX PTQ are out of scope.

Source text

SKILL.md · MIT
---
name: quark-torch-llm-ptq
description: >
  Runs an end-to-end AMD Quark post-training quantization workflow for PyTorch /
  Hugging Face LLMs: inspect a Hub or local model, choose a quantization plan,
  create reproducible artifacts, request execution approval, and produce a
  quantized model. Applies to Llama, Qwen, Mistral, and similar transformer LLM
  requests involving FP8, INT4, or another Quark scheme. Does not handle .onnx
  model inputs or ONNX PTQ.
---

# Quark Torch PTQ

## Purpose

Take a PyTorch / Hugging Face LLM from model identification through confirmed
AMD Quark PTQ. Perform intake, planning, manifest generation, execution, and
output verification as one self-contained workflow.

This skill stops at the quantized model. It does not accept `.onnx` model input,
train or fine-tune a model, or modify Quark package/source files.

## Prerequisites

- Python 3.11 to 3.13, accelerator-matched PyTorch 2.2 or newer, `amd-quark[cli]`, and `datasets`.
- The required ROCm version and GPU architecture depend on the PyTorch build and selected quantization scheme. Record the actual runtime, GPU architecture (`gfx...` from `gcnArchName` on AMD), host kernel, and driver, and verify support for the confirmed plan.
- No container image is required. If running in a container, record its image name or digest when available and verify GPU device access.
- Inspect and preserve `HIP_VISIBLE_DEVICES`, `CUDA_VISIBLE_DEVICES`, `HSA_OVERRIDE_GFX_VERSION`, `PYTORCH_ROCM_ARCH`, and `PYTORCH_HIP_ALLOC_CONF`. Include any required changes to device visibility, architecture, or memory allocation in the confirmed plan.

## Inputs

- Model source: a Hugging Face repository ID or local model directory.
- Output directory.
- Quantization intent: requested precision/scheme, target hardware, accuracy
  priority, and optional calibration settings.
- Optional environment facts: Python, PyTorch, accelerator, available memory,
  installed `amd-quark`, and Transformers versions.

Do not require pre-existing workflow artifacts. Create all artifacts in the
user's working directory by following this skill's local references:

- [`references/model-intake.md`](references/model-intake.md)
- [`references/quant-plan.md`](references/quant-plan.md)
- [`references/environment.md`](references/environment.md)
- [`references/troubleshooting.md`](references/troubleshooting.md)

## Outputs

Produce these three artifacts before or during execution:

1. `model_analysis.json`, validated against
   [`references/contracts/model_analysis.schema.json`](references/contracts/model_analysis.schema.json).
2. `quant_plan.json`, validated against
   [`references/contracts/quant_plan.schema.json`](references/contracts/quant_plan.schema.json).
3. `run_manifest.yaml`, validated against
   [`references/contracts/run_manifest.schema.json`](references/contracts/run_manifest.schema.json).

The quantized model and its configuration/tokenizer files are written under the
confirmed output directory. Record actual files and the final status in the
manifest.

## Interaction Flow

Always complete the following four steps in order. Show concrete facts,
artifacts, and commands. Stop at every checkpoint and wait for the user.

### Step 1 — Model intake

1. Confirm whether the model source is local or remote. For a local source,
   resolve it to an absolute path and verify that the directory and
   `config.json` exist. For a remote source, preserve the repository ID.
2. Follow `references/model-intake.md`. Read configuration only; do not load
   model weights during intake.
3. Determine `model_type`, architecture/loading hints, hidden-layer facts,
   multimodal or MoE signals, default exclusions, compatibility risks, and a
   defensible estimate of quantizable linear layers.
4. Write schema-valid `model_analysis.json` and show its summary.

#### Checkpoint 1 — Confirm the model analysis

Ask the user to confirm or correct the model analysis.

Do not plan quantization until the user confirms.

### Step 2 — Quantization plan

1. Follow `references/quant-plan.md` and use the confirmed analysis plus the
   user's priorities.
2. Select and explain the global scheme, optional KV-cache scheme, per-pattern
   overrides, exclusions, algorithms, and calibration data.
3. Treat scheme, algorithm, and model-template support as version-dependent.
   Use the current installed Quark API or `quark-cli torch-llm-ptq --help` when
   a choice needs verification; do not rely on historical list sizes.
4. Show a decision table, write schema-valid `quant_plan.json`, and set
   `requires_confirmation: true` until approved.

#### Checkpoint 2 — Confirm the quantization plan

Ask the user to confirm or adjust the complete plan.

After confirmation, update `requires_confirmation` to `false`. If the user
changes a decision, rewrite and revalidate the plan before continuing.

### Step 3 — Manifest and execution confirmation

Use the public `quark-cli torch-llm-ptq` command installed by
`amd-quark[cli]`. Do not import its implementation module directly or locate,
copy, generate, or patch another PTQ runner.

Build an argument-array-safe command equivalent to:

```bash
quark-cli torch-llm-ptq \
  --model_dir "<MODEL_OR_ABSOLUTE_LOCAL_PATH>" \
  --output_dir "<ABSOLUTE_OUTPUT_PATH>" \
  --quant_scheme "<SCHEME>" \
  --num_calib_data "<N>" \
  --seq_len "<LENGTH>" \
  --device cuda \
  --no_trust_remote_code
```

Add only confirmed options:

- `--dataset <NAME>` and `--batch_size <N>` when the plan changed them from the
  CLI defaults.
- `--kv_cache_dtype <SCHEME>` for confirmed KV-cache quantization.
- One `--layer_quant_scheme <PATTERN> <SCHEME>` per override.
- `--quant_algo <comma-separated-list>` when required.
- `--exclude_layers <patterns...>` only when overriding template defaults.
- `--multi_device` when its constraints are understood.
- `--no_trust_remote_code` unless the user explicitly accepts executing remote
  model code. The CLI trusts remote code when this flag is omitted.
- `--skip_evaluation` when the requested scope ends strictly at model output.
- `--evaluation_dataset <NAME>` when evaluation is requested with a
  non-default CLI-supported dataset.

Resolve local model and output directories to absolute paths, then quote all
user-controlled paths and values. On ROCm, `--device cuda` is still the PyTorch
device spelling; use `HIP_VISIBLE_DEVICES` to pin a GPU when needed. Resolve
`quark-cli` from the same Python environment that provides `amd-quark`.

Write `run_manifest.yaml` with:

- `workflow: quark-torch-ptq`
- input and output paths;
- all four checkpoint reasons;
- an analyze step producing `model_analysis.json`;
- a plan step producing `quant_plan.json`;
- a generate step producing `run_manifest.yaml`;
- a run step containing the exact command and expected output directory.

Confirm the environment before showing the command, using
`references/environment.md`. A missing package or an accelerator-mismatched
PyTorch build should surface here, not after the execution gate.

Show the full command, destination, estimated resource needs, remote-code
choice, and expected outputs.

#### Checkpoint 3 — Approve execution

Ask: “Shall I run this exact command?”

This is the execution gate. Do not create the output directory, download model
weights, change the environment, or run PTQ without explicit approval such as
“yes”, “run it”, or “execute”. A prior plan confirmation is not execution
approval.

### Step 4 — Execute and verify

Only after Checkpoint 3 approval:

1. Create the output directory if needed.
2. Run the exact confirmed `quark-cli` command.
3. Monitor output. On failure, stop; collect the command, exit status, full
   error, versions, and resource state, then use
   `references/troubleshooting.md`. Never retry blindly.
4. On success, inspect the output directory and report actual model shards,
   configuration/tokenizer files, size, format, and any requested metrics.
5. Update `run_manifest.yaml` with the observed status and outputs without
   changing the recorded command.

#### Checkpoint 4 — Accept the verified result

Present the verified result and ask the user to accept it or request a bounded
follow-up.

Do not claim success from exit status alone. If expected files are absent,
report a partial/failed result and preserve diagnostics.

## Recovery

- Missing or invalid artifact: regenerate it from the corresponding local
  reference and validate it against the local schema; do not invent fields
  around a validation error.
- Intake uncertainty: mark `analysis_status` as `partial`, record a risk, and
  ask for the missing fact. Do not load weights merely to fill metadata.
- Unsupported model type or scheme: report the installed Quark evidence and
  ask whether to change the plan. Do not patch the installed CLI.
- OOM or device failure: retain the failed manifest and propose the smallest
  plan change, such as fewer calibration samples, a shorter sequence length, or
  multi-device execution. Return to Checkpoint 2.
- Dependency or compatibility failure: show exact installed and required
  versions. Get confirmation before package changes, then return to
  Checkpoint 3 with a newly recorded command.
- User changes intent: return to the earliest affected checkpoint and preserve
  still-valid artifacts. Never bypass the execution confirmation.

© amd · MIT · amd/skills

Similar skills

Everything for AI and ML →

From the same set10

local-ai-app-integration Integrates Embeddable Lemonade into apps that currently call cloud AI APIs. Useful when shipping on-device inference on Windows x64 or Linux x64. CX Codex +1 895installs tracelens-analysis-orchestrator A skill that runs the agentic TraceLens workflow over PyTorch Profiler traces and writes a prioritized analysis.md. CX Codex +1 877installs serving-llms-on-instinct Brings up a vLLM endpoint on AMD Instinct GPUs: detects the hardware, validates the environment, builds the Docker command and launches the model. CX Codex +1 876installs serving-llms-on-epyc Deploys a vLLM endpoint with the zentorch backend on AMD EPYC CPUs using Docker, Podman, or conda. Handy for CPU-based LLM inference pinned to a single socket. CX Codex +1 817installs lemonade-router-builder This skill converts plain-English routing instructions into a valid Lemonade collection.router policy JSON. Use it to split traffic between small local models and larger cloud LLMs. CX Codex +1 807installs hyperloom-workload-optimizer Bootstraps Hyperloom on an AMD Instinct host and kicks off multi-agent throughput optimization for LLM serving. Useful when a model on MI300X, MI325X or MI355X needs to push more tokens per second. CX Codex +1 783installs quark-install Installs or verifies AMD Quark and makes sure the Python environment has a PyTorch build that matches the accelerator. Useful when the quark import fails or kernels won't compile. CX Codex +1 526installs amd-skills The plugin adds AMD skills to Claude Code: route image and audio generation through local AI on Ryzen, deploy LLMs on Instinct GPUs with vLLM, and analyze GPU kernel performance. ★ 465repo stars

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor