diff --git a/cuda_core/cuda/core/experimental/_linker.py b/cuda_core/cuda/core/experimental/_linker.py index 42dd2c0bac3..5c5e1c3cea6 100644 --- a/cuda_core/cuda/core/experimental/_linker.py +++ b/cuda_core/cuda/core/experimental/_linker.py @@ -465,7 +465,7 @@ def get_error_log(self) -> str: _nvjitlink.get_error_log(self._mnff.handle, log) else: log = self._options.formatted_options[2] - return log.decode() + return log.decode("utf-8", errors="backslashreplace") def get_info_log(self) -> str: """Get the info log generated by the linker. @@ -481,7 +481,7 @@ def get_info_log(self) -> str: _nvjitlink.get_info_log(self._mnff.handle, log) else: log = self._options.formatted_options[0] - return log.decode() + return log.decode("utf-8", errors="backslashreplace") def _input_type_from_code_type(self, code_type: str): # this list is based on the supported values for code_type in the ObjectCode class definition. diff --git a/cuda_core/cuda/core/experimental/_program.py b/cuda_core/cuda/core/experimental/_program.py index ab936253138..3125cbb7fcf 100644 --- a/cuda_core/cuda/core/experimental/_program.py +++ b/cuda_core/cuda/core/experimental/_program.py @@ -503,7 +503,7 @@ def compile(self, target_type, name_expressions=(), logs=None): if logsize > 1: log = b" " * logsize handle_return(nvrtc.nvrtcGetProgramLog(self._mnff.handle, log), handle=self._mnff.handle) - logs.write(log.decode()) + logs.write(log.decode("utf-8", errors="backslashreplace")) return ObjectCode._init(data, target_type, symbol_mapping=symbol_mapping) diff --git a/cuda_core/cuda/core/experimental/_utils/cuda_utils.py b/cuda_core/cuda/core/experimental/_utils/cuda_utils.py index 1bc66a24af5..ac8e5e17224 100644 --- a/cuda_core/cuda/core/experimental/_utils/cuda_utils.py +++ b/cuda_core/cuda/core/experimental/_utils/cuda_utils.py @@ -74,7 +74,7 @@ def _check_error(error, handle=None): _, logsize = nvrtc.nvrtcGetProgramLogSize(handle) log = b" " * logsize _ = nvrtc.nvrtcGetProgramLog(handle, log) - err += f", compilation log:\n\n{log.decode()}" + err += f", compilation log:\n\n{log.decode('utf-8', errors='backslashreplace')}" raise NVRTCError(err) else: raise RuntimeError(f"Unknown error type: {error}")