我想使用cupy测试浮点数是否为正,例如:
import cupy as cp
u = cp.array(1.3)
u < 2.
>>> array(True)
我的问题是这个操作非常慢:
%timeit u < 2.
在我的电脑上给出 26 微秒。它比我在 CPU 中得到的要大几个数量级。我怀疑这是因为你必须被投到CPU上......
我正在尝试找到一种更快的方法来执行此操作。
谢谢 !
编辑澄清
我的代码是这样的:
import cupy as cp
n = 100000
X = cp.random.randn(n) # can be greater
for _ in range(100): # There may be more iterations
result = X.dot(X)
if result < 1.2:
break
似乎这段代码的瓶颈(对于 this n
)是对result < 1.2
. 它仍然比 CPU 快得多,因为dot
成本要低得多。