并行化信号处理解决方案
2021-01-20
鉴于目前信号处理运算任务日益加重,系统规模越来越大,性能越来越高,算法越来越复杂,另外科研周期大大缩短,型号平台升级换代较快。而软件开发人员基本还在使用传统的第三代C语言类的开发工具,自动化程度低,人工的工作量大,另外平台升级换代需要向新平台移植时程序的改动量很大,进而导致移植性较差。同时对信号处理系统的体积、重量都有很高的要求,如何提升程序性能以及最大限度利用有限的硬件资源,对程序计算性能要求也特别高,目前软件人员大量时间花费在了程序性能优化上。在这种大背景下,亟需引入国际军工领域的先进的信号处理软件开发工具GEDAE。
GEDAE是一款面对多核和多处理器开发的全新的并行编译及编程工具。具备独立的编码、仿真、编译、调试、分析显示功能,可以方便直观地对系统的处理器和存储资源进行分配,具有良好的硬件兼容性,可以支持飞思卡尔 POWER PC、Intel处理器、IBM CELL BE处理器、TI DSP、ARM、英伟达GPU等众多处理器\CPU\GPU。一次编程,多次使用,移植能力强,大大提高硬件资源利用效率,降低软件开发人员工作难度。其独创的第四代编程语言Idea及编译器,大大提高了软件开发自动化和并行化,提高了应用程序的执行效率和移植能力,支持的嵌入式操作系统主要包括VxWorks, Linux, Sys/BIOS等。
用独创的Idea并行语言开发相应的应用程序模块,然后建立由并行语言模块组成的可视化的工程流图(也即可视化软件模型),利用实施策略设置工具对并行编译器进行设置,编译后得到并行的C代码。然后把生成的C代码利用芯片厂商提供的工具链生成可执行文件。
可视化建模
GEDAE是一种模型驱动的开发工具,支持可视化建模环境设计,通过提供具备并行描述能力的图形化建模语言Idea及dataflow,为系统应用提供可视化建模视图环境;支持可视化模型的互联规则检查、拓扑结构分析等功能。
用户可以使用Idea语言或者dataflow语言进行可视化建模设计,所建的模型可以称之为SWM。SWM是整个模型驱动开发过程的核心资产。
GEDAE会对可视化模型进行语法检查、互联规则检查和拓补结构分析,如果模型中有错误会进行报错。
多核多处理器的模型分割与映射
GEDAE开发环境支持开发者依据目标处理平台硬件组成及拓扑架构,对可视化软件模型的数据和任务进行细粒度分解分组;通过partition 和map partition分割映射工具,将细粒度的数据和任务分配到目标处理平台各硬件模块、各处理器核上。
可视化模型编译与代码自动生成
GEDAE的GEDAE Compiler并行编译器可以完成对系统可视化模型的编译,生成面向目标处理平台的C代码,生成的全部C代码可以被目标处理平台的工具链正确编译、链接、调试和正确执行。GEDAE的编译器通过了美军软件成熟度等级TRL9标准,为成熟产品。
运行时状态跟踪与性能分析
GEDAE的Trace跟踪功能可以完成可执行代码运行时的数据输入输出、处理等状态的跟踪,以及对各功能函数的运算性能分析。
运行时系统调试分析
GEDAE的Probe探针功能可以完成可执行代码运行时的各功能模块间的运算结果获取与显示。
GEDAE并行编译器
GEDAE编译器把Idea和dataflow语言写成的可视化模型,结合用户指定的设置(主要包括分割和映射),转换成具备并行计算能力的应用程序。
l 高效的上下文切换时间
l 消除死锁和竞争条件
l 编译器成熟度达到 TRL 9
l 在编译时间优化计划内存使用
ü 避免不必要的动态分配
ü 预先计划的内存管理,最大限度地减少数据和代码的占用空间
l 优化使用IPC ,以最大限度地提高并发
ü 自动多缓冲效率的DMA
ü 并发控制的自动最佳位置
ü 自动实施数据和代码缓存管理
ü 优化代码和数据局部性
l 高速缓存和内存层次结构的优化利用
ü 优化代码和数据局部性
支持的平台及架构
支持主流厂商的多核CPU、POWER PC、DSP、GPU等。已经支持的厂商有英特尔、IBM、飞思卡尔、德州仪器、ADI、英伟达等众多知名厂商。支持TI 6678 DSP,支持VPX和Cluster架构,支持TCP/IP、Rapid IO、PCI-E等接口。