【问题标题】:Numbapro cuda python defining array in thread register in gpuNumbapro cuda python在gpu的线程寄存器中定义数组
【发布时间】:2014-11-28 10:14:49
【问题描述】:

我知道如何使用np.arraynp.zerosnp.empty(shape, dtype)在Host内部创建一个全局设备函数,然后使用cuda.to_device进行复制。

另外,可以将共享数组声明为cuda.shared.array(shape, dtype)

但是如何在 gpu 函数内部的特定线程的寄存器中创建一个恒定大小的数组。

我尝试了cuda.device_arraynp.array,但没有任何效果。

我只是想在一个线程中执行此操作 -

x = array(CONSTANT, int32) # should make x for each thread

【问题讨论】:

    标签: python cuda pycuda numba numba-pro


    【解决方案1】:

    Numbapro 支持numba.cuda.local.array(shape, type) 用于定义线程本地数组。

    与 CUDA C 一样,是否在本地内存或寄存器中定义数组是编译器根据数组的使用模式决定的。如果本地数组的索引模式是静态定义的并且有足够的寄存器空间,编译器将使用寄存器来存储数组。否则它将存储在本地内存中。请参阅this question and answer pair 了解更多信息。

    【讨论】:

      猜你喜欢
      • 2013-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-25
      • 2021-01-12
      • 1970-01-01
      • 2018-03-12
      • 2023-04-03
      相关资源
      最近更新 更多