Releases: cactus-compute/cactus
Releases · cactus-compute/cactus
Release list
v2.1.0
What's Changed
- docs: fix "HuggigFace" typo in README by @DaveyEke in #746
- M3 pro bench results by @ParkiratS in #762
- add wider cq support by @jakmro in #763
- add needle support by @jakmro in #765
- add tool calling support to run env by @jakmro in #766
- optimize attention and gemv kernels by @jakmro in #776
- Custom transpiler by @ParkiratS in #778
- Include directly for std::setw/setfill/setprecision (fixes build on libstdc++/Pi) by @nitishagar in #782
- Fix per-matrix CQ4 reciprocals in Metal batch transform by @clumsylad21 in #784
- Bucket the Parakeet audio encoder by @jakmro in #791
New Contributors
- @DaveyEke made their first contribution in #746
- @nitishagar made their first contribution in #782
- @clumsylad21 made their first contribution in #784
Full Changelog: v2.0.1...v2.1.0
v2.0.1
v2.0
What's Changed
- Lfm tool arg fixes by @justinl66 in #596
- Gemma4 multimodal multi-turn fixes by @ncylich in #598
- LFM NPU Fallback + Tokenizer Fixes by @ParkiratS in #605
- Fix converter logic for models not on cactus huggingface by @cattermelon1234 in #608
- Graph remaining ops by @cattermelon1234 in #578
- Karen/v2 tq by @kar-m in #615
- Add fused dense INT4 MLP op for Gemma-4 E2B decode by @ncylich in #617
- inner 1 fast path by @cattermelon1234 in #618
- Hybrid INT8/FP16 decode kernel: 2× faster + sliding-window fast path by @ncylich in #625
- axis reductions fast path -> v2 by @cattermelon1234 in #629
- Pytorch capture -> cactus v2 by @cattermelon1234 in #622
- Karen/tq v2 debugging by @kar-m in #630
- added cactus download cq flag by @kar-m in #631
- align c++ official Needle inference by @jakmro in #637
- Fix CQ decode fast path for mmap weights by @ncylich in #633
- Cactus Quant Speedup by @justinl66 in #641
- Transpiler complete by @ParkiratS in #640
- fix: add missing include for Linux ARM64 builds by @ramanishka in #647
- Update Cpp pipeline with transpiler, Add Android/IOS Bindings, Fix CLI by @justinl66 in #649
- Transpiler complete by @ParkiratS in #652
- Refactor quantization parameters in CLI and publish workflow by @jakmro in #651
- Bindings by @jakmro in #653
- Cleanup V2 (Cpp Native + CLI Update) by @justinl66 in #650
- KV Cache Bugfix (reset cache, think token data shift, underflow guard) by @justinl66 in #658
- bug fixes, cleanups, docs & blog by @jakmro in #657
- Karen/v2 transcribe by @kar-m in #660
- Build system, bindings, CI cleanup, pypi & brew by @jakmro in #661
- Add native chunked prefill for transpiled LLM bundles by @ncylich in #659
- Optimize orthogonal CQ4 LM head layout by @ncylich in #663
- Make Android scheduling load-aware by @ncylich in #666
- V2 NPU Support by @justinl66 in #664
- Add v2 local HTTP server by @ncylich in #669
- Multiple model fixes by @jakmro in #673
- Jax Transpiler path by @Ayan9074 in #671
- Propagate test executable failures by @psymon-ai in #683
- Wire text/image/audio embeddings on the v2 transpiler; add /v1/embeddings by @ncylich in #676
- Full implmentation into Gemma4 by @ParkiratS in #668
- Jaxtranspilerpath by @Ayan9074 in #681
- V2 by @HenryNdubuaku in #689
- Merge cleanup by @jakmro in #692
- Long-context: rolling KeyDiff KV-cache compaction + chunked prefill by @ncylich in #686
- Correct docs to match current code by @ncylich in #696
- Karen/needle v2 by @kar-m in #690
- Karen/gemmma multiturn template by @kar-m in #711
- fixed needle rope bug, moved repeated rope table instantiations from … by @kar-m in #713
- added language model embed component by @kar-m in #714
- engine+graph: thread-safe last_error + JSON option-parse hardening by @ncylich in #702
- Fix Gemma 4 NPU vision encoder on non-square images by @jakmro in #718
- rag interface fix for lm embeddings by @kar-m in #719
- bindings: JNI & React-Native FFI memory-safety by @ncylich in #708
- convert/CLI: conversion & tokenizer robustness by @ncylich in #707
- transpiler: op routing, fusion & JAX-capture correctness by @ncylich in #706
- transpiler: JAX attention causality + reduction precision, attention-output layout guard by @ncylich in #705
- telemetry: JSON-escape records + bound the offline event cache by @ncylich in #704
- cactus-engine: runtime correctness & memory-safety by @ncylich in #703
- Fuse dispatch for GEMV by @ncylich in #717
- Pad the chunked-prefill tail for sliding-window models by @ncylich in #716
- Fix multi-turn chat and tool-call defects across model families by @ncylich in #721
- Fix onboarding quickstart bugs and guard destructive
cactus cleanby @rshemet in #722 - convert: fold gemma4 audio projection scaling into the weight reparam by @ncylich in #723
- Parakeet-TDT NPU acceleration on the Apple Neural Engine by @ncylich in #729
- fixed lfm and qwen vl handling and run.cpp multiturn behavior by @kar-m in #728
- Simplify CLI: one bundle-resolution ladder + CQ level in list by @rshemet in #715
- gemma4: fix 16x audio soft-token magnitude on NPU via single-source scaling by @ncylich in #726
- readme: add Parakeet decode tps numbers by @ncylich in #732
- Centralize build flags into cactus_flags; shrink libs by @jakmro in #735
- Stt streaming by @jakmro in #730
- Karen/parakeet probe by @kar-m in #739
- parakeet: honor should_stop during TDT transcription by @rshemet in #738
- squash convert &transpile, and align cli commands by @jakmro in #740
- M3 pro numbers by @ParkiratS in #742
- fix(graph): apply SIGMOID/TANH activations in MoE layer by @yus100 in #736
- gemma4: run the audio encoder correctly and fast on the Apple Neural Engine by @ncylich in #734
- Removed unnecessary null pointer checks by @wasup-yash in #724
- MOE by @ParkiratS in #727
- added cq4 optimizations to cq2 and cq3 by @kar-m in #744
- Cactus code by @jakmro in #745
- Fix C++ test build: expose vendored libs include (picojson) by @rshemet in #748
- Trie-based grammar constraints for Gemma force_tools by @rshemet in #747
- Metal Support by @jakmro in #750
- Benchmarks by @jakmro in #752
New Contributors
- @ramanishka made their first contribution in #647
- @psymon-ai made their first contribution in #683
- @yus100 made their first contribution in #736
- @wasup-yash made their first contribution in #724
Full Changelog: v1.14...v2.0
v1.14
What's Changed
- Enable SDL2 live mic recording in chat build by @rshemet in #579
- fix gemma4 conversion and cli by @jakmro in #581
- Made non-thinking default for gemma4 & Introduce simultaneous multimodalitiy by @ParkiratS in #582
- gemma4 vision memory optimizations by @jakmro in #590
- added a prompt fix for better vision+audio prompt, removed code that … by @kar-m in #589
- added default confidence and wired that for vlm by @kar-m in #591
- Gemma4 fixes by @ParkiratS in #588
- Gemma4 tool calling and RoPE fixes by @ncylich in #594
- increased rolling window size for gemma4 by @kar-m in #593
Full Changelog: v1.13...v1.14
v1.13
What's Changed
- Improve model publishing error handling in workflow by @jakmro in #546
- Fix VLM prefill cache reuse image path slicing by @KayaanT in #545
- Add cache cleanup for Hugging Face models in export_and_publish_model by @jakmro in #547
- Add branch override option to publish workflow by @ncylich in #548
- Fix Gemma 3n conversion memory usage by @ncylich in #549
- Update blog URL in README.md by @amerkld in #544
- Parakeet streaming fix by @ParkiratS in #551
- Tool call prompt formatting by @jakmro in #558
- Feature Cleanup by @ParkiratS in #559
- Add Whisper v3 (large-v3) support by @ncylich in #557
- Add LFM2.5 VL 450M by @yujonglee in #567
- LFM2-VL-450M: fix garbled output (vision tower, template, kernel) by @ncylich in #565
- Change default transcribe model to parakeet-tdt-0.6b-v3 by @rshemet in #566
- Expose min_p and repetition_penalty in completion options by @DuFanYin in #560
- Graph save load by @cattermelon1234 in #556
- Pyannote features and optimizations by @jakmro in #571
- Karen/needle by @kar-m in #574
- fix apple i8mm detection to use runtime sysctl check by @DuFanYin in #562
- Fix streaming transcribe by @jakmro in #576
New Contributors
Full Changelog: v1.12...v1.13
v1.12
What's Changed
- Gemma 4
- Versioned docs with quickstart and SDK chooser by @rshemet in #522
- add CACTUS_CLOUD_API_BASE by @yujonglee in #521
- Model weights discoverability by @jakmro in #520
- fix: set telemetry framework to "rust" for Rust bindings by @rshemet in #519
- fix: prefer local libcactus over system-installed in test build by @rshemet in #516
- Engine updates: tool calling, compute_entropy, converter improvements by @ncylich in #517
cactus_prefillby @mhayes853 in #512- Missing torch ops by @cattermelon1234 in #518
- Docs fixes by @jakmro in #524
- docs: document custom vocabulary support for transcription by @ayushmk7 in #525
- Youtu by @jakmro in #530
- Clean up Hugging Face cache after model export by @jakmro in #533
- Added parakeet optimizations for apple by @ParkiratS in #534
- Cactus torch api clean by @cattermelon1234 in #529
- add CACTUS_CLOUD_HEADERS support by @yujonglee in #531
- Parakeet encoder optimization by @ParkiratS in #535
- Update docs site_url to docs.cactuscompute.com by @rshemet in #527
- Custom vocabulary support for Parakeet TDT by @rshemet in #532
- Fix VLM crash when adding multiple images in multi-turn conversation by @FarooqMulla in #539
- New LayerNorm Kernel by @nshejwalkar in #540
- Add pyannote/segmentation-3.0 speaker diarization (10ms, 976× realtime) by @rshemet in #538
- Tinyllama by @ParkiratS in #536
New Contributors
- @cattermelon1234 made their first contribution in #518
- @ayushmk7 made their first contribution in #525
- @FarooqMulla made their first contribution in #539
Full Changelog: v1.11...v1.12
v1.11
What's Changed
- Fix/issue#490 by @lennartvoelz in #491
- simplify and align sdks by @jakmro in #489
- remove models by @jakmro in #492
- Update model configurations and enhance workflow settings in publish_… by @jakmro in #495
- Update workflow to use macos-latest instead of macos-latest-xlarge by @jakmro in #496
- Add dynamic max_tokens estimation based on audio length in cactus_tra… by @jakmro in #499
- macOS: link clang_rt.osx to fix SME2 (_arm_tpidr2*) link failures under rustc by @yujonglee in #498
- Add FFI log control: cactus_log_set_level and cactus_log_set_callback by @yujonglee in #497
- Karen/qwen3p5 by @kar-m in #481
- CLI upgrades by @rshemet in #504
- feat(stt): custom vocabulary biasing for all speech models by @vyomshah05 in #451
- Add Gemma 3N (text-only) model support by @ncylich in #493
- fix: make FunctionGemma prompt formatting strict by @lennartvoelz in #502
- fix: apply logit bias before greedy sampling by @ncylich in #507
- remove redundant file linking for tie_word_embeddings by @jakmro in #506
- Port general engine improvements for TinyLlama by @ncylich in #513
- Speech-to-Text Timestamps by @jakmro in #515
New Contributors
- @lennartvoelz made their first contribution in #491
Full Changelog: v1.10...v1.11
v1.10
What's Changed
- Enhance model publishing workflow with detailed metadata and licenses by @jakmro in #459
- Added parakeet to publish to hf yaml by @ParkiratS in #464
- Update telemetry for supported platforms by @justinl66 in #465
- added back moe weight conversion by @kar-m in #468
- adjust manual workflow for model publish by @jakmro in #470
- Parakeet blog by @ammesatyajit in #467
- perf: add FP16 fast path for LayerNorm by @yujonglee in #433
- Issue #406: Bilinear + Depthwise Optimizations by @PiyawanChaiprasit2006 in #466
- ARM SME2: Accelerate MatMul FP16 by @aarav18 in #457
- build: add Objective-C ARC support for NPU sources by @jakmro in #475
- long transcription by @jakmro in #482
- Language detection by @ParkiratS in #471
- Parakeet tdt by @ParkiratS in #476
- kotlin: expose forceTools in CompletionOptions by @rshemet in #484
- Update model list in README and publish_to_hf.yml with new LiquidAI m… by @jakmro in #487
- test: updated rag test conditions by @nshejwalkar in #488
- optimize scale correction in cactus_attention_f16_h64 by @jakmro in #485
- fix greedy sampler ignoring logit suppression by @jakmro in #486
New Contributors
- @PiyawanChaiprasit2006 made their first contribution in #466
- @aarav18 made their first contribution in #457
Full Changelog: v1.9...v1.10
v1.9
Whats New
- 50% faster int4
- Parakeet models
- LFM2-MOE models
- BugFixes
- Hybrid Inference
PRs
- fix stt test and add cpp ci by @yujonglee in #413
- add IRFFT by @yujonglee in #425
- fixed lfm2 vlm lmhead issue that came in with hf 5.0.0 by @kar-m in #426
- raspberry pi numebrs and linux fixes by @kar-m in #437
- Added parakeet model by @ParkiratS in #443
- Adding parakeet graph by @ParkiratS in #446
- Parakeet kernel by @ParkiratS in #445
- added cloud fallback and documentation+tests by @kar-m in #369
- Parakeet FFI by @ParkiratS in #447
- Parakeet convert and tests by @ParkiratS in #444
- Hybrid transcription blog post by @rshemet in #449
- Fixed missing engine changes by @ParkiratS in #453
- feat(python): add context manager support for safe resource cleanup by @yogyam in #412
- Completed ubuntu CICD pipeline by @ncylich in #455
- Tie-embed-conversion-fix by @ncylich in #454
- tiny graph fix and added benchmark by @kar-m in #456
Full Changelog: v1.8...v1.9
Breaking changes
Weights unfortunately need to be refreshed for this :(
v1.8
What's Changed
- Kernel optimisations by @HenryNdubuaku in #397
- Improve INT4 by @ncylich and @jrajala6 in #343
- add einops dependency to requirements by @jakmro in #371
- Add language parameter support for Whisper transcription by @rshemet in #384
- added moe support for lfm by @kar-m in #374
- Add raw FFI binding for Rust by @yujonglee in #382
- fix: handle spaces in paths when running shell commands by @adithya-n05 in #377
- fixing sentencepiece detection for transformers 5.0+ (still backwards compatible) by @ncylich in #373
- Improve Telemetry by @mhayes853 in #372
- proprietry commit by @HenryNdubuaku
- Update performance metrics for iPhone 13 Mini and Galaxy A56 by @jakmro in #386
- fix: improve version sorting and enhance model export tagging by @jakmro in #387
- Add Rust SDK and language parameter documentation by @rshemet in #389
- Basic addition of int4 functionality by @jrajala6 in #343
- add scalar log by @yujonglee in #390
- fix assertion and linux build in rust test by @yujonglee in #392
- Justin/api fixes by @justinl66 in #380
- Update telemetry by @justinl66 in #394
- docs: add compatibility guidelines for runtime and weights by @jakmro in #398
- add STFT_COMPLEX, derive stft_magnitude via graph composition by @yujonglee in #395
New Contributors
- @yujonglee made their first contribution in #382
- @adithya-n05 made their first contribution in #377
Full Changelog: v1.7...v1.8
Note:
This breaks the weights.