NVIDIA compiler control optimization engine.
Project description
CompileIQ - NVIDIA Compiler HPO
CompileIQ is a hyperparameter optimizer for tuning NVIDIA compiler controls and application parameters.
Quick install
You can either install through PyPI:
pip install compileiq
Or, build from the repo 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.
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.
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file compileiq-1.0.1-py3-none-win_amd64.whl.
File metadata
- Download URL: compileiq-1.0.1-py3-none-win_amd64.whl
- Upload date:
- Size: 40.1 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24834a166ab72d39cebbcdaf80b3c99a40d5552c028739581a98b5420de3d354
|
|
| MD5 |
4f9b126a17caad7377a5996ed876e7f8
|
|
| BLAKE2b-256 |
bb849eb885667d5b943377ac4fa277dd1a9d523b578b7b3b76f38953d3218a75
|
File details
Details for the file compileiq-1.0.1-py3-none-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: compileiq-1.0.1-py3-none-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 34.1 MB
- Tags: Python 3, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2baa9f236248ddc302f8e2f5c4b0ea0a188eb24c948dbf66a168aa80e951895
|
|
| MD5 |
a0cc346dbcb195f87a4a8c01dec531a7
|
|
| BLAKE2b-256 |
8258988323f273aa1766faf012a44cfa752606a089fcc0b5dac87da90dfec855
|
File details
Details for the file compileiq-1.0.1-py3-none-manylinux_2_34_aarch64.whl.
File metadata
- Download URL: compileiq-1.0.1-py3-none-manylinux_2_34_aarch64.whl
- Upload date:
- Size: 32.9 MB
- Tags: Python 3, manylinux: glibc 2.34+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
930f1ef062643e615a826dacd35450bcce44b0c7ec5b657e2e578916e3a8d76c
|
|
| MD5 |
acc655a79e96e40b5ee39564c47dda7d
|
|
| BLAKE2b-256 |
8d834e0d0e77e50ebd3b1bb475e6931a2f5b1571625dd88d2f49b52d55dad9b7
|