如何使用`cupy`库在标量上进行快速按位运算

时间:2018-10-12 20:21:00

标签: python numpy cupy

我正在GPU上构建强化学习模型,因此我正在使用chainer,它的后端为cupy (take 10 (fibonacci)) => (1 1 2 3 5 8 13 21 34 55) 旨在与cupy相同,只是它在GPU上运行。

我早些时候问this question关于如何在numpy中进行标量的快速位移,答案很简单:我需要对实际的numpy对象进行位移而不是放在numpy.uint64对象上。如果我可以将移位方法转移到numpy.array以获得相同的加速,那就太好了。

但是,cupy文档要求标量必须位于GPU上,而不是CPU(source)上。这意味着我...

  1. 将我的标量表示为一个数组,这在上面的链接问题中提出了我的原始问题,或者
  2. 将标量整数推到CPU,进行计算,然后将其推回到GPU,这也很慢。

如果我想对标量值进行成千上万的移位,尽管这在cupy中花费的时间少于一秒钟,但是在numpy中花费的时间太长了。 如何加快cupy中标量的位移?

0 个答案:

没有答案