Skip to content

Releases: hyeons-lab/cera

v0.5.5

Choose a tag to compare

@github-actions github-actions released this 07 Sep 19:15

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
  • perf(cpu): run the x86 int8 GEMM/GEMV from the AVX2 tier up, not VNNI only by @iamstuffed in #288
  • perf(cpu): SIMD flash attention + wider prefill parallelism on x86 by @iamstuffed in #289
  • perf(cpu): defer the K-quant GEMM reduction into a per-column accumulator by @iamstuffed in #290
  • perf(cpu): repack Q4_0 weights into an 8-row interleave for prefill by @iamstuffed in #291
  • perf(cpu): repack Q4_K weights into an 8-row interleave for prefill by @iamstuffed in #292
  • perf(cpu): route K-quant decode through the narrow decode pool by @iamstuffed in #293
  • ci(bench): add a best-effort llama.cpp head-to-head to the benchmark job by @iamstuffed in #294
  • perf(cpu): multi-accumulator Q4_K/Q6_K decode dot (+10% decode) by @iamstuffed in #295
  • perf(cpu,metal): batch Q4_1 tensors in prefill instead of whole-model fallback by @iamstuffed in #296
  • perf(cpu): ARM i8mm/SMMLA Q4_K prefill GEMM by @iamstuffed in #297
  • perf(cpu): ARM i8mm/SMMLA Q6_K prefill GEMM by @iamstuffed in #298
  • perf(cpu): run the x86 prefill GEMM on the pinned RowPool, not rayon by @iamstuffed in #299
  • perf(cpu): f16 KV cache for decode-at-depth by @iamstuffed in #300
  • perf(cpu): f16 KV cache for LFM2 decode + prefill by @iamstuffed in #301
  • perf(cpu): run prefill attention on the pinned RowPool + widen LFM2 to query heads by @iamstuffed in #302
  • perf(cpu): activ...
Read more

v0.5.4

Choose a tag to compare

@github-actions github-actions released this 06 Sep 00:06

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
  • perf(cpu): run the x86 int8 GEMM/GEMV from the AVX2 tier up, not VNNI only by @iamstuffed in #288
  • perf(cpu): SIMD flash attention + wider prefill parallelism on x86 by @iamstuffed in #289
  • perf(cpu): defer the K-quant GEMM reduction into a per-column accumulator by @iamstuffed in #290
  • perf(cpu): repack Q4_0 weights into an 8-row interleave for prefill by @iamstuffed in #291
  • perf(cpu): repack Q4_K weights into an 8-row interleave for prefill by @iamstuffed in #292
  • perf(cpu): route K-quant decode through the narrow decode pool by @iamstuffed in #293
  • ci(bench): add a best-effort llama.cpp head-to-head to the benchmark job by @iamstuffed in #294
  • perf(cpu): multi-accumulator Q4_K/Q6_K decode dot (+10% decode) by @iamstuffed in #295
  • perf(cpu,metal): batch Q4_1 tensors in prefill instead of whole-model fallback by @iamstuffed in #296
  • perf(cpu): ARM i8mm/SMMLA Q4_K prefill GEMM by @iamstuffed in #297
  • perf(cpu): ARM i8mm/SMMLA Q6_K prefill GEMM by @iamstuffed in #298
  • perf(cpu): run the x86 prefill GEMM on the pinned RowPool, not rayon by @iamstuffed in #299
  • perf(cpu): f16 KV cache for decode-at-depth by @iamstuffed in #300
  • perf(cpu): f16 KV cache for LFM2 decode + prefill by @iamstuffed in #301
  • perf(cpu): run prefill attention on the pinned RowPool + widen LFM2 to query heads by @iamstuffed in #302
  • perf(cpu): activ...
Read more

v0.5.2

Choose a tag to compare

@github-actions github-actions released this 03 Sep 16:37

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
  • perf(cpu): run the x86 int8 GEMM/GEMV from the AVX2 tier up, not VNNI only by @iamstuffed in #288
  • perf(cpu): SIMD flash attention + wider prefill parallelism on x86 by @iamstuffed in #289
  • perf(cpu): defer the K-quant GEMM reduction into a per-column accumulator by @iamstuffed in #290
  • perf(cpu): repack Q4_0 weights into an 8-row interleave for prefill by @iamstuffed in #291
  • perf(cpu): repack Q4_K weights into an 8-row interleave for prefill by @iamstuffed in #292
  • perf(cpu): route K-quant decode through the narrow decode pool by @iamstuffed in #293
  • ci(bench): add a best-effort llama.cpp head-to-head to the benchmark job by @iamstuffed in #294
  • perf(cpu): multi-accumulator Q4_K/Q6_K decode dot (+10% decode) by @iamstuffed in #295
  • perf(cpu,metal): batch Q4_1 tensors in prefill instead of whole-model fallback by @iamstuffed in #296
  • perf(cpu): ARM i8mm/SMMLA Q4_K prefill GEMM by @iamstuffed in #297
  • perf(cpu): ARM i8mm/SMMLA Q6_K prefill GEMM by @iamstuffed in #298
  • perf(cpu): run the x86 prefill GEMM on the pinned RowPool, not rayon by @iamstuffed in #299
  • perf(cpu): f16 KV cache for decode-at-depth by @iamstuffed in #300
  • perf(cpu): f16 KV cache for LFM2 decode + prefill by @iamstuffed in #301
  • perf(cpu): run prefill attention on the pinned RowPool + widen LFM2 to query heads by @iamstuffed in #302
  • perf(cpu): activ...
Read more

v0.5.1

Choose a tag to compare

