CUDA使用解释器还是编译器?

时间:2012-05-16 04:35:35

标签: cuda

这是一个有点愚蠢的问题,但我想知道CUDA是否使用解释器或编译器? 我很想知道,因为我不太确定CUDA如何设法让源代码在具有不同计算能力的两张卡上运行。

3 个答案:

答案 0 :(得分:1)

From Wikipedia

  

程序员使用'C for CUDA'(带有Nvidia扩展和某些限制的C),通过PathScale Open64 C编译器编译。

所以,你的答案是:它使用编译器。

并了解它可以在多张卡片上运行的原因(source):

  

CUDA C / C ++提供了一种抽象,它是一种表达您希望程序执行方式的方法。编译器生成的PTX代码也不是特定于硬件的。在运行时,PTX是针对特定目标GPU编译的 - 这是驱动程序的责任,每次发布新GPU时都会更新。

答案 1 :(得分:0)

这些官方文档CUDA C Programming GuideThe CUDA Compiler Driver (NVCC)解释了有关编译过程的所有详细信息。

从第二份文件:

  

nvcc模仿GNU编译器gcc的行为:它接受一个范围   常规编译器选项,例如用于定义宏和   包含/库路径,以及指导编译过程。

答案 2 :(得分:0)

不仅限于cuda,directx或opengl中的着色器也符合某种字节代码,并由底层驱动程序转换为本机代码。