jitify
1.0.0
一个单头 C++ 库,用于简化 CUDA 运行时编译 (NVRTC) 的使用。
将 NVRTC 集成到现有和/或模板化 CUDA 代码中可能很棘手。 Jitify 旨在通过将复杂性隐藏在简单的高级界面背后来简化此过程。
const char * program_source = " my_program n "
" template n "
" __global__ n "
" void my_kernel(T* data) { n "
" T data0 = data[0]; n "
" for( int i=0; in "
" data[0] *= data0; n "
" } n "
" } n " ;
static jitify::JitCache kernel_cache;
jitify::Program program = kernel_cache.program(program_source);
// ...set up data etc.
dim3 grid ( 1 );
dim3 block ( 1 );
using jitify::reflection::type_of;
program.kernel( " my_kernel " )
.instantiate( 3 , type_of(*data))
.configure(grid, block)
.launch(data);
Jitify 提供/负责以下事项:
您可以使用 Jitify 和 NVRTC 执行以下操作:
Jitify 只是一个头文件:
# include < jitify.hpp >
编译时使用: -pthread
(如果 JITIFY_THREAD_SAFE 定义为 0,则不需要)
链接: -lcuda -lcudart -lnvrtc
其中包含一个名为 stringify 的小实用程序,用于将文本文件转换为 C 字符串文字,这提供了一种将 JIT 编译源集成到构建中的便捷方法。
可以使用以下命令运行测试:
$ make test
这将自动下载并构建 GoogleTest 库,这需要 CMake 在系统上可用。
有关如何使用该库的一些示例,请参阅 jitify_example.cpp。 Makefile 还演示了如何使用提供的 stringify 实用程序。
Ben Barsdell 和 Kate Clark 的 GTC 2017 演讲
Doxygen 文档可以通过运行生成:
$ make doc
HTML 和 LaTeX 结果放置在 doc/ 子目录中。
BSD-3 条款
Ben Barsdell(NVIDIA、nvidia dot com 的 bbarsdell)
Kate Clark(NVIDIA、nvidia dot com 的 mclark)