任何人都可以解释如何拦截对CUDA Runtime API的调用吗? 我是一个新手,我已经阅读了一些关于linux库拦截的内容。 我想使用相同的概念,以便我可以拦截Cuda Runtime Api。
答案 0 :(得分:3)
CUDA Toolkit中包含的CUPTI SDK支持在进入和退出CUDA运行时API时启用回调。可以对回调中的状态进行一些修改,但是当前的回调系统不允许您修改参数的值或跳过实际函数。
如果您需要修改输入和输出参数,我建议您生成一个拦截层。 Doxygen perlmod和一个相当小的perl脚本可用于生成拦截层。
我相信ocelot源代码有一个完整的CUDA运行时拦截层。
在Linux上,您可以使用LD_PRELOAD将拦截层插入应用程序。