Official agent skill

Compileiq Author Objective

by NVIDIA in NVIDIA/CompileIQ

A skill your agent uses when writing the objectivefunction= passed to Search().

OfficialApache-2.0Auto-check: notesDevOps & Cloud

Install Compileiq Author Objective

skills CLI
$ npx skills add NVIDIA/CompileIQ --skill compileiq-author-objective -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install NVIDIA/CompileIQ compileiq-author-objective --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/NVIDIA/CompileIQ.git skills-src && mkdir -p .claude/skills && cp -r skills-src/agent-skills/compileiq-author-objective .claude/skills/compileiq-author-objective && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
compileiq-author-objective
GitHub stars
137
Token cost
~2.3k tokens
SKILL.md length
659 words
Files
2 (incl. references)
Skills in repo
7
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses when writing the objectivefunction= passed to Search().

  • Writing the objectivefunction= passed to Search()
  • SKILL.md covers When, The two legal signatures, Canonical imports and Self-contained for…, plus 9 more sections
  • Reaches helionlang.com
  • Objective function

What it does

Compileiq Author Objective is an agent skill from NVIDIA/CompileIQ, published by the product's own GitHub organization. Use when writing the objectivefunction= passed to Search(). Covers the two legal signatures (compiler-only str vs mixed list), the baseline-knockout branch, per-eval cache busting, framework-specific --apply-controls injection (raw PTXAS, NVCC, Triton, Helion, cuTeDSL/FA4, FlashInfer), correctness-before-timing, INVALIDSCORE handling, and the Debug-pack O0/O3 ACF-injection canary that must pass before launching a search. Triggers on "objective function", "apply-controls", "INVALIDSCORE", "savecompilerconfig"…

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/templates.md`).

It sits in DevOps & Cloud, covering Deployment. The repository describes itself as: An Optimizer for Nvidia Compilers. The licence is Apache-2.0.

When your agent uses it

  • Writing the objectivefunction= passed to Search()
  • Objective function
  • Savecompilerconfig
  • Baseline knockout

Example prompts

  • “objective function”
  • “apply-controls”
  • “INVALIDSCORE”
  • “/compileiq-author-objective”

Requirements

  • Python 3
  • Pre-approved tools (allowed-tools): Bash, Read

What it can do on your machine

Read from SKILL.md and the folder at commit 743aca4. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • Read

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • helionlang.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Compileiq Author Objective loads about 2.3k tokens when it runs, and up to ~5.4k if it reads all its reference files. Until then it costs about 162 tokens; SKILL.md has 659 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~162
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from NVIDIA/CompileIQ at commit 743aca4, republished under its Apache-2.0 licence (© NVIDIA). 659 words, ~2,268 tokens.

Download SKILL.mdSave it as .claude/skills/compileiq-author-objective/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
compileiq-author-objective
description
Use when writing the objective_function= passed to Search(). Covers the two legal signatures (compiler-only str vs mixed list), the baseline-knockout branch, per-eval cache busting, framework-specific --apply-controls injection (raw PTXAS, NVCC, Triton, Helion, cuTeDSL/FA4, FlashInfer), correctness-before-timing, INVALID_SCORE handling, and the Debug-pack O0/O3 ACF-injection canary that must pass before launching a search. Triggers on "objective function", "apply-controls", "INVALID_SCORE", "save_compiler_config", "baseline knockout", "BASELINE_CONFIG", "every config returns the same score", "TypeError fromhex".
allowed-tools
Bash, Read
when_to_use
- About to write or modify the function passed as objective_function=. - Search runs but every config returns an identical score (canary fails). - Getting…
license
Apache-2.0
metadata.version
1.0.0
metadata.author
NVIDIA CompileIQ
metadata.domain
compiler-optimization
paths
**/*.py, **/*.cu, **/*.cuh

compileiq-author-objective

The objective function is where ~80% of CompileIQ user errors happen. This skill tells you the exact shape it must have for current CompileIQ, how to inject --apply-controls for each supported compile path, and how to verify the whole pipeline works before paying for a full search.

For paste-ready full-file templates per framework, see references/templates.md.

When

  • Writing a brand-new objective function.
  • Migrating an older objective off the legacy bytes.fromhex(config_blob) pattern.
  • Diagnosing "every config returns the same score" or "TypeError: fromhex".
Shape of search_space=Objective signatureWhat config is
Single provider, e.g. PtxasSearchSpace()def objective(config: str) -> floatA hex string. Pass it straight to save_compiler_config(acf_path, config).
List, e.g. [{"k": ss.choice(...)}, PtxasSearchSpace()]def objective(mixed: list) -> floatA list of the same length. Unpack: user_space, ptxas_config = mixed.

Mixed-space results keep the same list shape in best["params"]. Unpack it before saving the ACF, for example: user_space, ptxas_config = best["params"]. (Pattern reference: examples/compilers/triton_example/mixed_triton.py:123-146.)

For multi-objective, return tuple[float, ...] of length num_objectives.

Canonical imports

python
from compileiq.types import INVALID_SCORE, BASELINE_CONFIG
from compileiq.utils.helpers import save_compiler_config

INVALID_SCORE is CompileIQ's sentinel — return it on any failure (compile, hang, wrong answer, exception). Do not redefine it as float('inf').

BASELINE_CONFIG is the empty-dict sentinel CompileIQ passes when a knockout knocks out every parameter (typically with normalize=True).

save_compiler_config(path, hex_str) writes the binary blob to disk; it handles the bytes.fromhex internally (compileiq/utils/helpers.py:128-137). Users never need to touch fromhex themselves.

Self-contained for IsoMultiProcessWorker and Ray

Heavy library imports (torch, triton, helion, cute) go inside the function so the process IsoMultiProcessWorker spawns — or the remote Ray task — can re-import them in a clean state. Cheap module-level constants (paths, regexes) are fine.

Per-eval cache busting (non-negotiable)

python
import os, tempfile
env = os.environ.copy()
env["TRITON_ALWAYS_COMPILE"] = "1"
env["HELION_SKIP_CACHE"]     = "1"
env["TRITON_CACHE_DIR"]      = tempfile.mkdtemp(prefix="ciq_triton_")

For FlashInfer, additionally confirm the prebuilt cubin cache packages are absent — flashinfer_cubin and flashinfer_jit_cache. See docs/flashinfer_booster.md:56-64 for the import-time check.

Per-framework --apply-controls injection

TargetInjection
Raw PTXAS (you have a .ptx file)ptxas --apply-controls candidate.acf kernel.ptx -arch=sm_100 -o kernel.cubin
NVCC source (CUDA .cu)nvcc -Xptxas --apply-controls=candidate.acf -arch=sm_100 kernel.cu -o exe (canonical; see examples/compilers/nvbench_example/optimize_reduction.py:108)
Triton kernelkernel kwarg: kernel[grid](..., ptx_options=f"--apply-controls={acf_path}") plus TRITON_ALWAYS_COMPILE=1, os.environ["TRITON_PTXAS_PATH"] = shutil.which("ptxas"), and os.environ["TRITON_PTXAS_BLACKWELL_PATH"] = shutil.which("ptxas") when Blackwell-specific PTXAS selection may apply. This replaces the older PTXAS_OPTIONS= env-var approach for Triton.
HelionHelion's official ACF API. See https://helionlang.com/examples/acfs/softmax_acf.html. Always set HELION_SKIP_CACHE=1.
cuTeDSL / FA4 (TVM-FFI)cute.compile(..., options=f"{existing_options} --ptxas-options '--apply-controls {acf_path}'"). If you can't reach the call site, patch CompileCallable.__call__ to splice in the option string.
FlashInferFLASHINFER_EXTRA_CUDAFLAGS="--ptxas-options=--apply-controls=$ACF_FILE" (see docs/flashinfer_booster.md:107).

Baseline knockout branch

python
def objective(config):
    if isinstance(config, dict) and not config:   # config == BASELINE_CONFIG
        return measure_without_acf()              # establish baseline run
    # config is a hex string (or list with hex tail) — apply ACF
    ...
Show full SKILL.md (275 more words)Show less

Correctness-before-timing (mandatory)

The optimizer rewards whatever you measure. If you only measure latency, the algorithm will happily reward configs that compile faster by producing wrong answers. Always verify against a reference first:

python
if not torch.allclose(actual, reference, atol=1e-2, rtol=0):
    return INVALID_SCORE
return triton.testing.do_bench(lambda: kernel(...), warmup=100, rep=1000, return_mode="mean")

(Pattern from examples/compilers/triton_example/mixed_triton.py:141-146.)

Catch everything → return INVALID_SCORE

python
try:
    ...
except (subprocess.TimeoutExpired, RuntimeError, FileNotFoundError, ValueError, OSError) as e:
    return INVALID_SCORE

When in doubt, catch broadly. CompileIQ expects INVALID_SCORE as the "this config is broken" signal — re-raising means the entire search fails.

Pre-search canary (mandatory before tuner.start())

Two cheap calls that catch ~90% of "every score is the same" bugs:

python
# Shape check — does the objective even run?
sample = tuner.sample(1)[0]
score = objective(sample)
print(f"sample run: {score}")
assert isinstance(score, (int, float)) and score == score   # not NaN

# ACF-injection canary using the Debug pack (downloaded once)
from compileiq.utils.helpers import load_compiler_config
O0_HEX = load_compiler_config("booster-pack-debug/ptxas_opt0.acf")
O3_HEX = load_compiler_config("booster-pack-debug/ptxas_opt3.acf")

baseline = objective({})                  # BASELINE_CONFIG path
score_O0 = objective(O0_HEX)
score_O3 = objective(O3_HEX)

assert score_O0 > baseline * 1.05, (
    f"O0 should regress (got {score_O0} vs baseline {baseline}). "
    "ACF is NOT reaching PTXAS — fix the cache-bust."
)
assert abs(score_O3 - baseline) / baseline < 0.05, (
    f"O3 should match baseline (got {score_O3} vs {baseline})."
)
print("ACF injection canary PASSED — safe to start the search.")

If either assertion fails, stop and fix the cache-bust before launching the search. Otherwise every generation's score is measurement noise on a stale binary.

Self-test

A 3-line "smoke" objective inside the SKILL author's repo, used to verify the scaffolding before plugging in a real kernel:

python
def smoke_objective(config):
    return 1.0   # constant; useful to verify Search() shape, not measurement

Drop it into the Search(...) call and run 2 generations; if that completes and results.get_best_result() returns a dict, your scaffold is correct.

Gotchas

  • PTXAS_OPTIONS is not the canonical Triton injection. It still works for raw subprocess invocations, but Triton 3.x prefers the ptx_options= kernel kwarg. See the table above.
  • Mixed search spaces require list unpacking. If you pass search_space=[user_dict, PtxasSearchSpace()], your objective must accept a list, not a string. Results keep that list in best["params"]; unpack it before saving the compiler config.
  • Don't redefine INVALID_SCORE. Import it from compileiq.types. If you redefine it locally as float('inf'), the value happens to work today but is not guaranteed to in future releases.
  • config_blob is no longer a parameter name. The old skill set used def objective(config_blob) and called bytes.fromhex(config_blob). Both are stale. Use def objective(config) and save_compiler_config(path, config).

Next

  • Sizing SearchConfiguration and picking a Worker: compileiq-run-search.
  • After the search: compileiq-validate-result.
  • If something's wrong: compileiq-debug.

© NVIDIA, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (references) in agent-skills/compileiq-author-objective of NVIDIA/CompileIQ.

  • SKILL.md
  • references/templates.md

Open the folder on GitHubat commit 743aca4

Compare with similar skills

Compileiq Author Objective next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Compileiq Author Objective compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Compileiq Author Objective this skillNVIDIA/CompileIQ137—~2.3kAutomated safety check: NotesApache-2.0
Kubeshark Installerkubeshark/kubeshark12k—~3.6kAutomated safety check: NotesApache-2.0
GreptimeDB Dev Docker ImageGreptimeTeam/greptimedb6.7k—~4kAutomated safety check: NotesApache-2.0
KubeSphere ServiceMesh Managerkubesphere/kubesphere17k—~2.4kAutomated safety check: PassCustom licence
Vercelremotion-dev/remotion62k—~1.2kAutomated safety check: PassCustom licence
AWS Cdk Developmentzxkane/aws-skills3672 repos~2.5kAutomated safety check: PassMIT

Similar skills

  • Kubeshark Installer

    kubeshark/kubeshark

    Installs and configures Kubeshark on a Kubernetes cluster, choosing between the quick CLI path and a Helm install with custom values.

    12k GitHub stars~3.6k tokensUpdated 6 days ago
    DevOps & CloudAuto-check: notes
  • GreptimeDB Dev Docker Image

    GreptimeTeam/greptimedb

    Packages a locally built GreptimeDB debug binary into a development-only Docker image for local-cluster testing, with an optional push to a dev registry.

    6.7k GitHub stars~4k tokensUpdated 2 days ago
    DevOps & CloudAuto-check: notes
  • KubeSphere ServiceMesh Manager

    kubesphere/kubesphere

    Installs, checks and troubleshoots the KubeSphere ServiceMesh extension (Istio, Kiali, Jaeger), including grayscale release, sidecar injection, topology and tracing issues.

    17k GitHub stars~2.4k tokensUpdated 2 mo ago
    DevOps & CloudAuto-check passed
  • Vercel

    remotion-dev/remotion

    Official

    Set up a Codex monitor for Vercel deployments and preview URLs.

    62k GitHub stars~1.2k tokensUpdated today
    DevOps & CloudAuto-check passed
  • AWS Cdk Development

    zxkane/aws-skills

    AWS Cloud Development Kit (CDK) expert for building cloud infrastructure with TypeScript/Python.

    367 GitHub starsUsed in 2 repos~2.5k tokens
    DevOps & CloudAuto-check passed
  • Senior DevOps Toolkit

    maslennikov-ig/claude-code-orchestrator-kit

    Comprehensive DevOps skill for CI/CD, infrastructure automation, containerization, and cloud platforms (AWS, GCP, Azure). Includes pipeline setup…

    259 GitHub starsUsed in 6 repos~1.1k tokens
    DevOps & CloudAuto-check: notes

More from NVIDIA/CompileIQ

  • Compileiq Booster Pack

    NVIDIA/CompileIQ

    Official

    Use BEFORE running a full CompileIQ search. An agent skill from NVIDIA/CompileIQ.

    137 GitHub stars~2.1k tokensUpdated 14 days ago
    Auto-check: notes
  • Compileiq Bootstrap

    NVIDIA/CompileIQ

    Official

    A skill your agent uses when starting a fresh CompileIQ project, hitting a socket timeout, or before running any other compileiq- skill.

    137 GitHub stars~1.3k tokensUpdated 14 days ago
    Auto-check: notes
  • Compileiq Debug

    NVIDIA/CompileIQ

    Official

    A skill your agent uses when something is wrong: Search() hangs, all evaluations return INVALIDSCORE, scores aren't improving, every config returns the same number, ptxas errors fill the log, CV% is…

    137 GitHub stars~2.9k tokensUpdated 14 days ago
    Auto-check: notes
  • Compileiq Run Search

    NVIDIA/CompileIQ

    Official

    A skill your agent uses when composing the Search(...) call and calling .start().

    137 GitHub stars~2.2k tokensUpdated 14 days ago
    Auto-check: notes
  • Official

    Use AFTER a Search has completed and BEFORE claiming any speedup or shipping an ACF.

    137 GitHub stars~2.2k tokensUpdated 14 days ago
    Auto-check: notes
  • Compileiq Search Space

    NVIDIA/CompileIQ

    Official

    A skill your agent uses when picking the searchspace= argument for Search().

    137 GitHub stars~1.9k tokensUpdated 14 days ago
    Auto-check: notes

Categories

Questions about Compileiq Author Objective

What does Compileiq Author Objective do?

A skill your agent uses when writing the objectivefunction= passed to Search(). Compileiq Author Objective is an agent skill from NVIDIA/CompileIQ, published by the product's own GitHub organization. Use when writing the objectivefunction= passed to Search().

When should I use Compileiq Author Objective?

Compileiq Author Objective fits situations like: writing the objectivefunction= passed to Search(); objective function; savecompilerconfig; baseline knockout.

How do I install Compileiq Author Objective in Claude Code?

Run `npx skills add NVIDIA/CompileIQ --skill compileiq-author-objective -a claude-code`. Or copy the skill folder (agent-skills/compileiq-author-objective in NVIDIA/CompileIQ) into .claude/skills/compileiq-author-objective in your project. Claude Code loads it when a task matches its description.

How do I install Compileiq Author Objective in Codex?

Run `npx skills add NVIDIA/CompileIQ --skill compileiq-author-objective -a codex`. Or copy the skill folder (agent-skills/compileiq-author-objective in NVIDIA/CompileIQ) into .agents/skills/compileiq-author-objective in your project. Codex loads it when a task matches its description.

Can I use Compileiq Author Objective in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add NVIDIA/CompileIQ --skill compileiq-author-objective -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/compileiq-author-objective, .gemini/skills/compileiq-author-objective, .github/skills/compileiq-author-objective and .opencode/skills/compileiq-author-objective in your project.

What does Compileiq Author Objective need to run?

SKILL.md names no scripts, command-line tools or credentials: Compileiq Author Objective is instructions for the agent only. Our summary lists: Python 3. Its frontmatter pre-approves these tools: Bash, Read.

Does Compileiq Author Objective access the network?

SKILL.md names 1 domain. In commands or code: helionlang.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Compileiq Author Objective safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Compileiq Author Objective use?

Compileiq Author Objective is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Compileiq Author Objective use?

About 2.3k tokens (SKILL.md is roughly 9.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.1k tokens, read only when the agent opens those files.

What are the alternatives to Compileiq Author Objective?

Skills that share tags, products or a category with Compileiq Author Objective: Kubeshark Installer (kubeshark/kubeshark, 12k stars), GreptimeDB Dev Docker Image (GreptimeTeam/greptimedb, 6.7k stars), KubeSphere ServiceMesh Manager (kubesphere/kubesphere, 17k stars) and Vercel (remotion-dev/remotion, 62k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Compileiq Author Objective?

NVIDIA (a GitHub organization, an official publisher) maintains it in NVIDIA/CompileIQ, which has 137 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on September 23, 2026.

Source: NVIDIA/CompileIQ on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.