c++ - 如何在没有安装 CUDA 工具包的机器上运行编译后的 CUDA 代码?

标签 c++ visual-studio-2010 cuda gpu gpgpu

与 geforce (cc5.0) 的大量 cuda 内核相比,任何内存受限的应用程序是否会受益于 tesla(cc2.0) 的高内存吞吐量?

我如何在不在 tesla 机器上安装 VS2010 和 cuda 的情况下运行在带有 geforce 卡的机器上编译的 exe 文件在另一台带有 tesla 卡的机器上(即我希望这个 exe 文件是独立的应用程序)?

最佳答案

will any memory bound application benefit from high memory throughput of tesla(cc2.0) more than high number of cuda cores of geforce (cc5.0)?

受内存限制的 CUDA 应用程序可能在具有更高内存带宽的 GPU 上运行得最快。当然还有其他因素会影响这一点,但这是一个合理的一般原则。我不确定您指的是哪两张卡,但是特定的 GeForce GPU 完全有可能比特定的 Tesla GPU 具有更高的内存带宽。 cc2.0 Tesla GPU(例如 M2050、C/M2070、C/M2075、M2090)可能确实比我知道的 cc5.0 GeForce GPU(例如 GeForce GTX 750/750Ti)具有更高的内存带宽(超过 100GB/s) -- 低于 90GB/秒)。

how can i run exe filed compiled on machine with geforce card on another machine with tesla card without installing VS2010 and cuda on tesla machine (ie i want this exe file to be stand alone application)?

有几件事很容易做到,这将使将编译后的 CUDA 代码从一台机器移动到另一台机器变得更加容易。

  1. 确保 CUDART 库是静态链接的。这应该是最新 CUDA 版本的默认设置。您可以阅读更多相关信息 here .如果您正在使用其他库(例如 CUBLAS 等),您将希望确保这些其他库也静态链接(如果可能)或将库(Linux 中的 .so 文件,Windows 中的 .dll 文件)与您的应用程序捆绑在一起。

  2. 针对一系列计算架构进行编译。例如,如果您知道您只需要并希望以 cc2.0 和 cc5.0 为目标,那么请确保您的 nvcc 编译命令行包含同时以 cc2.0 和 cc5.0 为目标的开关.这是一个相当复杂的主题,但如果您查看 CUDA sample codes (makefile 或 VS 项目)您将找到为各种体系结构构建的项目示例。为了获得最大的兼容性,您可能希望确保在可执行文件中同时包含 PTX 和 SASS。您可以阅读更多相关信息 herehere .

  3. 确保机器有兼容的驱动程序。例如,如果您使用 CUDA 7.0 工具包编译 CUDA 代码,您将只能在安装了兼容 GPU 驱动程序的机器上运行它(驱动程序是工具包中的一个单独项目。需要 GPU 驱动程序才能使使用 GPU,CUDA 工具包不是。)对于 CUDA 7,这大致意味着您需要在要运行 CUDA 7 编译代码的任何机器上安装 r346 或更新的驱动程序。其他 CUDA 工具包版本具有其他关联的最低驱动程序版本。作为引用,这个answer给出了某些最新 CUDA 工具包版本所需的近似最低 GPU 驱动程序版本的概念。

关于c++ - 如何在没有安装 CUDA 工具包的机器上运行编译后的 CUDA 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31210873/

相关文章:

c++ - 如何在 C++ 中通过 system() 函数使用字符串变量

加载 C++ dll 时 C# 崩溃

asp.net - "include files from the App_data folder"选项在哪里?

cuda - 半精度 : Difference between __float2half vs __float2half_rn

c++ - 如何只删除一次指针?

c++ - 分配给堆与堆栈的执行时间有何不同?

windows - vcvarsall.bat 和 bin/vcvars32.bat 有什么区别?

javascript - 如何替换 VS2010 javascript 文件

c++ - 我可以在 CUDA 代码的内核部分使用 C++ 头文件吗?

cuda - GPU 仿真器,无需硬件即可进行 CUDA 编程