@github-actions github-actions released this 03 Sep 00:22

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
  • perf(cpu): run the x86 int8 GEMM/GEMV from the AVX2 tier up, not VNNI only by @iamstuffed in #288
  • perf(cpu): SIMD flash attention + wider prefill parallelism on x86 by @iamstuffed in #289
  • perf(cpu): defer the K-quant GEMM reduction into a per-column accumulator by @iamstuffed in #290
  • perf(cpu): repack Q4_0 weights into an 8-row interleave for prefill by @iamstuffed in #291
  • perf(cpu): repack Q4_K weights into an 8-row interleave for prefill by @iamstuffed in #292
  • perf(cpu): route K-quant decode through the narrow decode pool by @iamstuffed in #293
  • ci(bench): add a best-effort llama.cpp head-to-head to the benchmark job by @iamstuffed in #294
  • perf(cpu): multi-accumulator Q4_K/Q6_K decode dot (+10% decode) by @iamstuffed in #295
  • perf(cpu,metal): batch Q4_1 tensors in prefill instead of whole-model fallback by @iamstuffed in #296
  • perf(cpu): ARM i8mm/SMMLA Q4_K prefill GEMM by @iamstuffed in #297
  • perf(cpu): ARM i8mm/SMMLA Q6_K prefill GEMM by @iamstuffed in #298
  • perf(cpu): run the x86 prefill GEMM on the pinned RowPool, not rayon by @iamstuffed in #299
  • perf(cpu): f16 KV cache for decode-at-depth by @iamstuffed in #300
  • perf(cpu): f16 KV cache for LFM2 decode + prefill by @iamstuffed in #301
  • perf(cpu): run prefill attention on the pinned RowPool + widen LFM2 to query heads by @iamstuffed in #302
  • perf(cpu): activ...
Read more

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 02 Sep 17:26

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
  • perf(cpu): run the x86 int8 GEMM/GEMV from the AVX2 tier up, not VNNI only by @iamstuffed in #288
  • perf(cpu): SIMD flash attention + wider prefill parallelism on x86 by @iamstuffed in #289
  • perf(cpu): defer the K-quant GEMM reduction into a per-column accumulator by @iamstuffed in #290
  • perf(cpu): repack Q4_0 weights into an 8-row interleave for prefill by @iamstuffed in #291
  • perf(cpu): repack Q4_K weights into an 8-row interleave for prefill by @iamstuffed in #292
  • perf(cpu): route K-quant decode through the narrow decode pool by @iamstuffed in #293
  • ci(bench): add a best-effort llama.cpp head-to-head to the benchmark job by @iamstuffed in #294
  • perf(cpu): multi-accumulator Q4_K/Q6_K decode dot (+10% decode) by @iamstuffed in #295
  • perf(cpu,metal): batch Q4_1 tensors in prefill instead of whole-model fallback by @iamstuffed in #296
  • perf(cpu): ARM i8mm/SMMLA Q4_K prefill GEMM by @iamstuffed in #297
  • perf(cpu): ARM i8mm/SMMLA Q6_K prefill GEMM by @iamstuffed in #298
  • perf(cpu): run the x86 prefill GEMM on the pinned RowPool, not rayon by @iamstuffed in #299
  • perf(cpu): f16 KV cache for decode-at-depth by @iamstuffed in #300
  • perf(cpu): f16 KV cache for LFM2 decode + prefill by @iamstuffed in #301
  • perf(cpu): run prefill attention on the pinned RowPool + widen LFM2 to query heads by @iamstuffed in #302
  • perf(cpu): activ...
Read more

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 01 Aug 04:39

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
  • perf(cpu): run the x86 int8 GEMM/GEMV from the AVX2 tier up, not VNNI only by @iamstuffed in #288
  • perf(cpu): SIMD flash attention + wider prefill parallelism on x86 by @iamstuffed in #289
  • perf(cpu): defer the K-quant GEMM reduction into a per-column accumulator by @iamstuffed in #290
  • perf(cpu): repack Q4_0 weights into an 8-row interleave for prefill by @iamstuffed in #291
  • perf(cpu): repack Q4_K weights into an 8-row interleave for prefill by @iamstuffed in #292
  • perf(cpu): route K-quant decode through the narrow decode pool by @iamstuffed in #293
  • ci(bench): add a best-effort llama.cpp head-to-head to the benchmark job by @iamstuffed in #294
  • perf(cpu): multi-accumulator Q4_K/Q6_K decode dot (+10% decode) by @iamstuffed in #295
  • perf(cpu,metal): batch Q4_1 tensors in prefill instead of whole-model fallback by @iamstuffed in #296
  • perf(cpu): ARM i8mm/SMMLA Q4_K prefill GEMM by @iamstuffed in #297
  • perf(cpu): ARM i8mm/SMMLA Q6_K prefill GEMM by @iamstuffed in #298
  • perf(cpu): run the x86 prefill GEMM on the pinned RowPool, not rayon by @iamstuffed in #299
  • perf(cpu): f16 KV cache for decode-at-depth by @iamstuffed in #300
  • perf(cpu): f16 KV cache for LFM2 decode + prefill by @iamstuffed in #301
  • perf(cpu): run prefill attention on the pinned RowPool + widen LFM2 to query heads by @iamstuffed in #302
  • perf(cpu): activ...
Read more

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 22 Jul 05:52

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

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 11 Jul 23:01

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

Full Changelog: v0.2.2...v0.3.0

v0.2.7

Choose a tag to compare

@github-actions github-actions released this 10 Jul 18:38

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

Full Changelog: v0.2.2...v0.2.7

v0.2.6

Choose a tag to compare

@github-actions github-actions released this 10 Jul 05:02

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

Full Changelog: v0.2.2...v0.2.6