Я хочу проверить с помощью cupy, является ли число с плавающей точкой положительным, например:
import cupy as cp
u = cp.array(1.3)
u < 2.
>>> array(True)
Моя проблема в том, что эта операция очень медленная: %timeit u < 2.
дает 26 микросекунд на моем компьютере.Это на несколько порядков больше, чем то, что я получаю в процессоре.Я подозреваю, что это потому, что вы должны быть наложены на процессор ...
Я пытаюсь найти более быстрый способ сделать эту операцию.
Спасибо!
Редактировать для уточнения
Мой код выглядит примерно так:
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
И, похоже, узким местом этого кода (для этого n
) является оценкаresult < 1.2
.Это все еще намного быстрее, чем на процессоре, так как dot
стоит намного дешевле.