pycuda共享内存达到设备硬限制

标签 pycuda

这是此处讨论的扩展:pycuda shared memory error "pycuda._driver.LogicError: cuLaunchKernel failed: invalid value"

pycuda 中是否有相当于以下 C++ API 调用的方法?

#define SHARED_SIZE 0x18000 // 96 kbyte
cudaFuncSetAttribute(func, cudaFuncAttributeMaxDynamicSharedMemorySize, SHARED_SIZE)

在最新的 GPU (Nvidia V100) 上工作,超过 48 kbyte 共享内存需要设置此函数属性。如果没有它,就会出现与上述主题相同的启动错误。设备上的“硬”限制是 96 KB 共享内存(为 L1 缓存留出 32 KB)。

有一个已弃用的方法 Fuction.set_shared_size(bytes) 听起来很有希望,但我找不到它应该被替换的方法。

最佳答案

PyCUDA使用驱动程序API,设置函数动态内存限制的相应函数调用是cuFuncSetAttribute

我在当前 PyCUDA 树中的任何地方都找不到它,因此怀疑它尚未实现。

关于pycuda共享内存达到设备硬限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56734652/

相关文章:

CUDA 程序在 sm_35 Kepler GPU 上给出 cudaErrorIllegalAddress,但在其他 GPU 上运行良好

ubuntu - pycuda在ubuntu上安装错误:/usr/bin/ld: cannot find -lcuda

cuda - Cuda C 中的加法赋值运算符

numpy - 在 gpu 上对 numpy 矩阵进行排序

python - PYCUDA 设置 NVCC 参数

python - 处理大数据的 Pycuda block 和网格

python - Pycuda 编译错误

cuda - pycuda::complex 数组上的元素明智函数

python - PyCuda 中的 cudaBindTextureToArray

python - PyCUDA:GPUArray.get() 返回无法访问的数组