NumPY具有complex64对应于两个float32。
但是它也有float16,但是没有complex32。
为什么?我有涉及FFT的信号处理计算,我认为使用complex32可以,但是我不知道如何到达那里。特别是,我希望通过cupy在NVidia GPU上加快速度。
但是,在GPU上,float16似乎是slower,而不是更快。
为什么不支持和/或忽略半精度?
我们也没有complex integers的原因也是如此,因为这也可能表示opportunity for speedup。
答案 0 :(得分:1)
这个问题已经在CuPy仓库中提出了一段时间:
https://github.com/cupy/cupy/issues/3370
但是还没有具体的工作计划;大多数事情仍然具有探索性。
解决这个问题并不容易的原因之一是,没有numpy.complex32
dtypes我们可以直接导入(请注意,所有CuPy的dtypes都是NumPy的别名),因此当询问设备主机转移。另一件事是,没有为complex32
在CPU或GPU上编写本机数学函数,因此我们将需要自己编写它们才能进行强制转换,ufunc和其他操作。在链接的问题中,有一个指向NumPy讨论的链接,我的印象是当前尚未考虑...