|
NebulaStream
0.6.213
NebulaStream is a data and application management framework for the internet of things
|
The Jitify library header. More...
#include <algorithm>#include <cctype>#include <cstring>#include <deque>#include <fstream>#include <iomanip>#include <iostream>#include <map>#include <memory>#include <sstream>#include <stdexcept>#include <stdint.h>#include <string>#include <typeinfo>#include <unordered_map>#include <unordered_set>#include <vector>#include <mutex>#include <cuda.h>#include <cuda_runtime_api.h>#include <nvrtc.h>#include <cxxabi.h>Classes | |
| struct | jitify::reflection::NonType< T, VALUE_ > |
| struct | jitify::reflection::Instance< T > |
| struct | jitify::reflection::Type< T > |
| struct | jitify::ProgramConfig |
| class | jitify::JitCache_impl |
| class | jitify::Program_impl |
| class | jitify::Kernel_impl |
| class | jitify::KernelInstantiation_impl |
| class | jitify::KernelLauncher_impl |
| class | jitify::KernelLauncher |
| class | jitify::KernelInstantiation |
| class | jitify::Kernel |
| class | jitify::Program |
| class | jitify::JitCache |
| struct | jitify::ExecutionPolicy |
| class | jitify::Capture |
| class | jitify::Lambda< Func > |
| class | jitify::experimental::Program |
| class | jitify::experimental::Kernel |
| class | jitify::experimental::KernelInstantiation |
| class | jitify::experimental::KernelLauncher |
Namespaces | |
| jitify | |
| jitify::reflection | |
| jitify::experimental | |
| jitify::experimental::serialization | |
| jitify::experimental::serialization::detail | |
Macros | |
| #define | JITIFY_THREAD_SAFE 1 |
| #define | JITIFY_PRINT_LOG 1 |
| #define | JITIFY_CAPTURE(...) jitify::Capture(jitify::detail::split_string(#__VA_ARGS__, -1, ","), __VA_ARGS__) |
| #define | JITIFY_MAKE_LAMBDA(capture, x, ...) |
| #define | JITIFY_ARGS(...) __VA_ARGS__ |
| #define | JITIFY_LAMBDA_(x, ...) JITIFY_MAKE_LAMBDA(JITIFY_CAPTURE(x), JITIFY_ARGS(x), __VA_ARGS__) |
| #define | JITIFY_STRIP_PARENS(X) X |
| #define | JITIFY_PASS_PARAMETERS(X) JITIFY_STRIP_PARENS(JITIFY_ARGS X) |
| #define | JITIFY_LAMBDA(capture, ...) JITIFY_LAMBDA_(JITIFY_ARGS(JITIFY_PASS_PARAMETERS(capture)), JITIFY_ARGS(__VA_ARGS__)) |
Typedefs | |
| typedef std::istream *(* | jitify::file_callback_type) (std::string filename, std::iostream &tmp_stream) |
Enumerations | |
| enum | jitify::Location { jitify::HOST , jitify::DEVICE } |
Functions | |
| template<typename T > | |
| std::string | jitify::reflection::reflect (T const &value) |
| template<typename T > | |
| Instance< T const > | jitify::reflection::instance_of (T const &value) |
| template<typename T > | |
| std::string | jitify::reflection::reflect () |
| template<typename T , T N> | |
| std::string | jitify::reflection::reflect () |
| template<typename T > | |
| std::string | jitify::reflection::reflect (jitify::reflection::Type< T >) |
| std::ostream & | jitify::operator<< (std::ostream &stream, dim3 d) |
| template<typename T > | |
| Lambda< T > | jitify::make_Lambda (Capture const &capture, std::string func, T lambda) |
| template<typename IndexType , class Func > | |
| CUresult | jitify::parallel_for (ExecutionPolicy policy, IndexType begin, IndexType end, Lambda< Func > const &lambda) |
| void | jitify::experimental::serialization::detail::serialize (std::ostream &stream, size_t u) |
| bool | jitify::experimental::serialization::detail::deserialize (std::istream &stream, size_t *size) |
| void | jitify::experimental::serialization::detail::serialize (std::ostream &stream, std::string const &s) |
| bool | jitify::experimental::serialization::detail::deserialize (std::istream &stream, std::string *s) |
| void | jitify::experimental::serialization::detail::serialize (std::ostream &stream, std::vector< std::string > const &v) |
| bool | jitify::experimental::serialization::detail::deserialize (std::istream &stream, std::vector< std::string > *v) |
| void | jitify::experimental::serialization::detail::serialize (std::ostream &stream, std::map< std::string, std::string > const &m) |
| bool | jitify::experimental::serialization::detail::deserialize (std::istream &stream, std::map< std::string, std::string > *m) |
| template<typename T , typename... Rest> | |
| void | jitify::experimental::serialization::detail::serialize (std::ostream &stream, T const &value, Rest... rest) |
| template<typename T , typename... Rest> | |
| bool | jitify::experimental::serialization::detail::deserialize (std::istream &stream, T *value, Rest... rest) |
| void | jitify::experimental::serialization::detail::serialize_magic_number (std::ostream &stream) |
| bool | jitify::experimental::serialization::detail::deserialize_magic_number (std::istream &stream) |
| template<typename... Values> | |
| std::string | jitify::experimental::serialization::serialize (Values const &... values) |
| template<typename... Values> | |
| bool | jitify::experimental::serialization::deserialize (std::string const &serialized, Values *... values) |
The Jitify library header.
| #define JITIFY_ARGS | ( | ... | ) | __VA_ARGS__ |
| #define JITIFY_CAPTURE | ( | ... | ) | jitify::Capture(jitify::detail::split_string(#__VA_ARGS__, -1, ","), __VA_ARGS__) |
| #define JITIFY_LAMBDA | ( | capture, | |
| ... | |||
| ) | JITIFY_LAMBDA_(JITIFY_ARGS(JITIFY_PASS_PARAMETERS(capture)), JITIFY_ARGS(__VA_ARGS__)) |
Creates a Lambda object with captured variables and a function definition.
| capture | A bracket-enclosed list of variables to capture. |
| ... | The function definition. |
| #define JITIFY_LAMBDA_ | ( | x, | |
| ... | |||
| ) | JITIFY_MAKE_LAMBDA(JITIFY_CAPTURE(x), JITIFY_ARGS(x), __VA_ARGS__) |
| #define JITIFY_MAKE_LAMBDA | ( | capture, | |
| x, | |||
| ... | |||
| ) |
| #define JITIFY_PASS_PARAMETERS | ( | X | ) | JITIFY_STRIP_PARENS(JITIFY_ARGS X) |
| #define JITIFY_PRINT_LOG 1 |
| #define JITIFY_STRIP_PARENS | ( | X | ) | X |
| #define JITIFY_THREAD_SAFE 1 |
Jitify - A C++ library that simplifies the use of NVRTC Use class jitify::JitCache to manage and launch JIT-compiled CUDA kernels.
Use namespace jitify::reflection to reflect types and values into code-strings.
Use JITIFY_INCLUDE_EMBEDDED_FILE() to declare files that have been embedded into the executable using the GCC linker.
Use jitify::parallel_for and JITIFY_LAMBDA() to generate and launch simple kernels.