@@ -136,6 +136,10 @@ static void *allocDeviceMemory(GPUSYCLQUEUE *queue, size_t size,
136136 } else {
137137 memPtr = sycl::aligned_alloc_device (alignment, size, queue->syclQueue_ );
138138 }
139+ if (memPtr == nullptr ) {
140+ throw std::runtime_error (
141+ " aligned_alloc_shared() failed to allocate memory!" );
142+ }
139143 return memPtr;
140144}
141145
@@ -277,35 +281,56 @@ extern "C" SYCL_RUNTIME_EXPORT void gpuStreamDestroy(GPUSYCLQUEUE *queue) {
277281
278282extern " C" SYCL_RUNTIME_EXPORT void *
279283gpuMemAlloc (GPUSYCLQUEUE *queue, size_t size, size_t alignment, bool isShared) {
280- return catchAll (
281- [&]() { return allocDeviceMemory (queue, size, alignment, isShared); });
284+ return catchAll ([&]() {
285+ if (queue) {
286+ return allocDeviceMemory (queue, size, alignment, isShared);
287+ }
288+ });
282289}
283290
284291extern " C" SYCL_RUNTIME_EXPORT void gpuMemFree (GPUSYCLQUEUE *queue, void *ptr) {
285- catchAll ([&]() { deallocDeviceMemory (queue, ptr); });
292+ catchAll ([&]() {
293+ if (queue && ptr) {
294+ deallocDeviceMemory (queue, ptr);
295+ }
296+ });
286297}
287298
288299extern " C" SYCL_RUNTIME_EXPORT ze_module_handle_t
289300gpuModuleLoad (GPUSYCLQUEUE *queue, const void *data, size_t dataSize) {
290- return catchAll ([&]() { return loadModule (queue, data, dataSize); });
301+ return catchAll ([&]() {
302+ if (queue) {
303+ return loadModule (queue, data, dataSize);
304+ }
305+ });
291306}
292307
293308extern " C" SYCL_RUNTIME_EXPORT sycl::kernel *
294309gpuKernelGet (GPUSYCLQUEUE *queue, ze_module_handle_t module , const char *name) {
295- return catchAll ([&]() { return getKernel (queue, module , name); });
310+ return catchAll ([&]() {
311+ if (queue) {
312+ return getKernel (queue, module , name);
313+ }
314+ });
296315}
297316
298317extern " C" SYCL_RUNTIME_EXPORT void
299318gpuLaunchKernel (GPUSYCLQUEUE *queue, sycl::kernel *kernel, size_t gridX,
300319 size_t gridY, size_t gridZ, size_t blockX, size_t blockY,
301320 size_t blockZ, size_t sharedMemBytes, void *params) {
302321 return catchAll ([&]() {
303- launchKernel (queue, kernel, gridX, gridY, gridZ, blockX, blockY, blockZ,
304- sharedMemBytes, static_cast <ParamDesc *>(params));
322+ if (queue) {
323+ launchKernel (queue, kernel, gridX, gridY, gridZ, blockX, blockY, blockZ,
324+ sharedMemBytes, static_cast <ParamDesc *>(params));
325+ }
305326 });
306327}
307328
308329extern " C" SYCL_RUNTIME_EXPORT void gpuWait (GPUSYCLQUEUE *queue) {
309330
310- catchAll ([&]() { queue->syclQueue_ .wait (); });
331+ catchAll ([&]() {
332+ if (queue) {
333+ queue->syclQueue_ .wait ();
334+ }
335+ });
311336}
0 commit comments