在CUDA的PTX文件中,“。file”指令的目的是什么?

时间:2011-11-25 16:38:05

标签: cuda

根据我的理解,CUDA的PTX文件是由设备运行时编译的JIT虚拟字节码。这意味着该文件是跨平台的,您可以生成PTX文件,它将在任何兼容CUDA的设备上运行。但是,当我在文本编辑器中读取文件时,我看到这些指令“.file”,其中包含有关我为其编译的原始计算机上的文件的信息。所以我不确定这些指令的目的是什么。另外,鉴于我生成的PTX文件不应该依赖于这些文件,是否可以安全地删除它们? (就像我想开始编写自己的PTX生成器一样)。

1 个答案:

答案 0 :(得分:6)

如果您检查功能的正文,您很可能会找到表格的说明

.loc fileNum fileLine

这表明,以下代码是从文件fileLine中的行fileNum生成的。 fileNum是一个索引整数,用于命名您要求的.file指令预先声明的文件。

这可以帮助您将源代码与生成的PTX输出相关联。

在JIT编译期间,PTX将转换为本机GPU机器代码。在那里,.loc.file根本没有出现。它对最终的机器代码完全没有影响。