Skip to main content

CompileIQ - NVIDIA Compiler HPO

Push GPU kernels further with NVIDIA compiler tuning.

CompileIQ is a hyperparameter optimizer for NVIDIA compiler controls and application parameters. It helps kernel developers tune those controls against workload-specific benchmarks, adding another optimization path for CUDA C++, Triton, and Helion kernels after source-level tuning has plateaued.

Documentation | PyPI | Latest Release | Search Space Catalog Releases | Booster Pack Catalog Releases

What CompileIQ Does

CompileIQ tunes NVIDIA compilers to your workload using the compiler's Advanced Controls interface. At a high level CompileIQ:

  • Searches optimal PTXAS and NVCC Advanced Controls for your target kernel.
  • Iteratively measures candidates against metrics defined by you (runtime, compile time, power, etc).
  • Produces an Advanced Control File (ACF) that can be distributed with the kernel.
  • Supports CUDA C++, Triton, and Helion tuning workflows.

Basic Workflow

  1. Define the kernel benchmark and objective.
  2. Run CompileIQ over the relevant compiler controls.
  3. Apply the generated ACF in future builds or JIT compilation.

Tune the compiler to the workload.

See the documentation and examples for more.

Quick install

You can either install through PyPI:

pip install compileiq

Or, build from the the source in this repository yourself:

pip install -e .

Supported platforms

CompileIQ supports Python 3.11, 3.12, and 3.13. Published wheels include the bundled CompileIQ core for Linux x86_64, Linux aarch64, and Windows amd64.

Linux wheels target glibc 2.34 or newer and are tagged manylinux_2_34. See the installation guide for Linux runtime library requirements and Windows runtime notes.

Search Spaces

CompileIQ can retrieve curated compiler search spaces from GitHub release assets and cache them locally. Use PtxasSearchSpace or NvccSearchSpace to select a compiler, compiler version, and optional variant:

from compileiq.search_spaces.compilers import PtxasSearchSpace

search_space = PtxasSearchSpace(version="13.3", variant="att")

For reproducible runs, pin a search-space release tag:

search_space = PtxasSearchSpace(version="13.3", tag="search-spaces-2026.05.05")

Set CIQ_SEARCH_SPACES_DIR to use a local mirror containing manifest.json plus the referenced .bin files. Set CIQ_SEARCH_SPACES_REPO to test or use a different release repository.

Browse the published Search Space Catalog Releases to inspect available catalog assets and release notes.

Environment Configuration Options

Environment Variable Default Value Type Description
CIQ_SOCKET_TIMEOUT 20 int Controls how long CompileIQ waits for a core response. If you experience timeouts because your search space is too big, consider increasing this value.
CIQ_KEEP_CACHE False bool If set to True, .cache files will not be deleted.
CIQ_PROCESS_MODE "forkserver" str Start method for process-based workers. Set to "fork" for tighter process separation when threads are involved. IsoMultiProcessWorker defaults to "fork" independently.
CIQ_SEARCH_SPACES_DIR unset path Reads compiler search-space manifest.json and .bin files from a local mirror instead of GitHub.
CIQ_SEARCH_SPACES_REPO NVIDIA/CompileIQ str GitHub repository used for search-space release lookups, useful for staging or a future dedicated asset repo.

Examples

The examples/ folder has simple examples for you to get started on using CompileIQ.

For the full user guide, see the CompileIQ documentation.

If you are planning on running examples, you may need additional dependencies:

python -m poetry install --with examples

Documentation development

Install the docs dependencies once:

make install-docs

To preview uncommitted documentation edits from your live worktree:

make docs-preview

Then open http://localhost:8000/main/.

If port 8000 is already in use, stop the existing local docs server first.

Use make docs or make docs-serve when you need to test the multiversion documentation shape used by GitHub Pages. Those commands build from Git refs, so they are not the right choice for checking dirty worktree edits before commit.

Metadata

Release files for compileiq 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for compileiq 1.0.3
File Interpreter ABI Platform
compileiq-1.0.3-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
compileiq-1.0.3-py3-none-manylinux_2_34_x86_64.whl Python 3 none Linux glibc 2.34+ x86-64 Details
compileiq-1.0.3-py3-none-manylinux_2_34_aarch64.whl Python 3 none Linux glibc 2.34+ ARM64 Details

Total release size: 107.1 MB

Release files / compileiq-1.0.3-py3-none-win_amd64.whl

Download URL compileiq-1.0.3-py3-none-win_amd64.whl
Size 40.1 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
0b56b63bc769f60fb1dfa786fe897a3c5acd0214b5b20066757d1b25076874e4
BLAKE2b-256 checksum
How to use checksums
95828368482585075d75c840a2ca34a600536d5f9e73f07fa5737b26a612d690
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / compileiq-1.0.3-py3-none-manylinux_2_34_x86_64.whl

Download URL compileiq-1.0.3-py3-none-manylinux_2_34_x86_64.whl
Size 34.1 MB
Tags Linux glibc 2.34+ x86-64 Python 3
SHA-256 checksum
How to use checksums
2f7a54bf920274b5245c060a622af543b69cd66c5b02186247eacae7a41810b8
BLAKE2b-256 checksum
How to use checksums
9784be6e21c3cc5187a83ce96344be71502fa7c3870d44a7743661ddd96b1f71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / compileiq-1.0.3-py3-none-manylinux_2_34_aarch64.whl

Download URL compileiq-1.0.3-py3-none-manylinux_2_34_aarch64.whl
Size 32.9 MB
Tags Linux glibc 2.34+ ARM64 Python 3
SHA-256 checksum
How to use checksums
4ab6b7a578d13eaf0575bb34f339c70c297b3dcbd4b2a2bddb41c6f66b7dd835
BLAKE2b-256 checksum
How to use checksums
67ce0c4ca0617d7ff9158bf21dc5c0364207e757b2e2070af6937402f5b3176d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

This release

1.0.3 This release

3 release files

1.0.2

3 release files

1.0.1

3 release files

1.0.0

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page