3

假设我有一个指向__global__CUDA 中的函数的指针。有没有办法以编程方式向 CUDART 询问包含其名称的字符串?

4

1 回答 1

1

我不相信任何公共 API 都可以做到这一点。

我之前曾尝试在驱动程序本身中四处寻找,但这看起来不太有希望。编译器为<<< >>> 内核调用发出的代码清楚地通过运行时向运行时注册了损坏的函数名称__cudaRegisterFunction,但我看不到任何明显的方法来在运行时库中按名称/值执行查找。等效的驱动程序 APIcuModuleGetFunction会导致同样不透明的类型,似乎无法从中提取函数名称。

编辑添加:

宿主编译器本身不支持反射,因此没有明显的花哨的语言技巧可以在运行时拉取。一种可能性是在编译轨迹中添加另一个预处理程序,以在最终构建之前构建静态内核函数查找表。这将是相当多的工作,但它可以完成,至少对于“经典”编译,所有内容都在一个翻译单元中结束。

于 2013-11-01T16:14:50.540 回答