2011-05-16 119 views
2

这个错误是什么意思?我似乎无法找到任何信息。它发生在cudaEventRecord上。CUDA无效的资源句柄

项目的头文件

cudaEvent_t cudaEventStart; 

在.c文件:

cudaEventCreate(&cudaEventStart); 
printf("create event: %d\n", (int) cudaEventStart); 
我一个.CU文件

printf("record event: %d\n", (int) cudaEventStart); 
cudaEventRecord(cudaEventStart); 

相关的输出显示什么呼叫的问题是。 cudaEventStart是不是由于某种原因,我立方米文件的有效事件资源:

create event: 44199920 
record event: 0 

详细

  • CUDA 3.2
  • GTX 480
  • 64位的Win7

我正在将我的代码从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

你在做什么,让你这个错误?任何代码,你可以告诉我们? – Bart 2011-05-16 18:07:28

+0

@对不起,我认为这是在内核启动,但在此之前。仍在追踪它。虽然我有兴趣让这个特定的程序工作,但问题仍然没有代码,你不觉得吗?什么事情触发这个错误? – jmilloy 2011-05-16 18:13:25

回答

3

无效的资源句柄通常是指试图在未创建上下文使用的东西(指针,符号,纹理,内核)。更具体的答案将需要一个更具体的问题,特别是您正在使用的API以及如何/如果您在代码中的任何地方使用主机线程。

+0

@talonmies谢谢。我已经添加了一些代码细节。有代码中没有主线程(除非它们以某种方式使用隐含在这里的窗户 - 我不是很在这个窗口的环境与Visual Studio精通?) – jmilloy 2011-05-16 18:25:00

+0

@jmilloy:你在哪里做相对于事件创建上下文的建立并记录? – talonmies 2011-05-16 18:44:12

+0

@talonmies你是什么意思的上下文建立?我添加了关于事件创建和记录在我的项目中发生的详细信息......还有哪些其他信息会有帮助? – jmilloy 2011-05-16 18:46:35