Skip to content

Commit c49cebd

Browse files
committed
fix nvrtc error handling
1 parent bb336aa commit c49cebd

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

cuda_core/cuda/core/experimental/_program.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,15 @@ def compile(self, target_type, options=(), name_expressions=(), logs=None):
6363
if name_expressions:
6464
for n in name_expressions:
6565
symbol_mapping[n] = handle_return(nvrtc.nvrtcGetLoweredName(
66-
self._handle, n.encode()))
66+
self._handle, n.encode()), handle=self._handle)
6767

6868
if logs is not None:
69-
logsize = handle_return(nvrtc.nvrtcGetProgramLogSize(self._handle))
69+
logsize = handle_return(nvrtc.nvrtcGetProgramLogSize(self._handle),
70+
handle=self._handle)
7071
if logsize > 1:
7172
log = b" " * logsize
72-
handle_return(nvrtc.nvrtcGetProgramLog(self._handle, log))
73+
handle_return(nvrtc.nvrtcGetProgramLog(self._handle, log),
74+
handle=self._handle)
7375
logs.write(log.decode())
7476

7577
# TODO: handle jit_options for ptx?

cuda_core/cuda/core/experimental/_utils.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,12 @@ def _check_error(error, handle=None):
4242
elif isinstance(error, nvrtc.nvrtcResult):
4343
if error == nvrtc.nvrtcResult.NVRTC_SUCCESS:
4444
return
45-
assert handle is not None
46-
_, logsize = nvrtc.nvrtcGetProgramLogSize(handle)
47-
log = b" " * logsize
48-
_ = nvrtc.nvrtcGetProgramLog(handle, log)
49-
err = f"{error}: {nvrtc.nvrtcGetErrorString(error)[1].decode()}, " \
50-
f"compilation log:\n\n{log.decode()}"
45+
err = f"{error}: {nvrtc.nvrtcGetErrorString(error)[1].decode()}"
46+
if handle is not None:
47+
_, logsize = nvrtc.nvrtcGetProgramLogSize(handle)
48+
log = b" " * logsize
49+
_ = nvrtc.nvrtcGetProgramLog(handle, log)
50+
err += f", compilation log:\n\n{log.decode()}"
5151
raise NVRTCError(err)
5252
else:
5353
raise RuntimeError('Unknown error type: {}'.format(error))

0 commit comments

Comments
 (0)