← Open Source
NVIDIA

jitify

A single-header C++ library for simplifying the use of CUDA Runtime Compilation (NVRTC).

InfrastructureKernelsC++
Open on GitHub
Momentum
+0stars in 24 hours0.0%
575
Stars
80
Forks
—
This week
17
Contributors
Created 2017-05-08 · Updated 2026-10-02 · #14622 today
Top developers
README

Jitify

A single-header C++ library for simplifying the use of CUDA Runtime Compilation (NVRTC).

Rationale

Integrating NVRTC into existing and/or templated CUDA code can be tricky. Jitify aims to simplify this process by hiding the complexities behind a simple, high-level interface.

Quick example

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; i

Compile with: -pthread (not needed if JITIFY_THREAD_SAFE is defined to 0)

Link with: -lcuda -lcudart -lnvrtc

A small utility called stringify is included for converting text files into C string literals, which provides a convenient way to integrate JIT-compiled sources into a build.

Running tests

Tests can be run with the following command:

$ make test

This will automatically download and build the GoogleTest library, which requires CMake to be available on the system.

Documentation

Examples

See jitify_example.cpp for some examples of how to use the library. The Makefile also demonstrates how to use the provided stringify utility.

GTC 2017 Talk by Ben Barsdell and Kate Clark

API documentation

Doxygen documentation can be generated by running:

$ make doc

The HTML and LaTeX results are placed into the doc/ subdirectory.

License

BSD-3-Clause

Authors

Ben Barsdell (NVIDIA, bbarsdell at nvidia dot com)

Kate Clark (NVIDIA, mclark at nvidia dot com)