求教,32位系统下开发的cuda程序不能在64位系统下跑?

本人开发环境:win7 32位系统, vs2008(没有任何和64位有关的补丁,当年安装时应该也没有注意64位选项),32位的 cuda toolkit 5.0。

现在基于上述环境写了 win32 的cuda程序,在自己的笔记本上可以运行,文件夹中包含相应DLL文件后在另外一台32位笔记本上也能运行(升级最新N卡驱动),但是在身边的另外一台64位win7系统的台机上时,双击.EXE文件跳出“应用程序错误”对话框,程序无法运行(该机器已升级到最新能支持cuda的驱动)。

想求教这种情况下,导致程序无法运行的原因是否就是在该环境下开发的cuda程序不能在64位系统下运行?

如果上述判断成立,那么想要在32位系统下开发能在64位系统上运行的程序,环境又该如何设置?

还请各路大神们帮帮忙啊,急求

您双击exe直接出错一般和cuda无关,而是可能您没有安装对应的VC Runtime Redistributable.

原理很简单:您的exe不是仅仅有device code的,而且它还含有host code, 而host code您往往使用了C库函数。此时您将需要VC 2010 Runtime Redistributable安装在目标机器人(请将2010替换成您的实际版本,以及,您也可以通过安装其他软件,有一定概率随着其他软件将它自动安装。不过您可以手工直接安装的)