Chapters ยท 08
WWDC Timeline: Core ML Evolution 2022โ2025
Part of the ANE Knowledge Base. Sources: WWDC session pages on developer.apple.com/videos (fetched 2026-07-12; details below are summaries of the official sessions, with session numbers for verification).
This doc tracks what Apple shipped for Core ML at each WWDC from 2022 to 2025 โ the platform context in which every technique in this KB lives. Read it as the "official API timeline" that parallels the optimization story of docs 02โ07. For the 2026 discontinuity (Core AI), see doc 09.
At a glance#
| Year | Key sessions | Headline features | coremltools |
|---|---|---|---|
| 2022 | 10027 โ Optimize your Core ML usage | Performance reports in Xcode 14, Core ML + Neural Engine Instruments, .cpuAndNeuralEngine, native Float16 I/O, output backings, first weight compression |
ct 6 |
| 2023 | 10047 โ Model compression, 10049 โ Async prediction | ct.optimize (palettize/prune/quantize), training-time compression, JIT weight decompression on ANE (iOS 17), async prediction API, compute availability API |
ct 7 |
| 2024 | 10159 โ Bring your ML & AI models to Apple silicon, 10161 โ Deploy on-device with Core ML, 10223 โ Explore ML on Apple platforms | Stateful models (MLState), multifunction models, MLTensor, per-grouped-channel palettization, int4 per-block quantization, fused SDPA (iOS 18), calibration-based compression |
ct 8 |
| 2025 | 360 โ Discover ML & AI frameworks (umbrella; no dedicated Core ML session) | Foundation Models framework, MLX sessions (298, 315), Core ML: model-architecture visualization in Xcode, better inspection; BNNS Graph Builder | โ |
WWDC22 โ the observability year#
Session 10027 "Optimize your Core ML usage" delivered the tooling this KB's workflow doc depends on:
- Performance reports (Xcode 14 โ Performance tab): per-op compute-unit dispatch + median load/prediction times, no code needed. This is the tool Apple's own
ml-ane-transformersREADME points to (doc 05). - Core ML Instrument + Neural Engine Instrument: live profiling lanes (activity/data/compute) โ the first public visibility into when the ANE is actually running.
MLModelConfiguration.computeUnits = .cpuAndNeuralEngine: new option to keep the GPU free (and to force-detect GPU fallbacks โ argmaxtools later usesCPU_AND_NEas its test default, doc 06 ยง8).- Native Float16: Float16
MLMultiArrays and one-component-16 pixel buffers as model I/O (iOS 16) โ no more app-side up/down-casting around an FP16 engine. - Output backings + IOSurface-backed buffers: preallocate outputs, zero-copy across compute units on unified memory.
- First weight compression: 16/8-bit quantization + sparse representation for ML Programs (coremltools 6) โ size-only at this point.
- In-memory model init (custom encryption) and Swift Package model bundling.
WWDC23 โ the compression year#
Session 10047 introduced the ct.optimize toolbox that this KB documents in depth (doc 07):
- Three techniques, two workflows: palettization / pruning / linear quantization, each available post-training (
ct.optimize.coreml, fast, data-free) or training-time (ct.optimize.torch, differentiable โ e.g. DKM palettization) โ with the demonstrated rule of thumb that 2-bit post-training fails where 2-bit training-time holds accuracy. - The runtime made compression a latency feature: on iOS 17+ the ANE decompresses weights just-in-time, so lower-bit weights = less memory traffic = faster in bandwidth-bound regimes (measured: ~5โ30% for 4-bit palettization, up to 75% for sparse models on iPhone 14 Pro Max). This is the official confirmation of Principle 4 economics (doc 02) โ on iOS 16 decompression was ahead-of-time and gained nothing.
- Session 10049: async prediction (thread-safe, cancellable, ~2ร throughput in the demo), model lifecycle/caching explained ("prepare and cache" = device specialization),
MLModel.availableComputeDevicesto detect ANE presence at runtime.
WWDC24 โ the generative-AI year#
The biggest Core ML release of this period (coremltools 8), aimed squarely at transformers:
- Stateful models:
register_buffer+ct.StateTypeโ KV caches live inside the model and update in-place; Swift consumes them viaMLState. Demonstrated 1.6ร decode speedup on Mistral-7B (M3 Max). This is exactly theStatefulKVCachedAttentionpath in argmaxtools (doc 06 ยง4). - Multifunction models: several functions sharing deduplicated weights in one
.mlpackage(adapters, multi-shape variants) โ used by argmaxtools'CoreMLMultifunctionTestsMixin. MLTensor: NumPy-like tensor ops in Swift dispatched to Apple silicon โ eliminates hand-written glue (decoding loops, sampling) between models.- Compression granularity jump: palettization
per_grouped_channel(Stable Diffusion 5 GB โ 1.3 GB at 4-bit), int4 per-block quantization (Mistral-7B 13 GB โ <4 GB), sparse+palettized/quantized combos, and a calibration-based middle workflow (~128 samples) between data-free and fine-tuning. - Fused SDPA: with
minimum_deployment_target=iOS18, attention converts to a single fused op โ the first sign that hand-decomposed attention (Apple 2022-style) was becoming the runtime's job rather than the author's. - Performance-report upgrades: per-op estimated time, "unsupported on this compute device" hints, run comparison.
WWDC25 โ the plateau (and the pivot)#
- No dedicated Core ML session. The umbrella session (360) placed Core ML as the deployment layer in a stack now headlined by the Foundation Models framework (built-in on-device LLM with guided generation) and MLX (research/fine-tuning on Apple silicon, sessions 298/315).
- Core ML improvements were incremental: full model-architecture visualization in Xcode's model viewer and richer latency/dispatch inspection.
- In hindsight, the quiet year preceded the platform replacement announced at WWDC26 (doc 09): Core AI.
How this timeline maps to the KB#
| Platform feature (year) | Where the KB uses it |
|---|---|
| Performance reports / Instruments (2022) | Doc 05 verification workflow |
.cpuAndNeuralEngine (2022) |
argmaxtools TEST_COMPUTE_UNIT (doc 06) |
| Float16 I/O (2022) | argmaxtools TEST_COREML_IO_FLOAT_DTYPE = np.float16 |
ct.optimize palettization (2023) |
Whole of doc 07; argmaxtools Palettizer builds on it |
| JIT weight decompression on ANE (2023) | Why compression is a latency win (P4, docs 02/07) |
Stateful models / MLState (2024) |
StatefulKVCachedAttention (doc 06 ยง4) |
| Multifunction models (2024) | Variable-shape export (doc 06 ยง8) |
| Per-grouped-channel / int4 (2024) | whisperkittools --palettization-group-size (doc 07) |
| Fused SDPA (2024) | Precursor of Core AI's composite-op approach (doc 09) |
MLComputePlan (coremltools 8.1, 2024 era) |
Programmatic ANE-dispatch verification (doc 06 ยง8) |
The through-line: from 2022 to 2024 the platform steadily absorbed what expert users were hand-building โ observability (2022), compression (2023), KV caches, fused attention and multi-model packaging (2024) โ and in 2026 that absorption became a new framework (doc 09).