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)