Calling other accellerator APIs from cudaLaunchHostFunc?

The documentation states

The host function must not make any CUDA API calls.

and there is a similar warning for compute graph host nodes.

But, what about OpenGL, Vulkan, NvBufferTransform and other APIs that primarily execute on processors other than the CPU? Assuming I sort out thread safety issues on my own, are there any problematic API calls that should be avoided from host callbacks?

Hi,
It is case-by-case. We have samples for demonstrating some usecases and the cases can be verified in each L4T release. For example, for hooking CUDA with NvBuffer APIs, the function call sequence is like:

NvBufferCreateEx(&dmabuf_fd);
egl_image = NvEGLImageFromFd(dmabuf_fd);
cuGraphicsEGLRegisterImage(egl_image);
cuGraphicsResourceGetMappedEglFrame(&eglFrame, egl_image);
__CUDA_PROCESS__;
cuGraphicsUnregisterResource();
NvDestroyEGLImage(egl_image);

The sequence is verified and should work well. It is possible that certain function sequence(s) is not verified and problematic. If you have seen this, we would need your help to share us test sample and steps so that we can replicate the issue and do further debugging.