这个错误是什么意思?我似乎无法找到任何有关它的信息。它发生在cudaEventRecord上。
项目头文件中的:
cudaEvent_t cudaEventStart;
<。>在.c文件中:
cudaEventCreate(&cudaEventStart);
printf("create event: %d\n", (int) cudaEventStart);
在我的.cu文件中:
printf("record event: %d\n", (int) cudaEventStart);
cudaEventRecord(cudaEventStart);
相关输出显示调用的问题。由于某种原因,cudaEventStart不是我的cu文件中的有效事件资源:
create event: 44199920
record event: 0
详细
我正在将我的代码从linux移植到Windows。它在linux上的同一张卡上运行良好,并且只进行了一些更改。我定义了roundf
并添加了以下内容:
typedef size_t off_t;
#define strtof(str,n) (float)strtod(str,n)
#include <float.h>
#define isnan(n) _isnan(n)
#define strcasecmp _stricmp
#include <io.h>
#define read _read
我不清楚为什么这些事情会影响cuda资源。也许我正在以某种方式错误地构建项目......?
答案 0 :(得分:3)
无效的资源句柄通常意味着尝试在未创建它的上下文中使用某些东西(指针,符号,纹理,内核)。更具体的答案需要一个更具体的问题,特别是您正在使用的API以及如何/如果您在代码中的任何位置使用主机线程。