xinfer-ai 0.14.0 → 0.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -98,9 +98,10 @@ Add `--kvcache-dtype` to compress KV cache and extend context length:
98
98
  | QwQ-32B | Q4_K_M | 32B | **46.02** tokens/s |
99
99
  | **Qwen3-30B-A3B** | NVFP4 | **30B (MoE)** | **197.29** tokens/s (**RTX 5090**) |
100
100
  | **Qwen3-30B-A3B** | NVFP4 | **30B (MoE)** | **72.86** tokens/s (**V100, Software FP4**) |
101
+ | **Qwen3-Next-80B** | AWQ | **80B (MoE)** | **90** tokens/s (**Hopper**) |
101
102
  | **Qwen3.5-27B** (**Multimodal**) | Q4_K_M | **27B (Dense)** | **49.33** tokens/s |
102
103
  | **Qwen3.5-27B/Qwen3.6-27B** | FP8 | **27B (Dense)** | **45** tokens/s (**Hopper**) |
103
- | **Qwen3.6-35B-A3B** (**Multimodal**) | FP8 | **35B (MoE)** | **110** tokens/s (**Hopper**) |
104
+ | **Qwen3.6-35B-A3B** (**Multimodal**) | FP8 | **35B (MoE)** | **120** tokens/s (**Hopper**) |
104
105
  | **GLM4.7 Flash** | NVFP4 | **30B (MoE)** | **79** tokens/s (**Hopper, Software FP4**) |
105
106
  | **Gemma4-31B** | ISQ (BF16→Q4K) | **31B (Dense)** | **47** tokens/s (**Hopper**) |
106
107
  | **Gemma4-26B-A4B** | NVFP4 | **26B (MoE)** | **137.23** tokens/s (**RTX 5090**) |
@@ -235,6 +236,9 @@ xinfer --i --m unsloth/Qwen3.5-27B-GGUF --f Qwen3.5-27B-Q4_K_M.gguf
235
236
  # Faster GDN prefill on Hopper with slight precision loss
236
237
  SM90_LOWER_PRECISION_GDN_PREFILL=1 xinfer --m Qwen/Qwen3.5-35B-A3B-FP8
237
238
 
239
+ # AWQ (pack-quantized)
240
+ xinfer --m cyankiwi/Qwen3-Coder-Next-AWQ-4bit
241
+
238
242
  # MultiNode: GLM 5.2 (DeepSeek V3.2 architecture, FP8)
239
243
  # Master node
240
244
  xinfer --d 0,1,2,3,4,5,6,7 --m zai-org/GLM-5.2-FP8 --num-nodes 2 --node-rank 0 --master-addr 192.168.xxx.xxx
@@ -479,6 +483,7 @@ xinfer --m Qwen/Qwen3.6-27B-FP8 --ui-server --enable-tool-grammar
479
483
  | [Rust Crate](docs/rust_crate.md) | Use as a library |
480
484
  | [Add a Model](docs/add_model.md) | Port a new architecture (AI-assisted) |
481
485
  | [Test a Model](docs/test_model.md) | Validate model quality (AI-assisted) |
486
+ | [CUDA Precision Probes](docs/precision_probes.md) | Isolate CUDA kernel precision problems |
482
487
 
483
488
  **Using Agents under xInfer backend:** [xbot](docs/xbot.md) · [OpenCode](docs/opencode.md) · [Kilo Code](docs/kilocode.md) · [Claude Code](docs/claude_code.md) · [Goose](docs/goose.md)
484
489
 
