Open
Conversation
Bump MLX submodule from v0.25.0 to v0.30.6 and fix all API changes: - Add SmallVector<T> kizunapi type specialization (Shape changed from std::vector<int> to SmallVector in MLX >= 0.26) - Add PutIntoShape helper, keep PutIntoVector for std::vector<int> uses - Update FFT wrapper function pointer types for Shape parameter - Add output_padding parameter to conv_transpose1d/2d/3d - Add sinks parameter to scaled_dot_product_attention calls - Move device_info from metal:: to gpu:: namespace - Split large ki::Set calls to stay within template argument limits Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update deps/mlx with fix for compile_fuse broadcast split_one bug that caused "unordered_map::at: key not found" on compiled functions with ~100+ operations. This is an upstream MLX bug (v0.29.4+). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update MLX submodule with improved compile_fuse fix that preserves the broadcast fusion optimization while fixing the aliasing bug that caused unordered_map::at crashes on large computation graphs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Points deps/mlx to ml-explore/mlx main (c8536f52) which includes the merged compile_fuse broadcast split fix from PR #3166, plus newer upstream fixes (Metal event leak, conv3d overflow, fence sync). Replaces the local branch commits (65cefdef, a6d40e4a) which are now superseded by the upstream merge. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update MLX submodule to include native lgamma/digamma kernels and add Node.js bindings for both operations. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Update deps/mlx submodule URL to robert-johansson/mlx (genmlx branch) with lgamma, digamma, bessel_i0e, bessel_i1e ops - Add besselI0e/besselI1e bindings in ops.cc and type declarations Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Report external memory (min 1MB per array) via napi_adjust_external_memory so the JS GC knows about Metal GPU buffer pressure. This makes GC run earlier, reducing the chance of hitting Metal's 499K allocation limit. - Point kizunapi submodule to robert-johansson fork with ExternalMemorySize trait - Specialize ExternalMemorySize for mx::array (1MB minimum cost) - Add napi_adjust_external_memory calls in Tidy and Dispose paths Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds a native function that bypasses the deferred N-API finalizer queue by synchronously walking the wrapper registry and freeing arrays whose JS wrappers have been GC'd. This is critical for synchronous inference loops where the event loop never yields and deferred finalizers never run. Includes kizunapi changes: - CollectDeadWrappers<T>() in InstanceData - ExternalMemorySize reporting on AllowPassByValue path - Double-free guard in finalizer callbacks Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ki::Typespecialization formlx::core::SmallVector(MLX >= 0.26 uses SmallVector for Shape)std::vector<int>→mx::Shape, newoutput_paddingparams in conv_transpose, extra arg inscaled_dot_product_attentionki::Setregistration calls to stay within template parameter limitsmx::metal::device_infoto return the newstd::unordered_mapreturn typeTested on macOS with Apple Silicon (M4). All existing functionality works.
🤖 Generated with Claude Code