假设我在CUDA中有一个指向__global__
函数的指针。有没有办法以编程方式向CUDART询问包含其名称的字符串?
答案 0 :(得分:1)
我认为任何公共API都不可能实现这一点。
我之前尝试过在驱动程序中进行探索,但这看起来并不太有希望。编译器为<<< >>>
内核调用发出的代码清楚地通过__cudaRegisterFunction
向运行时注册了受损的函数名,但我看不到任何明显的方法来在运行时库中按名称/值执行查找。相当于cuModuleGetFunction
的驱动程序API会导致同样不透明的类型,从中无法提取函数名称。
编辑添加:
主机编译器本身不支持反射,因此没有明显的花哨语言技巧可以在运行时拉出来。一种可能性是在编译轨迹中添加另一个预处理器传递,以在最终构建之前构建静态内核函数查找表。这将是相当多的工作,但它可以完成,至少对于“经典”编译而言,一切都在一个翻译单元中结束。