CUDA __device__函数的JIT编译

问题描述 投票:0回答:2

我有一个固定的内核,我希望能够合并用户定义的设备功能来更改输出。用户定义的函数将始终具有相同的输入参数,并将始终输出标量值。如果我在编译时知道用户定义的函数,则可以将它们作为指向内核的指针传入(并具有默认的设备函数,如果没有给出函数,则该函数将对输入进行操作)。我可以在运行时访问用户定义函数的PTX代码,并且想知道是否可以在运行时使用NVIDIA的jitify之类的东西来编译PTX,获得指向设备函数的指针,然后将该设备函数传递给预编译的内核函数。

我已经看到一些贴子可以回答这个问题(How to generate, compile and run CUDA kernels at runtime),但是大多数人建议在运行时编译整个内核以及设备函数。鉴于设备功能具有固定的输入和输出,因此我看不出无法提前编译内核功能的任何原因。我缺少的部分是如何在运行时仅编译设备函数并获得指向它的指针,然后传递给内核函数。

c++ cuda jit nvcc
2个回答
2
投票

您可以执行以下操作:


1
投票

我可以在运行时访问用户定义函数的PTX代码,我想知道我是否可以使用NVIDIA jitify之类的东西进行编译PTX在运行时,获取指向设备功能的指针,然后将此设备函数传递给预编译的内核函数。

© www.soinside.com 2019 - 2024. All rights reserved.