我有一个CUDA C / C ++程序用于CUDA 7.5。众所周知:libNVVM库 - 一个优化的编译器库,可以从NVVM IR生成PTX。
我可以使用:nvcc -ptx <file>.cu -o <file>.ptx
但是如何从<file>.cu
获得NVVM IR(LLVM IR)?
如何为目标架构编译NVVM IR(LLVM IR)或Optimized IR?
我是否需要此第三方库或程序,例如:libcuda.lang,...?
NVVM编译器(基于LLVM)生成PTX代码 NVVM IR。
NVVM IR和NVVM编译器主要与源无关 正在使用的语言。 NVVM编译器的PTX codegen部分需要 因为DCI的不同而知道源语言 (驱动程序/编译器接口)。
从技术上讲,NVVM IR是LLVM IR,带有一套规则, 限制和约定,以及一组受支持的内在因素 功能。 NVVM IR中指定的程序始终是合法的LLVM 程序。合法的LLVM程序可能不是合法的NVVM程序。
答案 0 :(得分:3)
答案非常简短,你不能这样做。 NVIDIA的解析器是专有的封闭源代码,并且它们没有以可以按照您要求的方式使用IR代码生成器。
那就是说,你不是第一个对此感到疑惑的人,你可能会找到一些有用的,但完全非官方和不受支持的信息here。