@@ -136,6 +136,10 @@ static void *allocDeviceMemory(GPUSYCLQUEUE *queue, size_t size,
136
136
} else {
137
137
memPtr = sycl::aligned_alloc_device (alignment, size, queue->syclQueue_ );
138
138
}
139
+ if (memPtr == nullptr ) {
140
+ throw std::runtime_error (
141
+ " aligned_alloc_shared() failed to allocate memory!" );
142
+ }
139
143
return memPtr;
140
144
}
141
145
@@ -277,35 +281,56 @@ extern "C" SYCL_RUNTIME_EXPORT void gpuStreamDestroy(GPUSYCLQUEUE *queue) {
277
281
278
282
extern " C" SYCL_RUNTIME_EXPORT void *
279
283
gpuMemAlloc (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
+ });
282
289
}
283
290
284
291
extern " 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
+ });
286
297
}
287
298
288
299
extern " C" SYCL_RUNTIME_EXPORT ze_module_handle_t
289
300
gpuModuleLoad (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
+ });
291
306
}
292
307
293
308
extern " C" SYCL_RUNTIME_EXPORT sycl::kernel *
294
309
gpuKernelGet (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
+ });
296
315
}
297
316
298
317
extern " C" SYCL_RUNTIME_EXPORT void
299
318
gpuLaunchKernel (GPUSYCLQUEUE *queue, sycl::kernel *kernel, size_t gridX,
300
319
size_t gridY, size_t gridZ, size_t blockX, size_t blockY,
301
320
size_t blockZ, size_t sharedMemBytes, void *params) {
302
321
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
+ }
305
326
});
306
327
}
307
328
308
329
extern " C" SYCL_RUNTIME_EXPORT void gpuWait (GPUSYCLQUEUE *queue) {
309
330
310
- catchAll ([&]() { queue->syclQueue_ .wait (); });
331
+ catchAll ([&]() {
332
+ if (queue) {
333
+ queue->syclQueue_ .wait ();
334
+ }
335
+ });
311
336
}
0 commit comments