在CUDA';s的PTX文件,该文件的用途是什么;。文件";指令?
据我所知,CUDA的PTX文件是由设备运行时JIT编译的虚拟字节码。这意味着该文件是跨平台的,您可以生成PTX文件,它将在任何CUDA兼容设备上运行。但是,当我在文本编辑器中读取文件时,我会看到这些指令“.file”,其中包含有关我编译它的原始计算机上的文件的信息。因此,我不确定这些指令的目的是什么。另外,考虑到我生成的PTX文件不应该依赖于这些文件,可以安全地删除这些文件吗?(比如,如果我想开始编写自己的PTX生成器)。如果您检查函数体,您很可能会找到表单说明在CUDA';s的PTX文件,该文件的用途是什么;。文件";指令?,cuda,Cuda,据我所知,CUDA的PTX文件是由设备运行时JIT编译的虚拟字节码。这意味着该文件是跨平台的,您可以生成PTX文件,它将在任何CUDA兼容设备上运行。但是,当我在文本编辑器中读取文件时,我会看到这些指令“.file”,其中包含有关我编译它的原始计算机上的文件的信息。因此,我不确定这些指令的目的是什么。另外,考虑到我生成的PTX文件不应该依赖于这些文件,可以安全地删除这些文件吗?(比如,如果我想开始编写自己的PTX生成器)。如果您检查函数体,您很可能会找到表单说明 .loc fileNum fil
.loc fileNum fileLine
这表示以下代码是从文件fileNum
的行fileLine
生成的。fileNum
是一个索引整数,用于命名由您请求的.file
指令预先声明的文件
这可以帮助您将源代码与生成的PTX输出关联起来
在JIT编译期间,PTX被转换为本机GPU机器代码。在那里,那些
.loc
和.file
根本不会出现。它绝对不会影响最终的机器代码。如果您检查函数体,您很可能会找到形式说明
.loc fileNum fileLine
这表示以下代码是从文件fileNum
的行fileLine
生成的。fileNum
是一个索引整数,用于命名由您请求的.file
指令预先声明的文件
这可以帮助您将源代码与生成的PTX输出关联起来
在JIT编译期间,PTX被转换为本机GPU机器代码。在那里,那些
.loc
和.file
根本不会出现。它对最终机器代码绝对没有影响。根据PTX规范,这些是调试指令。它们确实可以被安全地一下子移除。我不是100%确定,也不知道它们的确切用途(尽管我可以想象),所以请发表评论。可能对答案感兴趣。根据PTX规范,这些是调试指令。它们确实可以被安全地一下子移除。我不是100%确定,也不知道它们的确切用途(尽管我可以想象),所以请发表评论。我想知道答案。谢谢,这就是我想要的。作为一个附加组件,我注意到.loc有第三个参数,它似乎总是零。这有什么特别的意义吗?谢谢,这就是我要找的。作为一个附加组件,我注意到.loc有第三个参数,它似乎总是零。这有什么特别的意义吗?