MetalPerformanceShader 我用过,最大痛点浮点数不支持 64 位,而且支持的图像格式是定死的 RGBA,没有高维数组,对于我要做的应用没什么直接用处
Metal shader 用我原来的 Intel Mac 不好搞,今天 M4 MacBook 到了在配环境,看看再说。
看了下 MLX,感觉这个利好 APL
MetalPerformanceShader 我用过,最大痛点浮点数不支持 64 位,而且支持的图像格式是定死的 RGBA,没有高维数组,对于我要做的应用没什么直接用处
Metal shader 用我原来的 Intel Mac 不好搞,今天 M4 MacBook 到了在配环境,看看再说。
看了下 MLX,感觉这个利好 APL
float64就别说了,目前性价比最高的float64设备都还是10年前titan呢(我也不知道你要做什么,RGBA也没什么问题啊,图像预处理一下不就好了(至于ndarray,mps是有的MPSNDArray | Apple Developer Documentation ,我不知道你从哪儿看到没有的,不至于这么基础内容都没有,就算没有不过是加个下标transform就行了,至少我用过的3D卷积需要的 (N,B,CI,CO,D,W,H,K1,K2)是没有任何问题的
没有LEAN么
NDArray 这文档全是自动生成的方法名,啥都没写,真有人用吗?
double float CUDA 一直都支持的,倒不如说从十年前开始的 N 卡几乎全都支持的。
光支持没速度啊(而且支持也是假支持,除了V100/P100/A100/H100这种,全都是模拟的(你用metal也可以用fp32模拟一个
那本质也是并行的,能比过 CPU 就行了,而且 API 能提供统一抽象怎么也比自己撸强
没多少区别,需要fp64就意味着fp128甚至更高精的也逃不了,更高的反正只能自己手写
之前搞微分几何的时候,因为pytorch不支持fp64,换到了jax,然而实际算下来,32完成不了的,换到64也没多少区别,inf/nan的时候就老实裁剪吧。
这可不兴瞎几把一概而论,遇到 close to singular matrix 中间结果需要五倍于 double 精度都不见得刚得过,和 float 本身只有接近 6 位有效数字是两回事
原始输入数据还是以 double 为多,算个减法 float 精度不够用很常见,那也不至于需要用到 quadruple 精度
没区别,要高精度时候不会用double,都是自己搞。不用高精度,bf16甚至fp16就足够了,最多优化器部分因为要平方留着fp32
那想必你自己写的 elementary function 的 error 也在 2ulp 以内吧
CPU这不是一堆gmp,mpfr,qd
GPU上不会有人要做高精度,然后连用double来模拟double_double都不会吧?GPU上你倒是说一个真正成熟的啊?不都在structure hi lo
当然是 GPU 啊,CUDA math library 能给 double precision 结果做 error bound,GPU 不好复现 CPU 浮点结果(毕竟现在都是用更好精度计算再取整的)又不代表用它就可以瞎算,而且我当然知道 elementary f 不搞近似还要能 parallel 难搞了,开源的我也就知道 https://sleef.org/ (顺带一提,他也支持 quadruple float)所以才问你有何高见。
你搞 extended precision float using unevaluated sum of machine precision floats,优势的确在能自动 parallel 基本运算,那又不代表会 get a math library for free,实际上这就是为啥有专门的 double-double library 但是支持用任意个数的 unevaluated float sum 不多见(Ulrich W. Kulisch 提出的原版算法),因为不搞对特定精度优化就要用数倍尺寸的 accumulator 才能保证 math library 结果准确,然后因为 exponent 位数有限除非理想情况下有硬件支持会有额外优势不然高 prec 不如 MPFR 有效。
我明确一下需求:
实际上 veclib (或者 x86_64 MKL) 已经很好满足我的需要了,MPS 相比之下就显得鸡肋了,我能用到上的也就 matrix/array mul (小整数还是有用的),不知你坚持要找补 double 无用论意义何在。
实际上我一开始就没限定因为 AI 就要用到 GPU,不管是 Intel 新出的扩展指令还是 Apple 的 SME 都是 AI 带动的 CPU 扩展指令,另外 SME 确实是支持 FP64 的,我看衰 Intel 也是因为 AMX 不但只给服务器系列还只支持 FP16,太j儿小器了
继续问。