在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 中,你不能
- 将字典传递给内核
- 将列表传递给内核
- 在设备代码中直接将字典翻译成 C++ 结构
- 直接将列表转换为设备中的 C++ 线性数组
PyCUDA 可以使用 Python 类 作为 C++ 结构,它有一个类似 numpy 的数组用于 GPU。所以第 3 点和第 4 点是可能的,但不是您想要的那样。文档中讨论了这两种技术,here for gpuarray and here for structures。
我有一本字典,我想知道是否可以将它用作内核的参数。
例如
我有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 中,你不能
- 将字典传递给内核
- 将列表传递给内核
- 在设备代码中直接将字典翻译成 C++ 结构
- 直接将列表转换为设备中的 C++ 线性数组
PyCUDA 可以使用 Python 类 作为 C++ 结构,它有一个类似 numpy 的数组用于 GPU。所以第 3 点和第 4 点是可能的,但不是您想要的那样。文档中讨论了这两种技术,here for gpuarray and here for structures。