level 9
王皮尔磁子
楼主
GPUArray是14.2版本引入的函数, 我尝试了一下, 使用GPUArray进行矩阵运算比普通的方法快了不少. 但是, 在一个问题中, GPUArray数据溢出了, 而我没有办法将未溢出的数据和已溢出的数据分离开来. ReplaceAll和Select都无济于事. 有人知道如何处理吗?
代码如下
v2 = GPUArray[NumericArray[Range[0., 10., 1.], "ComplexReal32"]];
Do[v2 = v2*v2, 10];
v2 // Normal
v2 // Normal // Abs
Map[NumberQ, v2 // Normal]
Map[NumericQ, v2 // Normal]
Map[Head, v2 // Normal]
Map[If[Re[#]^2 >= 1., True, False, Indeterminate] &, v2 // Normal]

以及出现了NaN` - NaN` I 的 Abs 是 \frac{1}{\sqrt{2}} 一个匪夷所思的现象.
2026年06月09日 19点06分
1
代码如下
v2 = GPUArray[NumericArray[Range[0., 10., 1.], "ComplexReal32"]];
Do[v2 = v2*v2, 10];
v2 // Normal
v2 // Normal // Abs
Map[NumberQ, v2 // Normal]
Map[NumericQ, v2 // Normal]
Map[Head, v2 // Normal]
Map[If[Re[#]^2 >= 1., True, False, Indeterminate] &, v2 // Normal]

以及出现了NaN` - NaN` I 的 Abs 是 \frac{1}{\sqrt{2}} 一个匪夷所思的现象.