AISpot

MLX 0.32.4 發布:Metal 新增 1-bit 仿射量化

MLX releases版本更新開源地端推論開發工具

MLX 發布 0.32.4,Metal 後端新增 1-bit 仿射量化支援,mlx.core.fft 新增 stft 與 istft 音訊變換運算元。同版本加入 Python 3.15 與 3.15t 支援、整數整除原語 FloorDivide、SDPA 與 gated delta net 的 VJP,並新增 MLX_CONV_WINOGRAD 開關以停用 conv2d 的 Winograd 實現。

新增 1-bit 仿射量化與 stft/istft 音訊運算元,並補齊 Python 3.15、FloorDivide 原語與 SDPA、gated delta net 的 VJP,對在 Apple Silicon 上用 MLX 做本地推理與音訊模型的開發者最直接有用。

原標題:v0.32.4
閱讀原文

評分48 / 68(平均 58,門檻 60)
狀態未入選

原文

What's Changed Adding VJP for the scaled dot product attention. by @tpegolotti in #4563 python: Add pos support to array by @aaishwarymishra in #4488 Add Python 3.15 and 3.15t support by @XXXXRT666 in #4555 Add fixed size unique operation by @louen in #4501 Fix normalizing single-element slice with negative stride by @axiom-of-choice in #4446 Patch bump to 0.32.4 by @zcbenz in #4582 Adding VJP for gated delta net. by @tpegolotti in #4565 Fix col_reduce_longcolumn for negative-stride views by @mateuuszzzzz in #4529 Clear CUDA errors once reported and raise eval errors in buffer protocol by @aleroot in #4523 Improve pre-M5 metal memory usage for SDPA D512 by @dhiltgen in #4518 Fix split data size span by @michalk8 in #4540 Re-introduce Array API Tests suite by @prady0t in #4433 Fix view inside of a vmap by @michalk8 in #4586 Fix cumsum of a non-contiguous bool by @michalk8 in #4590 docs: contraction dtype requirements in matmul/einsum by @simeetnayan81 in #4550 Fixing cooperative tensor build issues on Mac OS 27 by @tpegolotti in #4594 Handle EOF and EINTR in ParallelFileReader::read by @Ritabanm in #4532 Clamp slice bounds when a slice is combined with an array index by @IshaanPotle in #4513 Fixes grouped Conv1d/Conv2d init to use in_channels // groups by @CodeWithMoin in #4544 Fix mx.view misaligned offset by @michalk8 in #4585 [CUDA] Add fp_gather_qmv to optimize gather_qmm by @dhiltgen in #4508 Fix eval cleanup deadlock by committing GPU streams before waiting by @ronaldmannak in #4556 Fix shared_buffer_reshape contiguity flags by @michalk8 in #4589 Fix view last axis stride by @michalk8 in #4587 Fix empty unsigned sum/prod failing on Metal by @CodeWithMoin in #4546 [CUDA] Add gather_qmm_rhs_sm80 by @dhiltgen in #4554 python: Fix bare ellipsis setitem by squeezing leading singleton dimensions by @shaeantoine in #4561 Fix row/col contiguous flags in view by @michalk8 in #4588 Do not cache failed distributed backend initialization by @ronaldmannak in #4558 Fix reduction over large arrays by @nicoloangileri in #4549 docs: Correct the export callback type in the guide by @ssmall256 in #4578 Fix MultiOptimizer crash when an optimizer's group is empty by @ishtihoss in #4570 Fix fft size one by @michalk8 in #4591 Sanitize '-' in make_template_hash for metal kernel by @gokay-ai in #4584 Fix as_strided contiguity by @sofinvalery in #4575 Reject non-aligned pointers when converting to mx.array by @michalk8 in #4592 Fix conjugation in complex VJPs for inverse trig ops, cos, sqrt, and rsqrt by @devYRPauli in #4606 Fix complex to bool by @michalk8 in #4593 [jaccl] second cable for the mesh by @nastya236 in #4607 Fix vmap of scatter placing the batch axis wrongly in the updates by @Adityaj0 in #4322 Unroll TK=4 keys per iter in sdpa_vector_2pass_1 by @Stonesjtu in #4596 Fix CPU float16 SIMD comparison masks by @crabel99 in #4602 Add jvp support for logcumsumexp by @navthings in #4611 [CUDA] Export CommandEncoder and Device by @erwinzhang7 in #4619 Use the fast qmv kernel for outputs not divisible by 8 by @wyanzhao in #4516 Fix ResidencySets reading autoreleased error object by @Brooooooklyn in #4623 Use the small-channel implicit gemm loader for C_per_group = 8 (and depthwise C % 8) by @zsun6 in #4617 [CUDA] Reduce floor for fp_gather_qmv by @dhiltgen in #4620 Fix default.metallib lookup under swift test with Swift Build by @heckj in #4527 Fix metal validation error when passing empty vector by @aleroot in #4622 Replace Black formatter with ruff by @aaishwarymishra in #4600 Tune M1 quantized matmul dispatch for six-row large shapes by @DeadByDawn101 in #4629 [metal] Add env var based residency refresh interval by @dhiltgen in #4633 Promote integer inputs in logcumsumexp by @vijay-kapse in #4625 Fix slicing's non contiguous start by @michalk8 in #4599 Fix float16 overflow in clip_grad_norm by @ishtihoss in #4626 Collapse the non sorted axes to pick the contiguous sort kernel by @kapellirohith in #4366 Fix 32 bit dispatch grid overflow in Metal reductions by @Lyxot in #4437 Fix gpu boolean masking in 0 dim array by @aaishwarymishra in #4635 Fix vmap of an inverse real FFT to an odd length by @vijay-kapse in #4637 Fix cross-process race in CPU compile cache by @MarcosAsh in #4638 Update acknowledgments for past pinv contribution by @adi-dhulipala in #4645 Fix foreign buffer ownership by @michalk8 in #4634 Add MLX_CONV_WINOGRAD switch to disable winograd for conv2d by @ishaanzee in #4639 Keep split-K quantized matmul partials in float32 by @mattt in #4641 Thin N GEMM kernels by @Isalia20 in #4640 Add 1-bit affine quantization support (Metal) by @khosravipasha in #3161 Update Metal Complex division in numpy style to avoid overflow condition. by @aaishwarymishra in #4644 Fix pickle bfloat16 strides by @michalk8 in #4649 Fix metal negative stride index in masked_scatter/scatter/SDPA mask/segmented_gemm by @michalk8 in #4650 Fix missing break binary bool by @michalk8 in #4651 Fix cpu binary_op_dispatch_dims on large data by @Prudctual in #4648 Add FloorDivide primitive for integer floor division by @CodeAndCanvas728 in #4642 [Metal] Fix SDPA max threadgroup for M1/M2 generation by @dhiltgen in #4643 Fix incorrect output mask computation in mx.block_masked_mm by @michalk8 in #4652 Add thin M GEMM dispatch by @Isalia20 in #4654 Fix Python dtpye -> mlx conversion narrowing by @michalk8 in #4656 Fix input/output scalar merging in compile by @michalk8 in #4658 Validate .npy shape in mlx/io/load.cpp by @SounLabs in #4657 Replace "pull_request_target" event with "pull_request" in update_bypass_list workflow by @zcbenz in #4667 [CUDA] Only count consecutive misses in the LRUCache thrashing check by @ddalcu in #4661 Fix conv input gradient shape with uneven or large padding by @MarcosAsh in #4662 Fix missing stream in layer_norm and sdpa fallbacks by @AkshayShah03 in #4663 Fix direct CPU conv writing past output by @SashaMIT in #4668 Add stft and istft to mlx.core.fft by @eyupcanakman in #3639 Fix lost rank output in the distributed launcher by @tc3oliver in #4615 Fix split-K test compatibility on M5, M6 by @magnuslundstedt in #4677 Fix signedness warning in quantized Metal tail bounds check by @jrp2014 in #4675 fix batched row count mismatch in metal qvm_split_k by @Prudctual in #4673 fix metal conv bounds checks and integer overflows by @Prudctual in #4672 python: Make arctan2/radians/degrees support scalar inputs by @SleepAviator in #4679 Fix missing add_temporary in pad_gpu/fill_gpu by @ronaldmannak in #4660 Enable non-transposed NAX gather_qmm_rhs by @Lyxot in #4684 Add Metal extension build support by @XXXXRT666 in #4004 Adding minmax method to MLX to follow Numpy/Jax API by @aaishwarymishra in #4674 Fix missing stream in gather matmul indices cast by @petrukha-ivan in #4687 [BUG] Metal fence deadlock by @nastya236 in #4689 New Contributors @mateuuszzzzz made their first contribution in #4529 @IshaanPotle made their first contribution in #4513 @CodeWithMoin made their first contribution in #4544 @shaeantoine made their first contribution in #4561 @nicoloangileri made their first contribution in #4549 @ssmall256 made their first contribution in #4578 @gokay-ai made their first contribution in #4584 @Stonesjtu made their first contribution in #4596 @crabel99 made their first contribution in #4602 @navthings made their first contribution in #4611 @heckj made their first contribution in #4527 @DeadByDawn101 made their first contribution in #4629 @vijay-kapse made their first contribution in #4625 @ishaanzee made their first contribution in #4639 @mattt made their first contribution in #4641 @khosravipasha made their first contribution in #3161 @CodeAndCanvas728 made their first contribution in #4642 @SounLabs made their first contribution in #4657 @ddalcu made their first contribution in #4661 @AkshayShah03 made their first contribution in #4663 @SashaMIT made their first contribution in #4668 @tc3oliver made their first contribution in #4615 @SleepAviator made their first contribution in #4679 @petrukha-ivan made their first contribution in #4687 Full Changelog : v0.32.3...v0.32.4

