After coping around with cucontext optixDenoiserInvoke returns OPTIX_SUCCESS, but after the call all remaining cuda calls return CUDA_ERROR_ILLEGAL_ADDRESS.
Any help still greatly appreciated… No help at all, so I’ve got it on my own.
I’ve used ‘compute-sanitizer --tool memcheck myoptix.exe > test.txt’. This resulted in an 8GB sized text file and the fourth line of it showed
========= Program hit invalid device context (error 201) on CUDA API call to cuCtxGetDevice.
Stack showed that the error occured while in optixDenoiserCreate.
The call itself returned OPTIX_SUCCESS!!!
Later on in my app I get CUDA_ERROR_ILLEGAL_ADDRESS, which is a follow up on other errors during the optixDenoiserInvoke, which too returns OPTIX_SUCCESS.
========= Program hit no kernel image is available for execution on the device (error 209) on CUDA API call to cudaLaunchKernel.
========= Invalid global write of size 4 bytes
========= at 0x1bf0 in void optix_exp::generateWinogradTilesKernel<__half,float>(optix_exp::GenerateWinogradTilesParams<__half,float>)
========= by thread (2,1,0) in block (0,0,0)
optixDenoiserInvoke returns with OPTIX_SUCCESS despite the errors occured during the call.
After denoise I call cudaStreamSynchroize:
========= Program hit unspecified launch failure (error 719) on CUDA API call to cudaStreamSynchronize.
========= Saved host backtrace up to driver entry point at error
The cudaStreamSynchronize finally returns CUDA_ERROR_ILLEGAL_ADDRESS.
Finally the problem was embarrassing simple… After setting the correct cucontext everything works fine.