Directed graphs whose nodes are CUDA operations (kernel launches, memory copies etc.) and edges are dependencies. They are used to schedule multiple inter-dependent operations for execution on GPUs with a single API call.