Add serving-llms-on-epyc walkthrough - #83
Conversation
- Add walkthroughs/serving-llms-on-epyc.md (+ README link) for issue amd#82. - Re-register the skill in the marketplace (needs a walkthrough to be listed). - Require AVX-512 (Zen4+): hard gate in Step 1; scope in the description. - Fix launch: drop --shm-size (conflicts with --ipc=host on podman). - detect.py: recognize lettered EPYC SKUs (e.g. 9B45 -> Turin/Zen5). - Note re-run name collision, rootless-podman cpuset, and HF_HOME cache mount. Signed-off-by: Lalithnarayan C <Lalithnarayan.C@amd.com> Change-Id: Ia2bf2b8f40c2c709f8ad3b3d394a7946d4949b26
|
@shailensobhee Can you please help review this here as well? |
|
@shailensobhee Any updates here? |
|
@amd-lalithnc Preparing to approve this. Some tasks still needs to be done:
|
| ## Step 1 - Understanding which skills are available | ||
|
|
||
| * Run `claude "Which skills can you see?" --model sonnet`. You should see a list of skills that does **not** include anything about serving LLMs on EPYC / CPU. | ||
| * Make sure there is no `AGENTS.md` file in your local folder. |
There was a problem hiding this comment.
Can you comment on why this line is important? What happens if you have an AGENTS.md file?
There was a problem hiding this comment.
Agents.md files may contain additional instructions for claude. Asking the user to remove additional instructions their agents may have is helpful to make this process more reliable and easy to understand.
Integrate the upstream single-bundle marketplace and repo restructuring: Claude/Cursor/Codex plugin manifests and their generators, workflow and behavioral-eval relocations, and the other skills' updates. Resolve the marketplace and walkthrough-index conflicts by registering serving-llms-on-epyc (and its walkthrough) in the merged single bundle. Signed-off-by: Lalithnarayan C <Lalithnarayan.C@amd.com> Change-Id: I2cb6cbcbd82abbe76f432fefb09480bbbb712d76
Recognize 6th Gen EPYC (Venice/Zen6) and EPYC 4004/4005 by SKU, expose is_supported_epyc, and restrict the recipe to documented ZenDNN server families. Clarify the skill still serves a CPU endpoint on hosts that also have AMD Instinct GPUs. Signed-off-by: Lalithnarayan C <Lalithnarayan.C@amd.com> Change-Id: I9ec29f060d2e8fd6331eb6e635d58592bb04fcfa
Pin the validated vLLM 0.25.1 / zentorch 2.11.0.3 image (drop the redundant --shm-size), and probe the selected runtime for its exact versions and active vLLM platform. Venice on a non-pinned vLLM requires explicit confirmation; a stock (non-Zen) CPU platform is blocked. Signed-off-by: Lalithnarayan C <Lalithnarayan.C@amd.com> Change-Id: I4977cd5176df0bbf06db19bbae9c0d4569bf80c9
check_model.py inspects the model's chat template (standalone jinja or tokenizer_config) and picks /v1/chat/completions when one is present, else /v1/completions for raw prompts. A multimodal model with no usable template is rejected before launch. Signed-off-by: Lalithnarayan C <Lalithnarayan.C@amd.com> Change-Id: Iec5681d1a001f5c2968d492d95a21abbf1ceff3e
Document the compatibility gate and endpoint selection, make health verification endpoint-aware (/v1/models + non-error choices), and give a full client handoff (curl + OpenAI Python, parameter guidance). Add deterministic tests (gate policy, template classification, endpoint selection, detector, stack pin) and behavioral tests. Signed-off-by: Lalithnarayan C <Lalithnarayan.C@amd.com> Change-Id: I21a0474373ef784b1d5ada363c51baccb66ea51b
Limit the supported targets to AMD EPYC 9000-series server CPUs -- Genoa (9004), Turin (9005), and Venice (9006). Bergamo, Siena, and the AM5 EPYC 4004/4005 are still detected and named, but reported is_supported_epyc: false so the skill stops on them. Update the gate, reference, and walkthrough wording and add a regression test. Signed-off-by: Lalithnarayan C <Lalithnarayan.C@amd.com> Change-Id: I8593a33ffdf549b81fa0a157fe8a19cb8f7b41dd
|
hi @shailensobhee - please take a look, have addressed your comments. In addition, have made some minor changes to the core skill - giving client side info - chat templates, args to help the user better with sending requests to the user |
|
@amd-lalithnc Can you take a look at the following link as part of your skill/walkthrough? It seems to be dead:
|
serving-llms-on-epyc walkthrough
| "skills": [ | ||
| "./skills/local-ai-use", | ||
| "./skills/local-ai-app-integration", | ||
| "./skills/serving-llms-on-epyc", |
There was a problem hiding this comment.
Please remove marketplaces changes here. Skills only graduate to those "showcase" marketplaces after dev trials and marketing guidance.
Signed-off-by: Lalithnarayan C <Lalithnarayan.C@amd.com> Change-Id: I815a4dbf65594712f0533a2caf9135deceaa7220
Signed-off-by: Lalithnarayan C <Lalithnarayan.C@amd.com> Change-Id: I5e1075932c21aa34e11929f901d2932764b95580
@danielholanda looks like this isn't part of this skill/walkthrough. That link is in walkthroughs/tracelens-analysis-orchestrator.md (the TraceLens skill's walkthrough, added in #89), not in serving-llms-on-epyc. The target is in the private AMD-AGI/TraceLens repo, so the external link-checker gets a 404 even though it resolves for authorized users. |
Adds a walkthrough for
serving-llms-on-epycatwalkthroughs/serving-llms-on-epyc.md, with a link inwalkthroughs/README.md. Resolves #82It follows the same sections as the existing walkthroughs: prerequisites, checking which skills are visible, installing the skill, running it, calling the endpoint, and a comparison of doing the task without the skill.
It also re-registers the skill in the marketplace (the entry was removed in #76) and folds in a few fixes found while testing the walkthrough on real EPYC hosts:
--shm-sizefrom the container launch — it conflicts with--ipc=hoston podman.detect.py(e.g. 9B45 → Turin).Tested end-to-end on two EPYC hosts: the endpoint comes up and answers.
Change-Id: Ia2bf2b8f40c2c709f8ad3b3d394a7946d4949b26