~Impl() { for (size_t i = 0, e = m_contexts.size(); i < e; ++i) { if (m_contexts[i] != nullptr) cuDevicePrimaryCtxRelease(static_cast<CUdevice>(i)); } }
void teardown() { TwTerminate(); // Free device global memory checkCudaErrors(cuMemFree(d_img_content)); //cuProfilerStop(); free(img_content); rmt_UnbindOpenGL(); rmt_DestroyGlobalInstance(rmt); cuDevicePrimaryCtxRelease(cuDevice); cudaDeviceReset(); }