在pycuda中使用字典

using dictionary in pycuda

我有一本字典,我想知道是否可以将它用作内核的参数。

例如

我有cuda内核签名

__global__ void calTab(Tableaux)

Tableaux是对应

的C结构体
typedef struct
{
    float *Tab1;
    float *Tab2;
} Tableaux;

在python Tableaux对应下面的字典:

Tableaux={}
Tableaux["Tab1"]=[]
Tableaux["Tab2"]=[]

是否可以在不使用 C 的情况下将字典用作 C 结构 API?

提前致谢

None 您所提议的是可能的。在 PyCUDA 中,你不能

  1. 将字典传递给内核
  2. 将列表传递给内核
  3. 在设备代码中直接将字典翻译成 C++ 结构
  4. 直接将列表转换为设备中的 C++ 线性数组

PyCUDA 可以使用 Python 类 作为 C++ 结构,它有一个类似 numpy 的数组用于 GPU。所以第 3 点和第 4 点是可能的,但不是您想要的那样。文档中讨论了这两种技术,here for gpuarray and here for structures