@@ -0,0 +1,66 @@
1
+ # CUDA Precision Probe Suite
2
+
3
+ The precision suite is a kernel-level differential test harness. Use it to isolate a CUDA precision problem before attributing the symptom to a full model or sampler.
4
+
5
+ ## Run the complete suite
6
+
7
+ From the xInfer repository root:
8
+
9
+ ```bash
10
+ ./tests/run_precision_suite.sh
11
+ ```
12
+
13
+ The runner:
14
+
15
+ 1. Detects every visible GPU's compute capability with `nvidia-smi` and uses the lowest capability for a safe multi-GPU build.
16
+ 2. Builds all Rust probes once with the release CUDA configuration.
17
+ 3. Runs each Rust probe followed by its paired Python comparator.
18
+
19
+ The probes cover Candle CUDA/PTX operations, ISQ/GGUF Q4_K and Q6_K, attention.rs kernels, FP8, GDN, paged FlashInfer attention, and the NVFP4 paths supported by the detected GPU. Python comparisons use independent PyTorch references and official Python FlashInfer when available. vLLM and sglang comparisons are attempted when those packages are installed.
20
+
21
+ The suite prints a retained result directory such as:
22
+
23
+ ```text
24
+ /tmp/xinfer_precision_suite_sm120_<pid>
25
+ ```
26
+
27
+ Read the first `FAIL` line and the corresponding stage's `[FAIL]` marker. The failing stage identifies the subsystem; the operation name identifies the kernel family or operation.
28
+
29
+ ## Rerun one comparator
30
+
31
+ Probe binaries and their output files are retained, so a Python comparator can be rerun without rebuilding or executing the GPU probe again:
32
+
33
+ ```bash
34
+ python3 tests/probes/compare_candle_probe.py \
35
+ /tmp/xinfer_precision_suite_sm120_<pid>/candle.bin
36
+
37
+ python3 tests/probes/compare_flashinfer_probe.py \
38
+ /tmp/xinfer_precision_suite_sm120_<pid>/flashinfer
39
+ ```
40
+
41
+ Use the corresponding comparator in `tests/probes/` for the failed stage:
42
+
43
+ | Stage | Comparator |
44
+ |---|---|
45
+ | Candle and Q4_K/Q6_K | `compare_candle_probe.py` |
46
+ | attention.rs common kernels | `compare_attention_misc_probe.py` |
47
+ | FP8 | `compare_fp8_probe.py` |
48
+ | GDN | `compare_gdn_probe.py` |
49
+ | FlashInfer attention | `compare_flashinfer_probe.py` |
50
+ | NVFP4 | `compare_nvfp4_probe.py` |
51
+
52
+ ## Optional GDN audit
53
+
54
+ The SM90 persistent FlashInfer GQA path is opt-in and excluded by default. Audit it explicitly with:
55
+
56
+ ```bash
57
+ ./tests/run_precision_suite.sh --include-optin-gdn
58
+ ```
59
+
60
+ This flag is only for auditing that optional path; it does not enable or change the production routing.
61
+
62
+ ## Interpreting SM capability results
63
+
64
+ For SM70 and SM75, the runner automatically builds the legacy CUDA path with only `cuda,nccl`. FlashInfer and CUTLASS-dependent attention and hardware-NVFP4 cases are skipped, but the software FP8 and software NVFP4 GEMM/MoE/helper cases still run and are compared with the independent PyTorch golden. Since attention.rs disables BF16 CUDA kernels below SM80, the legacy software probes use F16 there. The CUDA toolkit must also provide an `nvcc` that supports `compute_70`/`compute_75`; CUDA 12.6 is the recommended legacy-toolkit choice. CUDA 13 `nvcc` rejects these targets before Rust compilation begins.
65
+
66
+ On SM90, Blackwell-only NVFP4 hardware helpers are reported as `SKIP` because they cannot execute on that GPU. Run the suite on SM100/SM120 hardware to exercise hardware NVFP4 dense, GEMM, and MoE paths. Missing optional Python packages are reported explicitly; install versions matching the CUDA and PyTorch environment when those golden comparisons are required.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "xinfer-ai",
3
- "version": "0.14.0",
4
- "assetVersion": "0.14.0",
3
+ "version": "0.14.2",
4
+ "assetVersion": "0.14.2",
5
5
  "description": "xInfer — a high-performance LLM inference engine in Rust with CUDA/Metal acceleration",
6
6
  "license": "MIT",
7
7
  "homepage": "https://github.com/guoqingbao/xinfer#readme",