Releases: ml-explore/mlx-swift
0.30.6
Update to mlx 0.30.6:
Important:
- Fixes: ml-explore/mlx-swift-examples#462 -- incorrect detection of NAX hardware on iPhone 16 Pro
What's Changed
- Support building MLX-Swift on Linux through SwiftPM (CPU only) by @Joannis in #304
- adds a note to get the submodules if you're building locally by @heckj in #346
- Add skill.md by @ronaldmannak in #350
- Wired Memory Management System by @robertmsale in #348
- Add release workflow that builds and attaches XCFramework assets by @mattt in #351
- Weakly link error domains to allow building non-Metal-supporting targets by @atdrendel in #354
- Add wired memory skill by @ronaldmannak in #352
- update for mlx v0.30.6 by @davidkoski in #353
New Contributors
- @Joannis made their first contribution in #304
- @heckj made their first contribution in #346
- @robertmsale made their first contribution in #348
- @atdrendel made their first contribution in #354
Full Changelog: 0.30.3...0.30.6
0.30.3
What's Changed
- Fix race condition in clearCache causing Metal crash by @aleroot in #331
- Adopt opaque parameters by @AppAppWorks in #291
- add xcodeproj as a build method by @davidkoski in #289
- fix many documentation disambiguation warnings by @davidkoski in #333
- Add RoPE array-offset overload (prep for continuous batching) by @ronaldmannak in #305
- mlx MultiHeadAttention now uses fast.SDPA by @davidkoski in #334
- Fix race condition during the tracing phase of automatic differentiation (vjp, value_and_grad) by @aleroot in #338
- guard compile and vmap tracing calls by @davidkoski in #339
- synchronize MLXNN code with python implementation by @davidkoski in #340
- Add hook for Modules that need finer grained control on validating missing parameters by @davidkoski in #336
New Contributors
Full Changelog: 0.30.2...0.30.3
0.30.2
- contains mlx v0.30.1
- linux builds via CMake
Note: tag 0.30.1 was cut but had a merge/build issue -- that is no longer marked as a release. See #329
What's Changed
- Add bitwise inversion operations by @AppAppWorks in #288
- Fix incorrect shape descriptions of quantized layers by @AppAppWorks in #292
- add github actions based on mlx by @davidkoski in #297
- remove circleci by @davidkoski in #298
- prepare for mlx-swift-lm move by @davidkoski in #295
- Move memory related API from GPU into Memory namespace. by @davidkoski in #296
- Add arange by @DePasqualeOrg in #302
- Added MLXCustomFunction + MLXClosure by @nataliyakosmyna in #301
- update to mlx 0.30.0 by @davidkoski in #299
- update: unlock native Linux build for CMake and CPU backend only by @incertum in #293
- Fix MLXError by @DePasqualeOrg in #308
- new[CI]: add linux container cmake swift builds by @incertum in #307
- add .arrays back to ScaledDotProductAttentionMaskMode by @davidkoski in #314
- fix #315 -- do not reshape during SDPA by @davidkoski in #316
- split out lint job by @davidkoski in #306
- Improve consistency in recurrent layers by @DePasqualeOrg in #312
- Sequential layers should be mutable to support quantizaton by @davidkoski in #318
- new[CMake, CI]: add CUDA GPU backend to Linux CMake Swift build option. by @incertum in #320
- thread safety -- hold lock while calling stream sync by @davidkoski in #323
- add protocol for array + offset -- to be used by RoPE utils by @davidkoski in #322
- prepare for nax jit / mlx v0.30.1 by @davidkoski in #319
- make cmake builds run after lint by @davidkoski in #328
New Contributors
- @AppAppWorks made their first contribution in #288
- @nataliyakosmyna made their first contribution in #301
- @incertum made their first contribution in #293
Full Changelog: 0.29.1...0.30.2
0.29.1
Integrate mlx 0.29.1
NOTE
This change contains some breaking API changes in the area of quantization. Specifically:
- the
quantized/dequantizedmethods now take amodeparameter (not breaking) - the
biasesresult fromquantizedis now optional, e.g.(wq: MLXArray, scales: MLXArray, biases: MLXArray?)
We are keeping the same semver here to match with python mlx. Although the change is breaking, it will likely be limited to implementations of quantized layers, e.g. QuantizedLinear, or other code that uses quantization directly. mlx-swift-examples will have a synchronized release to reflect this change.
If you need to make a similar change, consider the changes from QuantizedLinear:
The properties changed from this:
public let scales: MLXArray
public let biases: MLXArrayto:
public let mode: QuantizationMode
public let scales: MLXArray
public let biases: MLXArray?A mode with parameter with a default value was added where needed: mode: QuantizationMode = .affine and the mode parameter was used in calls to the quantization APIs:
var x = quantizedMatmul(
x,
weight,
scales: scales,
biases: biases,
transpose: true,
groupSize: groupSize,
bits: bits,
mode: mode
)and the Quantizable protocol was updated to have a mode parameter (protocol methods can't have default values):
/// Return the module as a quantized representation
func toQuantized(groupSize: Int, bits: Int, mode: QuantizationMode) -> ModuleWhat's Changed
- Fix spelling mistakes in docs by @abeleinin in #257
- Add contiguous by @kemchenj in #260
- Minor fixes docs by @CharlieTLe in #261
- fix typo MXArray -> MLXArray by @davidkoski in #264
- fixing more typos in docs and comments by @davidkoski in #265
- Make
Module.update()throw instead of crash for incompatible parameters by @louen in #266 - Make
MLXErrorprovide a description by @louen in #268 - Update links to MLX packages in documentation by @mattt in #277
- swift-format 602 by @davidkoski in #278
- ensure that the ErrorHandler is installed by @davidkoski in #282
- document memory buffers by @davidkoski in #280
- adopt mlx 0.29.1 and related mlx-c by @davidkoski in #273
New Contributors
- @abeleinin made their first contribution in #257
- @CharlieTLe made their first contribution in #261
- @mattt made their first contribution in #277
Full Changelog: 0.25.6...0.29.1
0.25.6
What's Changed
- Add support for tvOS by @guitaripod in #254
- add path information for parameter update errors -- great help in debugging by @davidkoski in #252
New Contributors
- @guitaripod made their first contribution in #254
Full Changelog: 0.25.5...0.25.6
0.25.5
What's Changed
- Add Support for
vmapFunction Transformation by @tanmay-bakshi in #245 - Update README with correct .git package URL for Xcode by @wayne-xyz in #248
- Fix optional module updates by @petrukha-ivan in #249
- Add ReLUSquared Activation Function by @johnmai-dev in #250
New Contributors
- @tanmay-bakshi made their first contribution in #245
- @wayne-xyz made their first contribution in #248
- @petrukha-ivan made their first contribution in #249
- @johnmai-dev made their first contribution in #250
Full Changelog: 0.25.4...0.25.5
0.25.4
What's Changed
- add withWiredLimit by @davidkoski in #243
- partial fix for #237 -- switching Device exhausts many resources by @davidkoski in #242
Full Changelog: 0.25.3...0.25.4
0.25.3
What's Changed
- update README and examples by @davidkoski in #232
- manage object lifetime in the face of more aggressive inlining and optimizations by @davidkoski in #239
- if no error handler set produce a fatal error (like the default used to be) by @davidkoski in #238
Full Changelog: 0.25.2...0.25.3
0.25.2
What's Changed
- new tests for dtype and promotion by @davidkoski in #233
- Fix scaled dot product attention mask argument by @louen in #236
Full Changelog: 0.25.1...0.25.2
0.25.1
What's Changed
-
adopt mlx v0.25.1 and mlx-c v0.2.0
- https://github.com/ml-explore/mlx/releases/tag/v0.25.1
- https://github.com/ml-explore/mlx/releases/tag/v0.25.0
- https://github.com/ml-explore/mlx/releases/tag/v0.24.2
- https://github.com/ml-explore/mlx/releases/tag/v0.24.1
- https://github.com/ml-explore/mlx/releases/tag/v0.24.0
- https://github.com/ml-explore/mlx/releases/tag/v0.23.2
-
use an evalLock for eval, asyncEval and Stream creation (ml-explore/mlx#2133)
-
CompiledFunction is not thread safe by @davidkoski in #226
-
add saveToData and load from data (safetensors) -- fix #214
-
fixes #211 (moves metalKernel API back to what it was)
-
add
withErrorandwithErrorHandlererror handling -
add function import/export: https://ml-explore.github.io/mlx/build/html/usage/export.html
-
various Random improvements,
withRandomStateby @davidkoski in #219 -
Return correct value in memory limit getter functions by @louen in #223
-
consistent treatment of HasDType (Float.self) vs dtype (.float32) by @davidkoski in #222
-
rename update -> _updateInternal to discourage callers by @davidkoski in #230
-
Add quantize function that can return different parameters per layer by @davidkoski in #229
New Contributors
Full Changelog: 0.23.1...0.25.1