Taro: Task graph-based Asynchronous Programming Using C++ Coroutine
8.82 MB
84 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
英语 | .pdf | 3 |
摘要 | ||
文档介绍了Taro,一种基于C++协程的异步编程模型,旨在简化异步任务的编写和管理。Taro采用任务图(Task Graph)进行任务调度,并提供了一种协程感知的调度算法。该系统在内存使用上与RTLflow相当,并在微基准和实际应用中表现出色。文档还包括对Taro编程模型的详细说明,涵盖同步和异步机制,以及其在异步IO和计算模式中的应用前景。未来的工作计划包括扩展支持不同的计算单元和异步IO。 | ||
AI总结 | ||
《Taro: Task graph-based Asynchronous Programming Using C++ Coroutine》文档总结:
本文介绍了Taro,一种基于任务图的异步编程框架,利用C++协程实现高效的异步任务调度。以下是核心内容的总结:
1. **动机与目标**:
- Taro旨在简化异步编程,提升任务调度效率,目标是实现简洁性、可扩展性和高效性。
- 通过抽象C++协程细节,结合任务图编程(TGPS),提供更高层次的编程模型。
2. **Taro编程模型**:
- 支持同步和异步机制,用户可通过任务图定义函数调用及其依赖关系。
- 示例显示,Taro通过C++协程实现多任务处理,支持回调、轮询等异步方式。
3. **调度算法**:
- Taro的调度算法基于C++20原子通知(atomic notify),支持协程 aware 调度。
- 在异步任务执行中,Taro通过 executor::async 包装协程.resume(),实现高效任务调度。
4. **性能评估**:
- 硬件平台:8核心CPU(3.2 GHz)和NVIDIA 3080 Ti GPU。
- 基线对比:Taskflow、Taskflowcoro、Boost Fiber。
- 结果:Taro在内存使用上与RTLflow相当,在某些场景下实现了1.6倍的加速。
5. **应用场景**:
- 大规模电路仿真工作负载:验证了Taro在实际应用中的效果。
- RTLflow(state-of-the-art电路仿真工具)作为比较对象。
6. **未来工作**:
- 完善文档。
- 支持更多加速器和计算模式,如管道式对称协程传输。
- 提升异步IO支持。
总结:Taro通过结合C++协程和任务图编程,解决了异步任务调度的效率问题,并在性能上表现出色,具有广阔的应用前景。 |
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余
72 页请下载阅读 -
文档评分