相關報導

Ollama releasesAI 評分42

v0.40.5:MLX 的 Metal 自訂核心移植到 CUDA

v0.40.5 把 MLX 原本為 Metal 寫的自訂核心移植到 CUDA,MLX 推理路徑由此延伸到 NVIDIA GPU。同一版本中,OpenAI 相容層可在 Responses 歷史裡接受自訂工具呼叫,應用端澄清了雲支付報錯提示,文件更新模型推薦並統一措辭。此外還有 MLX 的版本號提升,以及新貢獻者 @willietran 的首次提交。

Ollama releasesAI 評分45

MLX v0.40.0-rc1 對齊發布方 tokenizer 語義

MLX 發布 v0.40.0-rc1,核心改動是讓本地 tokenizer 與模型發布方的語義保持一致,涵蓋預分詞階段順序、切分行為、Unicode 邊界、added token 歸一化和 BPE 合併排序,並統一處理空 added token 與空 Metaspace 輸入。同時新增 Go/Python 共享參考用例,直接拉取缺失模型並在出錯時失敗,另加配置優先順序、位元組回退與並行編碼的迴歸測試。

Apple Machine Learning Research● 精選AI 評分85

MLX 新版發布:4 臺 Mac Studio 叢集跑 816B 模型超 36 tokens/s

