Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion cuda_core/cuda/core/graph/_graph_builder.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,7 @@ class GraphCompleteOptions:
def _instantiate_graph(source, options: GraphCompleteOptions | None = None) -> Graph:
cdef GraphHandle h_graph
cdef GraphExecHandle h_exec
cdef cydriver.CUresult status

if isinstance(source, GraphBuilder):
GB_check_open(<GraphBuilder>source)
Expand Down Expand Up @@ -209,7 +210,11 @@ def _instantiate_graph(source, options: GraphCompleteOptions | None = None) -> G
# The exec is adopted only when result_out reports success, so the
# diagnostics below run before the handle is checked.
h_exec = create_graph_exec_handle(h_graph, &params)
status = get_last_error()
if params.result_out == driver.CUgraphInstantiateResult.CUDA_GRAPH_INSTANTIATE_ERROR:
# HANDLE_RETURN raises CUDAError with the CUresult name and message (e.g. CUDA_ERROR_INVALID_VALUE)
# when status is not CUDA_SUCCESS.
HANDLE_RETURN(status)
raise RuntimeError(
"Instantiation failed for an unexpected reason which is described in the return value of the function."
)
Expand All @@ -230,7 +235,7 @@ def _instantiate_graph(source, options: GraphCompleteOptions | None = None) -> G
raise RuntimeError(f"Graph instantiation failed with unexpected error code: {params.result_out}")

if as_cu(h_exec) == NULL:
HANDLE_RETURN(get_last_error())
HANDLE_RETURN(status)
return Graph._init(h_exec)


Expand Down
Loading