hipEngine
hipEngine is a ROCm-native local inference engine built primarily for AMD Radeon GPUs. It pairs a small Python host with custom HIP kernels for torch-free model loading, generation, and OpenAI-compatible serving on supported hardware.
Current release: v0.4.0 alpha. Besides the Qwen 3.6 PARO and GGUF models, the latest version of hipEngine now supports GGUF inference for more model families. These include Laguna S 2.1, Maple ternary, and Moonshine ASR.
Why use hipEngine?
- Native AMD support. HIP-first kernels directly target and tune for specific RDNA 3 (gfx1100) and Strix Halo RDNA 3.5 (gfx1151) instead of being CUDA ports.
- No PyTorch runtime required. There is no PyTorch dependency, which keeps hipEngine lightweight. Although it is packaged for Python, almost all of the hot path is C++.
- Optimized for agents and concurrent requests. Besides extensive tuning for fast single-request performance (especially for prefill), hipEngine also has tuned support for c=N. It is significantly faster than llama.cpp or vLLM for c=8 workloads.
- Drop-in support for existing clients. The included OpenAI-compatible server supports completion, chat, token-level SSE, logprobs, tools, structured-output validation, Qwen thinking controls, logprob-biased effort control, and request diagnostics.
hipEngine is a new, small software project focused on making a select list of models perform well, particularly Qwen 3.x variants and fine-tunes.
Supported models
Yes means that public text generation has been tested. A dash means that the
combination is not supported. Features such as batching, sampling, tools, and
long context can differ by model.
| Model | Formats | RX 7900 XTX / W7900 (gfx1100) |
Radeon 8060S (gfx1151) |
NVIDIA Blackwell (sm_120a) |
|---|---|---|---|---|
| Qwen3.5 0.8B | Q4_K_M, Q8_0, Q4_1, UD-Q4_K_XL |
Yes | Yes | — |
| Qwen3.5 35B-A3B and Qwen3.6 35B-A3B | Q4_K_M, Q4_K_S, UD-Q3_K_M, UD-Q4_K_M |
Yes | Yes | — |
| Qwen3.6 35B-A3B ParoQuant | ParoQuant W4 | Yes | Yes | — |
| Laguna S 2.1 | Q4_K_M |
— | Yes | — |
| Maple-Preview 20B-A1B | 2-bit MLX | Yes | Yes | Python API only |
CPU model generation is not supported. The CPU backend is used for correctness
tests. On NVIDIA, load Maple with backend="cuda_sm120a"; automatic hardware
selection currently covers AMD only.
Support is specific to the listed model families and formats. hipEngine does not yet run every GGUF model. See the GGUF, Laguna, and Maple guides for model-specific limits.
GGUF or ParoQuant for Qwen?
For Qwen3.6 35B-A3B, the optimized ParoQuant W4 checkpoint is slightly faster and uses less memory in our AMD tests. It is a good choice when that exact model meets your needs.
GGUF has a much larger model and quantization ecosystem. Current development is therefore focused on GGUF compatibility, while the optimized ParoQuant path remains supported.
Installation
Requirements
| Platform | Requirements |
|---|---|
| AMD | Linux x86-64, Python 3.10+ and ROCm with hipcc and libamdhip64.so |
| NVIDIA Blackwell | Linux x86-64, Python 3.10+ and the CUDA toolkit with nvcc; Maple only |
| Published wheel | glibc 2.39 or newer, such as Ubuntu 24.04 |
ROCm 7.x is the safest choice for the current wheel. The first model load compiles and caches kernels, so it takes longer than later starts.
Install from PyPI:
pip install hipengine huggingface_hub
Or install a source checkout:
git clone https://github.com/shisa-ai/hipEngine.git
cd hipEngine
git lfs install
git lfs pull
pip install -e .
Confirm that the command is available:
hipengine --help
hipengine serve --help
Start a local server
hipEngine does not download model weights during startup. Download a supported model first, or use a GGUF file that is already on disk.
For the ParoQuant Qwen checkpoint:
hf download shisa-ai/Qwen3.6-35B-A3B-PARO-packed
hipengine serve \
--model shisa-ai/Qwen3.6-35B-A3B-PARO-packed \
--served-model-name qwen-paro
For GGUF, pass the path to the model file:
hipengine serve \
--model /path/to/Qwen3.6-35B-A3B-Q4_K_M.gguf \
--served-model-name qwen
The server listens on http://127.0.0.1:8000 by default. Test it with:
curl http://127.0.0.1:8000/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen",
"messages": [{"role": "user", "content": "Why is the sky blue?"}],
"max_tokens": 128
}'
Point any client that accepts a custom OpenAI base URL at
http://127.0.0.1:8000/v1. See the server guide for API keys,
streaming, tools, structured output, and model capability checks.
Use the Python API
from hipengine import LLM, SamplingParams
llm = LLM("shisa-ai/Qwen3.6-35B-A3B-PARO-packed")
outputs = llm.generate(
["Hello, hipEngine."],
SamplingParams(max_tokens=64, temperature=0.0),
)
print(outputs[0])
llm.close()
LLM(...) detects a supported AMD GPU and chooses the model format
automatically. You can also pass a local GGUF or Maple path. Advanced users can
override the choice with backend= and quant=.
Performance highlights
These are measured results, not estimates. Prompt processing is the speed of reading the input. Text generation is the speed of producing new tokens.
| Model and format | GPU | Test | Prompt processing (tok/s) | Text generation (tok/s) |
|---|---|---|---|---|
| Qwen3.6-35B-A3B ParoQuant W4 | Radeon Pro W7900 | 512 input tokens, 128 output tokens | 2917.732 | 115.599 |
Qwen3.6-35B-A3B GGUF Q4_K_M |
Radeon Pro W7900 | 512 input tokens, 128 output tokens | 2716.648 | 92.833 |
Qwen3.6-35B-A3B GGUF UD-Q4_K_M |
Radeon 8060S | 512 input tokens, 128 output tokens | 1369.489 | 54.330 |
Laguna S 2.1 GGUF Q4_K_M |
Radeon 8060S | 512 input tokens, 128 output tokens | 654.249 | 23.221 |
Laguna S 2.1 GGUF UD-Q2_K_XL |
Radeon Pro W7900 | 4,096 input tokens; prompt processing only | 440.893 | — |
| Maple-Preview 2-bit | Radeon 8060S | 512-token prompt test; varied prompts for generation | 754.458 | 153.201 |
| Maple-Preview 2-bit | RTX PRO 6000 Blackwell | 512-token prompt test; varied prompts for generation | 1917.492 | 402.361 |
These rows use different hardware and tests. Do not compare one row directly with another.
Multiple requests
Each value is the total tokens per second across all active requests:
| Model and interface | GPU | 1 request | 2 requests | 4 requests | 8 requests | 9 requests | 13 requests |
|---|---|---|---|---|---|---|---|
| Qwen3.6 GGUF, low-level engine test | Radeon Pro W7900 | 98.263 | 148.944 | 209.304 | 266.479 | — | — |
| Qwen3.6 GGUF, OpenAI streaming server | Radeon Pro W7900 | 72.169 | — | — | 158.542 | 137.001 | 129.507 |
| Maple, public generation API | Radeon 8060S | 123.131 | 165.697 | 202.038 | 214.788 | — | — |
Optional speculative modes
| Model and mode | GPU | Total text generation | Speed compared with normal generation |
|---|---|---|---|
| Qwen3.6 GGUF, optional compatibility mode | Radeon Pro W7900 | 122.67 tok/s | 1.2679x |
| Qwen3.6 GGUF, optional native mode | Radeon 8060S | 80.10 tok/s | 1.4282x |
These speculative modes are opt-in because their output can differ from normal generation.
Full commands, software versions, model hashes, memory use, and correctness checks are in the benchmark report.
Status and limits
v0.4.0 is a large alpha release. It adds or expands:
- Qwen3.5 and Qwen3.6 GGUF model support on both AMD backends.
- Native parallel request handling for supported Qwen and Maple paths.
- Laguna S 2.1 generation and serving on Radeon 8060S systems.
- Maple-Preview 2-bit generation on AMD, plus an experimental native CUDA path for NVIDIA Blackwell.
- Faster prompt processing and generation across the supported AMD paths.
- OpenAI-compatible streaming, sampling, tools, structured-output validation, request cancellation, and an endpoint that reports available features.
Important limits:
- hipEngine uses one GPU. Multi-GPU inference is not implemented.
- There is no desktop GUI, model catalog, or automatic model download.
- CPU model inference is not implemented.
- NVIDIA support is limited to single-request Maple generation through the Python API. CUDA server and multi-request support are not ready.
- Maple currently uses greedy generation only.
- Advertised model context lengths are not a promise that hipEngine supports the same length. Use the model guide and set a conservative server context limit.
- Speculative generation is optional and off by default when it changes output or does not provide a reliable speed benefit.
- APIs and supported combinations can still change before 1.0.
Hardware detection
backend="auto" recognizes gfx1100 and gfx1151. These cover the tested
Radeon RX 7900 XTX / Pro W7900 and Ryzen AI MAX+ 395 / Radeon 8060S systems.
Other AMD architecture numbers are not automatically treated as compatible.
You can force a nearby backend, but do so only after checking output quality and performance. hipEngine will not silently use PyTorch when a GPU is unsupported.
Documentation
User guides
| Guide | Contents |
|---|---|
| Server API | OpenAI-compatible endpoints, clients, authentication, and limits |
| GGUF models | Supported Qwen formats and model-specific behavior |
| Laguna S 2.1 | Hardware, memory, context, and serving limits |
| Maple-Preview | AMD and NVIDIA support, memory use, and current limits |
| Environment settings | Runtime settings and overrides |
| Changelog | User-facing changes by release |
Development and benchmark details
| Guide | Contents |
|---|---|
| Architecture and roadmap | Engine design and planned work |
| Kernel catalog | Kernel implementations and source history |
| Testing | Correctness tests and release checks |
| Benchmark methods | Rules used for performance claims |
| Benchmark results | Full result tables and evidence |
| Contributor guide | Repository workflow |
Project lineage
hipEngine is an independent project that builds on ideas and software from ROCm, HIP, Nano-vLLM, ParoQuant, FastDMS, llama.cpp, and other open-source projects. See the source and model guides for detailed attribution.
License
hipEngine source code is licensed under AGPL-3.0-or-later. Model weights, checkpoints, and external datasets remain under their own licenses.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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 hipengine-0.4.0.tar.gz.
File metadata
- Download URL: hipengine-0.4.0.tar.gz
- Upload date:
- Size: 55.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5fb55d1c6bcc882dcadc54b4a088e50650f189da2228304a2855a4b32423647
|
|
| MD5 |
96674a85c30d935f716f006b6b2fdeaf
|
|
| BLAKE2b-256 |
08606848b40a5b24ff9717c0a2ab2ea393c7a02b53176b7c98441d30d451fae2
|
Provenance
The following attestation bundles were made for hipengine-0.4.0.tar.gz:
Publisher:
publish.yml on shisa-ai/hipEngine
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hipengine-0.4.0.tar.gz -
Subject digest:
d5fb55d1c6bcc882dcadc54b4a088e50650f189da2228304a2855a4b32423647 - Sigstore transparency entry: 2402317848
- Sigstore integration time:
-
Permalink:
shisa-ai/hipEngine@dedbae16a050ccae52a7fbd1d1550f617cb1520d -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/shisa-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@dedbae16a050ccae52a7fbd1d1550f617cb1520d -
Trigger Event:
push
-
Statement type:
File details
Details for the file hipengine-0.4.0-py3-none-manylinux_2_39_x86_64.whl.
File metadata
- Download URL: hipengine-0.4.0-py3-none-manylinux_2_39_x86_64.whl
- Upload date:
- Size: 21.7 MB
- Tags: Python 3, manylinux: glibc 2.39+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3bc5c1bcdaa1a8e7b3aad90209eb1a5a0ef69cab25291fad3b21dc25c29ae7a5
|
|
| MD5 |
cb21ade2dd8a1cf69dd0ea192e6ed7dd
|
|
| BLAKE2b-256 |
dc57d80faa992c081e4a56bac903a4c63e51355966d4b036b1a6acb3c8480d7c
|
Provenance
The following attestation bundles were made for hipengine-0.4.0-py3-none-manylinux_2_39_x86_64.whl:
Publisher:
publish.yml on shisa-ai/hipEngine
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hipengine-0.4.0-py3-none-manylinux_2_39_x86_64.whl -
Subject digest:
3bc5c1bcdaa1a8e7b3aad90209eb1a5a0ef69cab25291fad3b21dc25c29ae7a5 - Sigstore transparency entry: 2402318115
- Sigstore integration time:
-
Permalink:
shisa-ai/hipEngine@dedbae16a050ccae52a7fbd1d1550f617cb1520d -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/shisa-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@dedbae16a050ccae52a7fbd1d1550f617cb1520d -
Trigger Event:
push
-
Statement type: