是否可以在同一节点上编译CUDA程序而不使用支持CUDA的设备,仅使用NVIDIA CUDA Toolkit ......?
Jac*_*ern 22
你的问题的答案是肯定的.
该nvcc编译器驱动程序是不相关的设备的物理存在,所以你可以编译CUDA代码即使没有CUDA的GPU.但是请注意,正如Robert Crovella所说,CUDA驱动程序库libcuda.so(cuda.lib适用于Windows)附带NVIDIA驱动程序,而不是CUDA工具包安装程序.这意味着需要驱动程序API的代码(其入口点以前缀为cu参见,参见CUDA C编程指南的附录H)将需要在没有NVIDIA GPU的情况下强制安装"最近"驱动程序,并单独运行驱动程序安装程序该--help命令行开关.
遵循相同的基本原理,当您的节点承载不同体系结构的GPU时,您可以编译体系结构的CUDA代码.例如,您可以在托管GT 210的计算机(计算能力1.2)上编译GeForce GT 540M(计算能力2.1)的代码.
当然,在这两种情况下(没有GPU或具有不同架构的GPU),您将无法成功运行代码.
对于早期版本的CUDA,可以在仿真模式下编译代码并在CPU上运行已编译的代码,但设备仿真已经过时了一段时间.如果您没有支持CUDA的设备,但想要运行CUDA代码,您可以尝试使用gpuocelot(但我没有任何经验).