安装将被JIT编译的代码的好习惯是什么?

时间:2014-12-21 18:08:24

标签: cuda installation cmake opencl jit

在设计Unix风格的命令行应用程序的安装时,如果存在即时(JIT)编译的代码,那么安装树中的位置是否存在标准或最佳实践应该安装源(和标头)? ${root}/share/${appname}/src合理吗?

特定上下文是一个配置了CMake的混合C / C ++应用程序,它最多只能构建一个CUDA或OpenCL支持(可能使用JIT),但我不认为这对答案很重要。

显然,人们不能依赖源或构建树中源文件的副本,因为这些源文件在运行时不一定存在(或可查找)。

1 个答案:

答案 0 :(得分:3)

对于OpenCL内核代码,修改构建系统以将代码作为字符串嵌入到头文件中。直接使用字符串传递到OpenCL运行时。没有必要,也没有理由将OpenCL内核保存在单独的文件中。您可以使用预处理器将.cl文件转换为标题,或者更好地编写一个快速的python脚本来执行此操作。

我认为类似的方法适用于其他系统。要么是标准的位置或环境变量(在Java中为c.f.CLASSPATH),要么将它们直接嵌入已安装的二进制文件中。