class CudaExample { public: static void initCuda() { cuInit(0); cudaSetDevice(0); cuCtxGetCurrent(&theCudaContext); cudaStreamCreate(&theJunkStream); } static CUcontext getCudaContext() { return theCudaContext; } private: static CUcontext theCudaContext; static cudaStream_t theJunkStream; }; CUcontext CudaExample::theCudaContext = 0; cudaStream_t CudaExample::theJunkStream = 0; // =========================================================================== // On the same thread: CudaExample::initCuda(); initParameters.depth_mode = sl::DEPTH_MODE::NEURAL; initParameters.sdk_cuda_ctx = CudaExample::getCudaContext(); initParameters.sdk_gpu_id = 0; sl::AI_Model_status aiStatus = sl::checkAIModelStatus(sl::AI_MODELS::NEURAL_DEPTH, 0); if (!aiStatus.downloaded || !aiStatus.optimized) { sl::optimizeAIModel(sl::AI_MODELS::NEURAL_DEPTH, 0); } // Crashes here camera->open(initParameters);