根据cuLaunchKernel 函数的 NVidia 文档,使用 CUDA 3.2+ 编译的内核包含有关其参数列表的信息。有没有办法以编程方式从 CUfunction 句柄中检索这些信息?我需要从其 CUfunction 句柄中知道内核的参数数量和每个参数的大小(以字节为单位)。我已经看到上面引用的 NVidia 文档说此信息存在,但我在 CUDA 文档中没有看到任何地方表明访问此信息的编程方式。
添加更多解释:我正在使用中间件系统。它的前端库取代了目标系统上的 libcuda(驱动 API 库)。然后,后端作为守护进程在另一台使用 GPGPU 资源的主机上运行,并调用该机器上真正的 libcuda。还有其他中间件解决方案已经使用 cuLaunchKernel 做到了这一点,所以这绝对是可能的。此外,CUDA 本身使用此信息来了解如何从传递给 cuLaunchKernel 的指针解析参数。
编辑:我最初的 CUDA 版本中引入了此元数据,但列出不正确。根据cuLaunchKernel 文档,它是 3.2,而不是 4.0 。