NumPY 有复杂64 https://docs.scipy.org/doc/numpy/user/basics.types.html对应于两个float32。
但它也有 float16,但没有 complex32。
怎么会?我有涉及 FFT 的信号处理计算,我认为我可以使用complex32,但我不知道如何到达那里。我特别希望 NVidia GPU 能够加速cupy https://cupy.chainer.org/.
然而 float16 似乎是slower https://devtalk.nvidia.com/default/topic/974803/gpu-accelerated-libraries/half-precision-cufft-transforms/在 GPU 上而不是更快。
为什么半精度不受支持和/或被忽视?
同样相关的是为什么我们没有复整数 https://stackoverflow.com/questions/13863523/is-it-possible-to-create-a-numpy-ndarray-that-holds-complex-integers,因为这也可能会出现加速的机会 https://pdfs.semanticscholar.org/8347/9a33b8f1e1c86eb0e3731a1757cd20dd1381.pdf.
这个问题已经在 CuPy 存储库中提出了一段时间:
https://github.com/cupy/cupy/issues/3370 https://github.com/cupy/cupy/issues/3370
但目前还没有具体的工作计划;大多数事情仍然是探索性的。
锻炼起来并不简单的原因之一是没有numpy.complex32
我们可以直接导入的数据类型(请注意,所有 CuPy 的数据类型只是 NumPy 的别名),因此当请求设备-主机传输时会出现问题。另一件事是,没有在 CPU 或 GPU 上编写的原生数学函数complex32
,所以我们需要自己编写它们来进行转换、ufunc 等等。在链接的问题中,有一个 NumPy 讨论的链接,我的印象是目前尚未考虑它......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)