|
@@ -218,7 +218,17 @@ void starpu_cuda_set_device(unsigned devid STARPU_ATTRIBUTE_UNUSED)
|
|
|
#if !defined(HAVE_CUDA_MEMCPY_PEER) && defined(HAVE_CUDA_GL_INTEROP_H)
|
|
|
done:
|
|
|
#endif
|
|
|
- if (STARPU_UNLIKELY(cures))
|
|
|
+ if (STARPU_UNLIKELY(cures
|
|
|
+#ifdef STARPU_OPENMP
|
|
|
+ /* When StarPU is used as Open Runtime support,
|
|
|
+ * starpu_omp_shutdown() will usually be called from a
|
|
|
+ * destructor, in which case cudaThreadExit() reports a
|
|
|
+ * cudaErrorCudartUnloading here. There should not
|
|
|
+ * be any remaining tasks running at this point so
|
|
|
+ * we can probably ignore it without much consequences. */
|
|
|
+ && cures != cudaErrorCudartUnloading
|
|
|
+#endif /* STARPU_OPENMP */
|
|
|
+ ))
|
|
|
STARPU_CUDA_REPORT_ERROR(cures);
|
|
|
#endif
|
|
|
}
|