Invalid resource handle error in pycuda code
When running CUDA code, the following error occurs:
File "/mnt/lustre/demo/extract_disp_newtopo/face_registration-master/code/poisson.py", line 147, in blend_gs_cuda
block = (1024, 1, 1))
File "/mnt/lustre/miniconda3/envs/pycuda/lib/python3.6/site-packages/pycuda/driver.py", line 436, in function_call
func._set_block_shape(*block)
pycuda._driver.LogicError: cuFuncSetBlockShape failed: invalid resource handle
Solution:
find the CUDA function part with the problem:
mod = SourceModule("""
#include <stdint.h>
__global__ void construct_b(
const uint8_t* src, const int16_t* u, const int16_t* v,
float* b,
int pix_num, int size
)
You can add any sentence in the following code before the function declaration
src = torch.cuda.ByteTensor(8)# Fill in the numbers at will, and the matrix is also fine, but the data type should be consistent with the data type in C++
b = torch.cuda.FloatTensor(9)
The complete code is as follows:
src = torch.cuda.ByteTensor(8)
mod = SourceModule("""
#include <stdint.h>
__global__ void construct_b(
const uint8_t* src, const int16_t* u, const int16_t* v,
float* b,
int pix_num, int size
)
The specific reason is unknown because it occurs occasionally.