pdf文档 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 页请下载阅读 -
文档评分
请文明评论,理性发言.