我需要知道内核函数在什么时间点被添加到 GPU 队列中。我对 CUDA 程序进行了 ltrace,得到了几个调用,比如 1.cudaconfigurecall 2.cudamemcpy,我也得到了 cudaLaunch() 我的问题是在调用 cudaLaunch 时或之前或之后的某个时间是否添加了特定的内核函数。哪个函数负责将内核函数添加到队列中。?
问问题
120 次
我需要知道内核函数在什么时间点被添加到 GPU 队列中。我对 CUDA 程序进行了 ltrace,得到了几个调用,比如 1.cudaconfigurecall 2.cudamemcpy,我也得到了 cudaLaunch() 我的问题是在调用 cudaLaunch 时或之前或之后的某个时间是否添加了特定的内核函数。哪个函数负责将内核函数添加到队列中。?
该函数在cudaLaunch
被调用时被添加。先前的 API 调用,例如cudaSetupArgument
and cudaConfigureCall
、reserve 和 intialise 为即将启动的内核调用一个堆栈帧,但堆栈帧不会与给定的内核函数关联,并且在cudaLaunch
调用之前不会被推送到设备。所有这些函数在 CUDA 工具包中都有自己的文档,您可以在此处阅读有关它们的信息。