Gdarts: A GPU-Based Runtime System for Dataflow Task Programming on Dependency Applications

2019 
Massively multithreaded GPUs achieve considerable performance improvements by thousands of processing cores running simultaneously for compute-intensive applications. However, present parallel programming model suffers significant performance degradation on dependency scenarios, where tasks are assigned into multiple thread blocks and the parallelism is limited by inter-block dependencies. Massively multithreaded GPUs achieve considerable performance improvements by thousands of processing cores running simultaneously for compute-intensive applications. However, present parallel programming model suffers significant performance degradation on dependency scenarios, where tasks are assigned into multiple thread blocks and the parallelism is limited by inter-block dependencies. This paper proposes Gdarts, a dataflow runtime system for GPU workloads with data dependencies. Employing asynchronous task programming, Gdarts builds Stream Multiprocessors (SM) as standalone workers towards fine-granular and independent kernels. Meanwhile, it designs a two-level task scheduler to adapt GPU's hierarchical memory environment. Such a scheme, leveraging the hybrid memory resources, fulfills requirements for workload balancing across SMs, as well as flexible priority scheduling. Based on the improved controllability and flexible support fosr kernel scheduling, Gdarts complements the existing GPU with insights of dataflow diagram by two heuristic schedule approaches, node-degree and data-driven priority.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    20
    References
    0
    Citations
    NaN
    KQI
    []