I have an existing working Optix program, and another working straw-man program adding new features, they cooperate in a loose fashion using CPU shared memory and can run on the same GPU or different ones, (each tied to just one GPU).
I am looking at bringing these closer together and started by writing a single program initialising two Optix contexts, but at a context compile stage i get error.
Unknown error assertion failed “cudaCTX->getInterop() == Interop” .
I get no search hits for this type of error and wonder if anyone here can shed light on the what the issue is.
I suppose the question boils down to “Is it possible to have more than one Optix context active in a single program”. I naively thought that as everything is tied to one context or other that it would be possible.
On a broader point, what would experts advise / what is possible, if I want a cooperating two Optix system, that can be run on one or two GPUs, so that buffers are only mapped to one GPU or other.
- Two separate programs as I have now, possibly transferring data via DMA GPU copies.
- A single program two threads, each thread tied to different Optix context/GPU s.
- A single program one thread, two Optix contexts
The reason i am quite wedded to a two Optix context system is that I suspect will max out memory on a single GPU, and thus need to break the problem up, but again also want the design to work if both run on the same GPU.
Thanks for taking the time to read this.