Skip to content

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 22 Jul 05:52
· 126 commits to main since this release

What's Changed

  • feat(spm): CPU-only iOS/macOS SwiftPM package (0.2.3) by @iamstuffed in #224
  • fix(spm): release survivor-check false-positived on doc comment by @iamstuffed in #225
  • feat(metal): Metal GPU backend on iOS (Phase 2) by @iamstuffed in #226
  • chore: bump to 0.2.4 (Metal-enabled iOS SwiftPM) by @iamstuffed in #227
  • feat(ios): CeraChat example app (Phase 4 — final iOS phase) by @iamstuffed in #228
  • feat(lora): apply LoRA to LFM2 shortconv projections across all backends by @iamstuffed in #229
  • feat(metal): native Q4_K GEMV kernel + Q6_K layer weights (enable Q4_K_M on Metal) by @iamstuffed in #230
  • chore(docs): fix rustdoc intra-doc links + add CI doc-lint gate by @iamstuffed in #231
  • ci: drop broken Microsoft apt sources before apt-get update by @iamstuffed in #233
  • ci: match Microsoft apt sources by content, not hardcoded filenames by @iamstuffed in #234
  • chore: bump to 0.2.5 by @iamstuffed in #232
  • feat(cera): benchmark-client primitives (CPU descriptor, provenance, memory pre-flight) by @iamstuffed in #235
  • perf(metal): larger prefill query-block (QPT=32) for hd=64 attention by @iamstuffed in #237
  • feat(cera)!: fallible KV allocation — OutOfMemory instead of abort by @iamstuffed in #236
  • chore: bump to 0.2.6 and reconcile crate READMEs with current API by @iamstuffed in #238
  • feat: tool calling (function calling) across core, CLI, FFI, WASM by @iamstuffed in #239
  • chore: bump to 0.2.7 + document tool calling across READMEs by @iamstuffed in #240
  • fix(cera-ffi): real record defaults so GenerateOpts()/SessionConfig() construct by @iamstuffed in #241
  • perf(cera): persistent affinity-pinned threadpool; decode on all P-cores by @iamstuffed in #243
  • feat(cera): benchmark-parity API for external harnesses by @iamstuffed in #242
  • chore: release 0.3.0 (breaking: GenerateOpts/ModelMetadata public-field additions) by @iamstuffed in #244
  • chore: bump to latest nightly (drop stabilized dotprod gate) + README cleanup by @iamstuffed in #245
  • feat(cera): Q5_K quantization support by @iamstuffed in #246
  • perf(cera): wire gemv_q6_k into wgpu GEMV dispatch (Q6K stays quantized) by @iamstuffed in #247
  • feat(cera): native wgpu Q5_K GEMV kernel by @iamstuffed in #248
  • perf(cera): native Q4_K wgpu GEMV + GEMM (Q4KM stays quantized) by @iamstuffed in #249
  • fix(cera): gemv_q6_k robustness — odd-m OOB guard + get_wid for large m by @iamstuffed in #250
  • perf(cera): store the wgpu LM head as f16 (B3) + complete get_wid sweep by @iamstuffed in #251
  • feat(cera): native wgpu flash-attention decode kernel by @iamstuffed in #252
  • refactor(cera): delete classic wgpu decode-attention kernel (superseded by flash) by @iamstuffed in #253
  • feat(cera): NEON int8-dotprod GEMV for Q4_K on CPU by @iamstuffed in #254
  • feat(cera): GPU I/O counters + Android bench/profile harness + baseline (T0) by @iamstuffed in #255
  • fix(metal): bind freq_factors + the full params struct in the audio decoder by @iamstuffed in #256
  • perf(gpu): register-tiled K-quant GEMM — 2.9x prefill on Q4_K_M by @iamstuffed in #257
  • perf(gpu): register-tiled Q8_0 GEMM; drop the dead wgpu gemm_* kernels by @iamstuffed in #258
  • docs(gpu): measure decode — T6 closed WONTFIX, T5b attributes the GPU time by @iamstuffed in #259
  • perf(cpu): batched Q4_K + Q6_K int8 GEMM for prefill (~2.5x) by @iamstuffed in #260
  • perf(wgpu): vectorize Q4_K/Q5_K GEMV weight loads (T11) by @iamstuffed in #261
  • perf(metal): batched Q6_K GEMM for prefill (~2.3x on Q4_K_M) by @iamstuffed in #262
  • perf(metal): Q4_K GEMM isolation microbench + ceiling analysis by @iamstuffed in #263
  • perf(cera): disable zero-init of workgroup memory in compute pipelines by @iamstuffed in #264
  • refactor(metal): centralize kernel param mirrors + guard shader/Rust parity by @iamstuffed in #265
  • perf(gpu): 8×4 reg-tile prefill GEMM — 2.3x on Pixel/PowerVR by @iamstuffed in #267
  • refactor(metal): migrate ViT vision encoder onto typed kernel params by @iamstuffed in #268
  • Improve wgpu context binding by @iamstuffed in #269
  • fix(wgpu): tile prefill attention over queries to fit the storage-binding limit by @iamstuffed in #270
  • docs(wgpu): correct attention_prefill scores_buf sizing comments for query tiling by @iamstuffed in #271
  • perf(wgpu): online-softmax flash prefill attention — drop scores materialization by @iamstuffed in #272
  • perf(cpu): ARM SMMLA i8mm Q4_0 prefill GEMM + CI CPU benchmarks by @iamstuffed in #273
  • perf(cpu): parallelize the x86 Q4_0 GEMV across rows by @iamstuffed in #274
  • perf(cpu): AVX-512 VNNI int8 activation path for x86 GEMV by @iamstuffed in #275
  • perf(cpu): batched int8 prefill GEMM for x86 by @iamstuffed in #276
  • perf(cpu): reduce once per row in the AVX-512 f32 GEMV kernels by @iamstuffed in #277
  • chore(scripts): add host CPU profiling script by @iamstuffed in #278
  • ci: run batched-prefill parity on small GGUF fixtures by @iamstuffed in #279
  • feat(quant): Q4_1 support on the CPU path, and reject unsupported dtypes by @iamstuffed in #280
  • perf(cpu): AVX-512 VNNI Q4_K/Q6_K int8 GEMV + batched prefill GEMM by @iamstuffed in #281
  • perf(cpu): admit K-quants on the dense-transformer batched prefill path by @iamstuffed in #282
  • perf(cpu): halve the acc dependency chain in the AVX-512 row kernels by @iamstuffed in #283
  • docs: record why DECODE_MAX_AUTO is 12; add a dispatch-cost microbench by @iamstuffed in #284
  • perf(cpu): widen TILE_N to 8, and fix the benchmark that hid it by @iamstuffed in #285
  • perf(cpu): row-tile the Q4_0/Q8_0 prefill GEMM (+19%) by @iamstuffed in #286
  • chore: release 0.3.1 by @iamstuffed in #287

Full Changelog: v0.2.2...v0.3.1