#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <curand.h>
#include <cuda_runtime.h>
我在程序起始处,引入以上头文件。
并在链接器—输入 里面加入了 cudart.lib
在链接器—常规 里面添加了 $(CUDA_PATH_V5_5)\lib$(Platform);
可是运行随机数生成的时候却发现,无法识别随机函数。不知道什么原因
[attach]3443[/attach]
楼主您好:
您忘记链接curand.lib了。
解决方案:
请在您的项目属性中,点击linker, 在linker input里面输入:curand.lib
(请注意curand.lib有两个:
一个位于:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\lib\Win32
另一个位于:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\lib\X64
分别对应32位和64位版本,注意别弄错了)
感谢来访
只需要在linker INPUT里面添加curand.lib就可以了吗? 下面的那个是什么意思?我应该在哪添加这个目录。
哦,好使了。还有个问题,我的显卡是9300gs,总是遇到申请显存出错。然后关机等待一段时间,又好了。像昨晚我出现的问题,今天早上就好了。都是按照标准操作来的,int *d_data;cudaMalloc((void **) &d_data,sizeof(int)*NUM); cudaFree(d_data); 然后就会返回错误。 我想是不是DEBUG模式下,它总是分配那个固定的地址,上一次执行中断后,没有释放掉,因此出错?
请问返回啥错误?您可以提供错误,论坛为您分析。以及,您的新问题建议新开主题。
此外,您的9300显卡的显存可能不足了,无法继续分配了(这是很老很老的显卡了)。
关于为何cudaMalloc可能返回同样的设备指针值,这个和您之前的程序是否释放无关的,在您的exe的进程结束的时候,所有分配的显存将自动释放。