MLX 今日發布新版本,支援用 RDMA over Thunderbolt 把多臺 Mac Studio 組成叢集:4 臺 M5 Ultra 執行近萬億引數的 Muse Spark Open(816B MoE,NVFP4 精度)解碼超過 36 tokens/s,高於人類平均閱讀速度。單臺 512GB Mac Studio 可跑 Qwen 3.8 27B 與 Mistral Medium 3.5 128B,在 65,536 上下文下分別佔用最多 68GB 和 158GB 記憶體。

llama.cpp releases● 精選AI 評分62

llama.cpp Metal 把 few-row MMA 核心擴充套件到 BF16、MXFP4 等型別

llama.cpp 的 Metal 後端將通用 few-row MMA 矩陣乘法核心擴充套件到更多權重量化型別,BF16、Q1_0、Q2_0、MXFP4、Q2_K、Q3_K、TQ2_0 及 IQ 系列現已納入。該核心適用於任何帶 16-weight 反量化器的型別,各型別從在 M3 Ultra 上能勝過現有核心的行數起啟用:TQ2_0 為 5 行,BF16 為 4 行,MXFP4、Q2_0、Q2_K、IQ4_NL 為 3 行,其餘為 2 行。

llama.cpp releases● 精選AI 評分74

llama.cpp 修復 Metal 後端 MUL_MAT+ADD 融合錯誤

llama.cpp 合併 PR #30100,修復 Metal 後端 MUL_MAT+ADD 融合中殘差運算元的選擇錯誤:當 ADD 的兩個運算元都是矩陣乘法輸出(x = W1@u + W2@v)時,舊邏輯會選中自身從未寫入的輸出緩衝區,導致結果錯誤。Clef 決策模型因此在 Metal 上機率趨近均勻,billing 輸出 0.28,而 CPU 後端為 0.977,且同一檔案在 CPU 上結果正確,說明並非量化問題。