Taro: Task Graph-Based Asynchronous Programming Using C++ Coroutine
Talkat CppCon 2023 · on Tuesday, 2023-10-03· at 16:45· Cottonwood 2/3, 6700 North Gaylord Rockies Boulevard·
summary
Taro claims to let tasks suspend and resume so CPU threads avoid blocking on GPU work by using C++ coroutines and managing CUDA streams; it implements a work-stealing scheduler that prioritizes resuming suspended coroutines on the same worker to cut cache misses and migrations. Benchmarks show typical ~2× speedup and up to 2×–18× speedup in pathological microbenchmarks, with modest extra memory for coroutine state and an open‑source repo on GitHub.
AI-written summary · about
chapters (12)
- 0:00Introduction
- 1:07Task graph systems overview
- 6:35C++ coroutines for multitasking
- 11:33Challenges with coroutines
- 14:29Sync vs async in Taro
- 16:17Taro’s programming model
- 25:32Taro’s design goals
- 32:43Taro’s scheduling algorithm
- 40:51Microbenchmark evaluation
- 46:40Circuit simulation workload
- 49:08Conclusion and future work
- 50:17Q&A
related talks
01h 05mWhy use coroutines for asynchronous applications
57m[filtered] Asynchronous C++ Programming
53mC++ Coroutines and Structured Concurrency in Practice
05mFast Parallel Programming using Modern C++
45mAsynchrony and Coroutines
58mAn Introduction to C++ Coroutines
01h 04mThe C++20 Synchronization Library
01h 06mAsynchronous Computation in C++
