Skip to main content

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

hipengine-0.4.0.tar.gz (55.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hipengine-0.4.0-py3-none-manylinux_2_39_x86_64.whl (21.7 MB view details)

Uploaded Python 3manylinux: glibc 2.39+ x86-64

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

Hashes for hipengine-0.4.0.tar.gz
Algorithm Hash digest
SHA256 d5fb55d1c6bcc882dcadc54b4a088e50650f189da2228304a2855a4b32423647
MD5 96674a85c30d935f716f006b6b2fdeaf
BLAKE2b-256 08606848b40a5b24ff9717c0a2ab2ea393c7a02b53176b7c98441d30d451fae2

See more details on using hashes here.

Provenance

The following attestation bundles were made for hipengine-0.4.0.tar.gz:

Publisher: publish.yml on shisa-ai/hipEngine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hipengine-0.4.0-py3-none-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for hipengine-0.4.0-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 3bc5c1bcdaa1a8e7b3aad90209eb1a5a0ef69cab25291fad3b21dc25c29ae7a5
MD5 cb21ade2dd8a1cf69dd0ea192e6ed7dd
BLAKE2b-256 dc57d80faa992c081e4a56bac903a4c63e51355966d4b036b1a6acb3c8480d7c

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page