论文部分内容阅读
多核体系结构是计算机发展历史上的重大转变,在传统的通过频率提升来提高处理器性能的方法遇到巨大困难的情况下,人们开始转向在相对低的主频下,通过提高半导体的密度,集成更多处理单元来提供计算能力的持续提升,以满足计算机视觉等新兴的万亿级别RMS (Tera-Scaled Recognition, Mining, Synthesis)应用的计算需求。近年来,多核和众核体系的快速发展和广泛应用为此类应用的实时实现提供了硬件基础和可能。不过,由于必须通过并行的方式才能获得对硬件计算能力的有效利用,如何有效地发掘可用的程序并行性到可用的硬件并行性的最佳映射,成为了多核和众核体系平台下计算机视觉应用开发面临的一个关键挑战。本文以车辆辅助驾驶系统中车辆识别算法这一核心的计算机视觉应用的并行化研究为背景,从应用模型和负载分析入手,研究了此类应用的计算特性,识别出此类应用并行优化中需要满足的三个关键能力需求;总结了六种关键的数据并行模式;并且提出:在领域知识的指导下,结合先验的并行策略,基于实时负载特性、硬件特性的动、静态结合的并行优化是针对上面问题的一个比较理想的解决思路。本文具体工作内容如下:首先,针对并行性的抽象和表达技术,本文在TStreams模型的基础上,通过引入组成(Composition)关系、等价(Equivalence)关系和特性权重(Character Weight)的概念,提出了一个改进的TStreams并行计算模型。可以以一致的形式对包括数据并行性、任务并行性、流水线并行性等在内的各种算法并行性的抽象表达提供方便的支持;同时,该模型还将作为算法和硬件交互的公共“交流语言”,在后续并行优化过程中,有效地支持多层次、多粒度的并行性发掘。其次,针对并行性发掘技术,本文引入了面向计算机视觉应用的领域编程语言(DSL)用以描述算法特性以及优化过程中可适用的优化规则。优化规则是领域知识的抽象,针对特定函数给出的优化规则描述了该函数各种可能的变形实现。本文引入了编译驱动的自动优化工具,可根据优化规则描述,构造算法并行优化的解空间,并以半自动化的方式查找最适合的并行优化候选解空间。由此,可将并行优化工作中复杂、繁琐的优化“决策”工作转化为目标算法和多核、众核平台的可用并行性和算法领域知识规则的“描述”工作,极大地降低了并行优化的难度,提高了并行优化的效率。第三,针对动态任务调度技术,本文引入了面向特性权重的运行时环境的概念。运行时环境根据实时输入数据,利用目标程序的扩展TStreams模型表示中的组成关系和特性权重信息,从自动优化工具生成的候选解空间中动态选择合适的优化算法,并进行底层优化,以获得局域性好、并行度高、负载均衡的动态调度。最后,本文将上述研究成果综合在一起,以工具和运行时库(Runtime Library)的形式提供了一个动静态结合的,针对计算机视觉应用的半自动并行优化框架原型(FAPOF, Feature Awared Parallel Optimization Framework),并应用于面向辅助驾驶系统(DAS)的车辆识别算法的并行优化过程中,取得了良好的并行优化效果。