3、抽象流机器:异构多处理器上流式程序的编译时性能建模

抽象流机器:异构多处理器上流式程序的编译时性能建模

1. 引言

如今,多核系统和分布式内存的应用日益广泛,许多人意识到需要改变软件开发方式以充分利用这些资源。像数字视频、软件无线电、信号处理和3D图形等应用,都可以用块图表示,独立的块之间仅通过规则的数据流进行通信和同步。这些应用具有高度的任务和数据并行性,但使用C或类似的顺序编程语言编写时,这些并行性会被隐藏,程序员需要手动进行任务融合、分裂和分块转换等高级优化。

流编程为这些规则应用提供了一种可移植的方式来利用多处理器机器。近期关于流编程语言(如StreamIt和同步数据流SDF)的研究表明,编译器有可能达到手动调优的顺序或多线程代码的性能。

本文介绍的工作是ACOTES项目的一部分,该项目正在为嵌入式系统开发一个完整的开源流编译器。这个编译器将自动划分流程序以利用任务级并行性,确定通信缓冲区的大小,并通过分块聚合通信。本文描述的抽象流机器(ASM)代表了该编译器的目标系统。

下面是ACOTES迭代流编译器的工作流程:

graph LR
    A[source + SPM pragmas] --> B[Task fusion]
    B --> C[Allocation]
    C --> D[Mercurium]
    D --> E[source + acolib]
    E --> F[Blocking]
    F --> G[gcc]
    G --> H[ICI plugin]
    H --> I[executable]
    I --> J
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值