#4479·mlx

mx.dequantize 在 CPU 上处理超过 2^31 个未解压的位(int 大小在 cpu/binary.h 中)时会返回垃圾

作者: builtbycnob创建于 2026年9月8日更新于 2026年9月16日
标签buglow priority

会发生什么

在 CPU 流上,一个相接的元素明智二进制 Op 默默停止写入其输出一次 边到 2^31 元素。 没有例外,没有警告。 操作返回一个持有的数组 无论输出缓冲器在之前持有什么:当缓冲器被新分配时为零, mlx 捐赠输入缓冲器时未修改输入.

我通过mx.dexantize'找到的。 Affine dequantize 没有CPU内核: “affine quantize” 仅为 GPU 流构建 “ 快速: 量化” 原始, 否则将评估 。 倒计时(mlx/ops.cpp:5341'和:5345',v0.32.2)。 有点宽,不是力量 二,倒背会把每块被包装的""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 该分支中的全部大小操作运行在 “ nume * bits” 元素上; “ bitwise and ” 位于 mlx/ops.cpp:5314'是矢量斯卡拉尔案,读作`a.data size()',所以可能是: 虽然我并没有做任何一种工具, 前2年7月31日,这样的行动没有写什么。 当输入缓冲器被捐赠到输出时,原始的将字词转换为和和. 与下方的相适应。 6 位值的回转 [1, 1] 然后以7e7返回, 在一个非常普通的阵列中。

□ 重现

# // 脚本
# 需要 - Python = "QQ3.12" (中文(简体) ).
依附关系=["mlx=0.32.2"].
# # / / 开始 #
导入 mlx.core 为 mx

mx. set device (mx.cpu) 默认

# 1. CPU流上任何相接的元素二进制操作. 大约4GB峰值,一秒下.
c. 用于(2**30-1,2**30)相机的:
a = mx. full ((2, cols), 3, dtype=mx. uint8) (中文(简体) ).
输出 = mx.add(a, mx.array(1, mx.uint8))
mx.eval( 出关)
a0, a1 = int(a [0]. item()), int(a [1-1]. item().
o0, o1 = int(出 [0]. item()), int(出 [1-1]. item()
print(f"add n={2 * cols : > 13,} in={a0}{a1}出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出
del a, 出来
mx. clear cache () (中文(简体) ).

# 2. 这对mx.dignization的作用是,在比分上宽一些,而不是2的功率. ~15 GB最高峰.
(218,219) (中文(简体) ).
n=铅 * 640 * 2560
w = mx.sin (mx.arange(n, dtype=mx.float32).reshape (lead, 640, 2560) * 0.017).
w = w.astype (mx.bfloat16) (中文(简体) ).
wq,平分,偏差=mx.quantize(w, group size=64,比特=6).
deq = mx. dequantize(wq,平分,偏差,组 大小=64,比特=6)
错误=mx.max(mx.abs(deq.astype(mx.float32)-w.astype(mx.float32)))). item ().
打印(f) 将数字* bits={n * 6: > 13,} max|deq-w|={err: 3. e} 想要 <= 0.02")
del w, wq, 天平, 偏差, deq
mx. clear cache () (中文(简体) ).

这里输出的0.32.2和0.32.0字节相同:

增加n=2,147,483,646 in=3 3出=4 4想要4出4
增加n=2,147,483,648 in=3 3出=0 0 想要4 4
将纳米*比特s=2,143,027,200 max|deq-w|=1.758e-02 想要<=0.02
将纳米*比特s=2,152,857,600 max|deq-w|=7.0225e+07 想要<=0.02

11秒,15.0GiB最高峰RSS. " add " 案的输入在两端都读为3,所以 数组和索引都很好,只有 . . . . . . .