Furiosa SDK Release 2026.5.0b0#
Furiosa SDK 2026.5.0b0 is the first beta release of 2026.5.0. The changes since 2026.4.0 are summarized below.
All Changes#
Furiosa-LLM#
Model Support & Multimodal Serving#
Added support for the
Gemma3ForConditionalGenerationarchitecture (MedGemma 4B), including image-and-text requests.Added full support for the
Qwen3_5ForConditionalGenerationandQwen3_5MoeForConditionalGenerationarchitectures, including vision input, tool-call parsing, and reasoning.Added support for the
SolarOpen2ForCausalLMarchitecture, including tool-call parsing and reasoning.
Engine Core & Performance#
Added serving, prefix caching, and configurable state snapshots for linear-attention models.
Enabled multi-replica data parallelism and cache-aware request routing for SSM models.
Enabled overlap scheduling for vision-language models.
Reduced gaps between batches for text-only models using overlap scheduling and NPU sampling.
Added CPU pinning for NPU I/O threads through the new
--npu-io-cpusCLI argument and thenpu_io_cpusargument in the PythonLLMAPI.Enabled L3 KV-cache backup and prefetch with overlap scheduling, and refactored L2/L3 cache-transfer management.
Improved profile-guided decode cost estimation for different batch sizes and context lengths, including full and sliding-window attention.
Refactored input preparation for eager and overlap scheduling and reduced host submission overhead.
Refactored speculative-decoding scheduling to unify target prefill, draft generation, and verification.
Added profiling for KV-cache offload, reload, and promotion, with optional detailed DMA traces through
FURIOSA_PROFILER_DMA_DETAIL=true.
API & Usability Improvements#
Refactored multimodal preprocessing, improved code quality, and enhanced caching.
Added
StructuredOutputsParams.terminate_on_acceptingfor xgrammar and llguidance. Set it toTrueto stop generation as soon as the output satisfies the grammar; the default isFalse.Enabled JSON strict mode in xgrammar. Generated objects exclude undeclared fields unless allowed by
additionalProperties;json_objectresponses continue to allow arbitrary properties.Refactored structured-output handling to unify reasoning and final-content configuration.
Improved Qwen3 Thinking chat-template detection for OpenAI-style text and image content lists.
Expanded time-to-first-token, inter-token latency, and end-to-end latency histogram ranges to match vLLM. Added a time-per-output-token metric for average token-generation latency after the first token.
Bug Fixes#
Fixed image-embedding cache reuse across different preprocessing sizes, preventing token-count mismatches when reusing the same image.
Fixed prefix-cache fallback for sliding-window models after host-cache reload failures and during prefill/decode disaggregation.
Fixed the Hermes tool parser’s handling of nested JSON in tool arguments.
Fixed Solar Open structured-output requests with low reasoning effort in streaming Chat Completions and the Responses API, including control markers leaking into streamed content.
Added support for Mistral NeMo checkpoints using ModelOpt static FP8 quantization.
FXB & Compiler Tooling#
Added slow-kernel reporting to diagnose FXB compilation bottlenecks, with a default threshold of 15 minutes. Configure it with
--slow-kernel-threshold.Added
furiosa-tcc --evaluate-tclto estimate the cycle cost of TCL IR from a file or standard input without generating an EDF.Added FXB Manifest v3, composed-bucket metadata, and initial megakernel build infrastructure. Composed megakernel implementations remain in development.
Device Runtime#
Improved weight-loading memory management with huge-page support and system-memory fallback, and reduced unnecessary upload copies.
Improved multi-chip synchronization and execution ordering.
Reduced the default IPC timeout from 60 to 50 seconds so firmware errors can be reported before the driver timeout. Improved timeout and tensor-parallel error diagnostics, and reduced IPC overhead on supported drivers.
Compatibility & Rust API Changes#
Renamed linear-attention runtime settings from
linear_tossm_. Replace--linear-full-memory-ratio,--linear-state-cache-size, and--linear-state-intervalwith--ssm-full-memory-ratio,--ssm-state-cache-size, and--ssm-state-interval, respectively. Update the corresponding PythonLLMkeyword arguments as well.Changed the default SSM state-cache allocation from 1,024 slots to a state-to-KV memory ratio of
1.0. Use--ssm-state-cache-sizefor a fixed slot count or--ssm-full-memory-ratioto adjust the ratio; the options are mutually exclusive.