我有一个用于 CUDA 7.5 的 CUDA C/C++ 程序。众所周知:libNVVM 库 - 一个从 NVVM IR 生成 PTX 的优化编译器库。
我可以通过以下方式获得 PTX:nvcc -ptx <file>.cu -o <file>.ptx
但是我怎样才能从中获得 NVVM IR (LLVM IR) <file>.cu
?
以及如何为目标架构编译 NVVM IR (LLVM IR) 或 Optimized IR?
我是否需要这个第三方库或程序,例如:libcuda.lang,...?
NVVM 编译器(基于 LLVM)从 NVVM IR 生成 PTX 代码。
NVVM IR 和 NVVM 编译器大多与所使用的源语言无关。由于 DCI(驱动程序/编译器接口)的不同,NVVM 编译器的 PTX 代码生成部分需要知道源语言。
从技术上讲,NVVM IR 是 LLVM IR,具有一组规则、限制和约定,以及一组受支持的内在函数。NVVM IR 中指定的程序始终是合法的 LLVM 程序。合法的 LLVM 程序可能不是合法的 NVVM 程序。