微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果调用cudaMalloc,简单的控制台程序将不会退出

如果执行cudamalloc调用,以下简单的程序永远不会退出。 注释掉只是cudamalloc导致它正常退出

#include <iostream> using std::cout; using std::cin; #include "cuda.h" #include "cutil_inline.h" void PrintCudaVersion(int version,const char *name) { int versionMaj = version / 1000; int versionMin = (version - (versionMaj * 1000)) / 10; cout << "CUDA " << name << " version: " << versionMaj << "." << versionMin << "n"; } void ReportCudaVersions() { int version = 0; cudaDriverGetVersion(&version); PrintCudaVersion(version,"Driver"); cudaRuntimeGetVersion(&version); PrintCudaVersion(version,"Runtime"); } int main(int argc,char **argv) { //CUresult r = cuInit(0); << These two lines were in original post //cout << "Init result: " << r << "n"; << but have no effect on the problem ReportCudaVersions(); void *ptr = NULL; cudaError_t err = cudaSuccess; err = cudamalloc(&ptr,1024*1024); cout << "cudamalloc returned: " << err << " ptr: " << ptr << "n"; err = cudaFree(ptr); cout << "cudaFree returned: " << err << "n"; return(0); }

这是运行在Windows 7,CUDA 4.1驱动程序,CUDA 3.2运行时。 我跟踪从主返回到ExitProcess(),从它永远不会返回(按预期),但过程永远不会结束。 从VS2008我可以停止debugging确定。 从命令行,我必须杀死控制台窗口。

节目输出

Init result: 0 CUDA Driver version: 4.1 CUDA Runtime version: 3.2 cudamalloc returned: 0 ptr: 00210000 cudaFree returned: 0

我试图使分配量如此之大,以至于cudamalloc将会失败。 它做了并报告了一个错误,但该程序仍然不会退出。 所以显然只需要调用cudamalloc,而不是分配内存的存在。

以二进制模式写入标准输出最简单的方法是什么?

是否有可能使用python与Windows写入访问原始设备?

问题在Windows本地运行Jekyll

浏览器如何处理UTF8MB4

使用Angular的Cordova APP中的WWAHost中未处理的exception

关于这里发生了什么的任何想法?

编辑:我在第二句话是错的 – 我必须同时消除cudamalloc和cudaFree让程序退出。 离开任何一个导致挂断。

编辑:虽然有很多引用CUDA驱动程序版本是向后兼容的事实,但当我将驱动程序还原到V3.2时,此问题消失。

从适配器获取DNS服务器IP地址?

PyQt5和Python 3.6安装?

如何使用不透明的子控件(或子窗口)创build透明窗口?

C#与Adobe Air的桌面应用程序

Windows XP的本地时间夏令时问题

这似乎是你的驱动程序API( cuInit )与运行时API( cudamalloc )混合。

我不知道幕后是否有什么好玩的事情发生,但是你可以尝试的一件事就是删除cuInit ,看看会发生什么。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