lua/c++ 中的用户定义 CUDA 内核
User-defined CUDA kernels in lua/c++
我想允许用户定义要在 CUDA 内核中使用(或被 CUDA 内核调用)的函数。
我不想向用户公开 CUDA API。这些函数应该看起来像典型的 c++/lua 函数。
我检查过 pyCUDA,但它似乎只是 .cu 代码的包装器。
我宁愿有一个 .lua 或 .cc 文件并使用函数指针。
远程可以吗?
不,这不可能。
CUDA 内核,by design, execute on the GPU。它们被编译成 (NVIDIA) 特定于 GPU 的机器语言,并在与 C++ 函数运行的任何东西完全不同的执行环境中执行,更不用说 Lua。他们不能简单地调用任意代码。
您可能做的最多的事情就是编写一个编译器,将 C++/Lua 编译成 CUDA 库。但这对任何一种语言来说都是一项艰巨的任务。
我想允许用户定义要在 CUDA 内核中使用(或被 CUDA 内核调用)的函数。
我不想向用户公开 CUDA API。这些函数应该看起来像典型的 c++/lua 函数。
我检查过 pyCUDA,但它似乎只是 .cu 代码的包装器。
我宁愿有一个 .lua 或 .cc 文件并使用函数指针。 远程可以吗?
不,这不可能。
CUDA 内核,by design, execute on the GPU。它们被编译成 (NVIDIA) 特定于 GPU 的机器语言,并在与 C++ 函数运行的任何东西完全不同的执行环境中执行,更不用说 Lua。他们不能简单地调用任意代码。
您可能做的最多的事情就是编写一个编译器,将 C++/Lua 编译成 CUDA 库。但这对任何一种语言来说都是一项艰巨的任务。