def METHOD_NAME(graph_json_str, libmod, device):
    """Create a runtime executor module given a graph and module.
    Parameters
    ----------
    graph_json_str : str
        The graph to be deployed in json format output by json graph.
        The graph can contain operator(tvm_op) that points to the name
        of PackedFunc in the libmod.
    libmod : tvm.runtime.Module
        The module of the corresponding function
    device : Device
        The device to deploy the module, only supports CUDA GPU
    Returns
    -------
    graph_module : GraphModuleCudaGraph
        CUDA graph executor module that can be used to execute the graph.
    Note
    ----
    See also :py:class:`tvm.contrib.cuda_graph.cuda_graph_executor.GraphModuleCudaGraph`
    for examples to directly construct a GraphModuleCudaGraph from an exported
    relay compiled library.
    """
    assert isinstance(graph_json_str, string_types)
    try:
        dev, num_rpc_dev, device_type_id = graph_executor.get_device(libmod, device)
        if num_rpc_dev == len(dev):
            fcreate = dev[0]._rpc_sess.get_function("tvm.graph_executor_cuda_graph.create")
        else:
            fcreate = tvm._ffi.get_global_func("tvm.graph_executor_cuda_graph.create")
    except ValueError:
        raise ValueError(
            "To enable CUDA graph support (experimental), please set "
            "'(USE_GRAPH_EXECUTOR_CUGRAPH ON)' in config.cmake and rebuild TVM"
        )
    return GraphModuleCudaGraph(fcreate(graph_json_str, libmod, *device_type_id))