NumPY 具有对应于两个 float32 的complex64 。
但它也有 float16,但没有 complex32。
怎么来的?我有涉及 FFT 的信号处理计算,我认为我可以使用 complex32,但我不知道如何到达那里。特别是我希望在 NVidia GPU 上使用cupy加速。
然而,float16 在 GPU 上似乎更慢而不是更快。
为什么不支持和/或忽略半精度?
NumPY 具有对应于两个 float32 的complex64 。
但它也有 float16,但没有 complex32。
怎么来的?我有涉及 FFT 的信号处理计算,我认为我可以使用 complex32,但我不知道如何到达那里。特别是我希望在 NVidia GPU 上使用cupy加速。
然而,float16 在 GPU 上似乎更慢而不是更快。
为什么不支持和/或忽略半精度?
这个问题已经在 CuPy repo 中提出了一段时间:
https://github.com/cupy/cupy/issues/3370
但目前还没有具体的工作计划;大多数事情仍然具有探索性。
解决这个问题的原因之一是没有numpy.complex32
我们可以直接导入的 dtype(请注意,所有 CuPy 的 dtype 都只是 NumPy 的别名),因此在询问设备主机传输时会出现问题。另一件事是在 CPU 或 GPU 上complex32
没有为 . 在链接的问题中有一个 NumPy 讨论的链接,我的印象是它目前没有被考虑......