32 #ifdef BUILD_CUDA_MODULE
35 #include <cuda_runtime.h>
39 #define FMT_STRING_ALIAS 0
49 #ifdef BUILD_CUDA_MODULE
51 #define OPEN3D_ML_CUDA_DRIVER_CHECK(err) \
52 __OPEN3D_ML_CUDA_DRIVER_CHECK(err, __FILE__, __LINE__)
54 inline void __OPEN3D_ML_CUDA_DRIVER_CHECK(CUresult err,
58 if (err != CUDA_SUCCESS) {
59 const char *error_string;
60 CUresult err_get_string = cuGetErrorString(err, &error_string);
62 if (err_get_string == CUDA_SUCCESS) {
71 inline cudaStream_t GetDefaultStream() { (cudaStream_t)0; }
73 inline int GetDevice(cudaStream_t stream) {
74 if (stream == GetDefaultStream()) {
80 CUcontext current_context;
81 OPEN3D_ML_CUDA_DRIVER_CHECK(cuCtxGetCurrent(¤t_context));
85 OPEN3D_ML_CUDA_DRIVER_CHECK(cuStreamGetCtx(stream, &
context));
86 OPEN3D_ML_CUDA_DRIVER_CHECK(cuCtxSetCurrent(
context));
91 OPEN3D_ML_CUDA_DRIVER_CHECK(cuCtxGetDevice(&device));
94 OPEN3D_ML_CUDA_DRIVER_CHECK(cuCtxSetCurrent(current_context));
100 class CUDAScopedDeviceStream {
102 explicit CUDAScopedDeviceStream(cudaStream_t stream)
103 : scoped_device_(GetDevice(stream)), scoped_stream_(stream) {}
105 CUDAScopedDeviceStream(CUDAScopedDeviceStream
const &) =
delete;
106 void operator=(CUDAScopedDeviceStream
const &) =
delete;
109 core::CUDAScopedDevice scoped_device_;
110 core::CUDAScopedStream scoped_stream_;
#define LogError(...)
Definition: Logging.h:67
ImGuiContext * context
Definition: Window.cpp:95
Definition: PinholeCameraIntrinsic.cpp:35