code: public static int cuGraphInstantiate(CUgraphExec phGraphExec, CUgraph hGraph, CUgraphNode phErrorNode, byte logBuffer[], long bufferSize) 
      {
          return checkResult(cuGraphInstantiateNative(phGraphExec, hGraph, phErrorNode, logBuffer, bufferSize));
      }
docs: Creates an executable graph from a graph.<br>
  <br>
  Instantiates \p hGraph as an executable graph. The graph is validated for any
  structural constraints or intra-node constraints which were not previously
  validated. If instantiation is successful, a handle to the instantiated graph
  is returned in \p graphExec.<br>
  <br>
  If there are any errors, diagnostic information may be returned in \p errorNode and
  \p logBuffer. This is the primary way to inspect instantiation errors. The output
  will be null terminated unless the diagnostics overflow
  the buffer. In this case, they will be truncated, and the last byte can be
  inspected to determine if truncation occurred.<br>
  
  @param phGraphExec - Returns instantiated graph
  @param hGraph      - Graph to instantiate
  @param phErrorNode - In case of an instantiation error, this may be modified to
  indicate a node contributing to the error
  @param logBuffer   - A character buffer to store diagnostic messages
  @param bufferSize  - Size of the log buffer in bytes
  
  @return
  CUDA_SUCCESS,
  CUDA_ERROR_DEINITIALIZED,
  CUDA_ERROR_NOT_INITIALIZED,
  CUDA_ERROR_INVALID_VALUE
  
  @see
  JCudaDriver#cuGraphCreate
  JCudaDriver#cuGraphLaunch
  JCudaDriver#cuGraphExecDestroy