关闭
关闭
首页 > 嵌入式硬件 > 嵌入式处理器

本文引用地址: http://embed.21ic.com/hardware/processor/201806/60566.html

目前,嵌入式多核处理器已经在嵌入式设备领域得到广泛运用,但嵌人式系统软件开发技术还停留在传统单核模式,并没有充分发挥多核处理器的性能。程序并行化优化目前在PC平台上有一定运用,但在嵌入式平台上还很少,另外,嵌入式多核处理器与PC平台多核处理器有很大不同,因此不能直接将PC平台的并行化优化方法应用到嵌人式平台。本文分别从任务并行和缓存优化两方面进行并行化优化的研究,探索在嵌人式多核处理器上对程序进行并行化优化的方法。

1嵌入式多核处理器结构

嵌人式多核处理器的结构包括同构(Symmetric)和异构(Asymmetric)两种。同构是指内部核的结构是相同的,这种结构目前广泛应用在PC多核处理器;而异构是指内部核的结构是不同的,这种结构常常在嵌入式领域使用,常见的是通用嵌入式处理器+DSP核。本文探究的嵌入式多核处理器采用同构结构,实现同一段代码在不同处理器上的并行执行。



图1 ARM SMP处理器结构


在目前嵌入式领域中,使用最为广泛的为ARM处理器,因此以ARM双核处理器OMAP4430作为研究对象。ARM对称多处理(Symmetric Multi-Processing,SMP)结构如图1所示,根据程序的局部性原理,每一个处理器都具有私有的内存(Local Memory),常见的是一级缓存(L1Cache)。然而,多个处理器之间又涉及到相互通信问题,因此在常见的ARM处理器中使用二级缓存(L2 Cache)来解决这一问题。基于对称多处理器结构,所有的处理器(通常为2的倍数)在硬件结构上都是相同的,在使用系统资源上也是平等的。更重要的是,由于所有的处理器都有权利去访问相同的内存空间,在共享内存区域中,任何一个进程或者线程都可以运行在任意一个处理器之上,这样就使得程序的并行化成为可能。2在嵌入式多核平台上进行并行化优化,需要考虑以下问题:

①并行化程序的性能取决于程序中串行化部分,程序性能不会随着并行线程数目的提升而不断提升;

嵌入式多核处理器相对于PC处理器而言,其总线速度较慢,并且缓存(Cache)更小,会造成大量数据在内存(Memory)和缓存(Cache)问不断拷贝,因此在进行并行化优化的过程中,应考虑缓存友好性(Cache friendly);

③程序并行化执行线程数目应当小于或等于物理处理器的数目,线程过多会造成线程间抢占处理器资源,致使并行化性能下降。

2 OpenMP并行化优化

2.1 0penMP工作原理简介

OpenMP是一个基于共享内存模式的跨平台多线程并行的编程接口。主线程生成一系列的子线程,并将任务映射到子线程进行执行,这些子线程并行执行,由运行时环境将线程分配给不同的物理处理器。默认情况下,各个线程独立执行并行区域的代码。可以使用work-sharingconstructs来划分任务,使每个线程执行其分配部分的代码。通过这种方式,使用OpenMP可以实现任务并行和数据并行。



图2任务并行模型


任务并行模式创建一系列独立的线程,每一个线程运行一个任务,线程之间相互独立,如图2所示。OpenMP使用编译原语session directive和task directive来实现任务分配,每个线程可以独立运行不同的代码区域,同时支持任务的嵌套和递归。一旦创建任务,该任务就可能会在线程池(其大小等于物理线程数目)中空闲的线程上执行。

数据并行也就是数据级并行,对任务中处理的数据进行分块并行执行,如图3所示。C语言中的for循环最适合使用数据并行。



图3数据并行模型

2.2快速排序算法原理


快速排序算法是一种递归分治算法,算法中最为关键的就是确定哨兵元素(pivot data)。数据序列中小于哨兵的数据将会放在哨兵元素的左侧,序列中大于哨兵的数据将会被放在哨兵元素的右侧。当完成数据扫描后,哨兵元素分成的左右两个部分就会调用快速排序算法递归进行。

快速排序算法中涉及算法的递归调用,会产生大量任务,并且这些任务相互独立,非常适合OpenMP的任务并行模式;另外,就一次快速排序搜索算法而言,哨兵元素对于左右子区间数据容量大小具有决定性作用,考虑到嵌入式平台的缓存(Cache)空间较小,需要对哨兵元素筛选算法进行优化,尽量使得划分出来的左右子区间更均衡,满足负载均衡的要求。

2.3任务并行化优化

通过对快速排序算法的分析,快速排序是一个递归调用算法,算法的执行过程中会产生大量重复函数调用,并且函数的执行相互独立。对于快速排序的一次扫描运算而言,算法首先确定哨兵元素(pivot),并对数据序列进行一次调整,然后对哨兵元素的左右区间再次进行递归调用算法。

如下所示,对任务并行化优化针对每次扫描调整后的左右子区间,将每个子区间的运算抽象为一个任务,并通过OpenMP中的任务并行化原语#pragma omp task实现任务的并行化执行,从而实现了快速排序的任务并行化优化。

任务空间中的数据大小取决于哨兵元素,因此,算法选取的划分算法(Partition Algorithm)应尽量将数据序列的划分均衡化,本文使用简单划分算法和三元中值法(Median-of-Three Method)进行测试。

2.4缓存优化

缓存优化(Cache friendly)的目标是减少数据在内存和缓存之间的拷贝。对于220个整型数据而言,数据大小为4 MB,本文的测试平台()MAP4430的二级缓存为1 MB,需要将数据划分为4个部分。

如下所示,算法将4部分数据分为4个快速排序任务,4部分任务并行执行,完成后每部分数据序列排序完成,需要将4部分数据进行合并形成完成数据序列,因此在并行任务结束后,需要对数据进行归并排序。

3并行化性能分析


3.1实验环境介绍

本文采用德州仪器(Texas Instruments)的OMAP4430嵌入式开发平台。OMAP443O为嵌入式多核处理器,拥有对称多处理双核ARM处理器(Dual-core ARM Cortex-A、一级缓存32 KB、二级缓存1 MB,嵌入式操作系统采用Ubuntul2.O4内核,编译器为arm-linux-gnueabihf-gcc,使用GNU gprof获取算法执行时间。

3.2性能测试

如下式所示,采用计算加速比的方式来分析并行优化的性能,加速比数值越大表示算法的并行程度越高,最低为1.性能测试采用4个算法版本,包括串行版本、并行2线程、并行4线程和缓存优化版,从不同角度来分析性能。

如图4所示,从折线图可以看出,3种并行化优化算法相对于串行版本,算法的并行性能都有较大提升,如表1所列,其并行加速比分别为1.30、1.29和1.21.对任务并行优化方案而言,分别使用2线程和4线程版本进行测试,从加速比的分析结果看来,2线程版本较4线程版本略好。理论上并行线程的数目越多性能越好,但本文采用OMAP443O只有两个对称多处理核心,即使算法拥有4个并行线程,但实际执行的线程只有2个,同时4个线程在获取2个物理处理器时存在竞争关系,因而造成性能较之2线程版本有所下降。



图4算法执行时间


评价并行算法优劣还需考虑算法的负载均衡性,如表1、表2所列,缓存优化方案标准差远远小于任务并行化方案。究其原因,对于任务并行化方案而言,不同的测试数据以及划分算法(partition)对区间的划分有重要影响,从而造成任务执行时间变化范围很大;对于缓存优化方案而言,其实质是数据并行,其每一个任务都是根据缓存大小进行划分,因此每一个任务处理的数据规模基本一致,每一个任务执行的时间更确定,但由于并行任务执行完成后,需要对数据进行归并,造成一定的性能下降。



结语

本文通过对嵌入式多核处理器硬件结构的分析,从对称多处理角度对串行快速排序算法进行并行化优化,取得了很好的效果。

以ARM双核处理器(OMAP4430)作为测试平台,从任务并行和缓存优化实现并行优化,从性能测试的结果看,任务并行具有良好的加速比,但负载均衡性差,并行线程数目不应超过物理处理器核的数目,过多的并行线程竞争处理器资源,造成性能下降。缓存优化具有良好的负载均衡性,但需要后续进行归并操作,造成性能有所下降。

总之,在嵌入式多核处理器上进行并行化优化,一方面要充分发掘嵌人式多核处理器的并行性能,提高程序的并行性;另一方面也要考虑程序算法的负载均衡性,确保在不同应用环境中程序性能一致。

换一批

延伸阅读

[行业资讯] 软银出售ARM在华51%股份 是缺钱还是降低政策风险?

软银出售ARM在华51%股份 是缺钱还是降低政策风险?

据报道,6月5日,日本软银集团(SBG)宣布,旗下半导体设计公司ARM控股将出售中国子公司一半以上的股份,将持股比例降低至50%以下。有观点认为,此举的目的是降低中国当局政策变化所带来的风险。 ......

关键字:ARM中国 半导体 芯片

[行业资讯] 齐聚深圳、嵌入式专家研讨人工智能时代发展机遇

齐聚深圳、嵌入式专家研讨人工智能时代发展机遇

近日,嵌入式系统联谊会第23次主题讨论会就这些问题,邀请业内知名专家和学者做了深入的探讨!本次会议由嵌入式系统联谊会、深圳北航新兴产业技术研究院主办,深圳北航物联网研究院、物联网咖啡承办,北京航空航天大学出版社、泰智会共同协办。主题为”人工......

关键字:嵌入式 单片机 人工智能 嵌入式系统

[行业资讯] ARM改进CPU和GPU:Windows运行更快 性能大幅提升

ARM改进CPU和GPU:Windows运行更快 性能大幅提升

芯片开发商ARM宣布对CPU与GPU的一系列改进,当芯片在Windows笔记本上运行时,性能大幅提升。 ......

关键字:ARM CPU GPU

[行业资讯] 中国是ARM进军服务器市场的希望

中国是ARM进军服务器市场的希望

全球最大的手机芯片制造商高通准备放弃开发数据中心服务器芯片,这被视为ARM阵营进军服务器芯片市场的又一次溃败,那么ARM进军服务器市场还有希望么?笔者认为还是有的,那就是中国。 ......

关键字:服务器 芯片 ARM

[行业资讯] 进军中国的ARM,对国产芯片是怎样的态度?

进军中国的ARM,对国产芯片是怎样的态度?

近段时间,全球半导体“隐形巨头”ARM在中国布局的步伐密集起来。 5月初,媒体曝出ARM在中国成立的合资企业安谋科技(中国)有限公司(简称安谋中国)“正式开始运营”。三周后,安谋中国与四川天府新区成都管委会签约,ARM集成电路设计服务......

关键字:半导体 国产芯片 ARM

[新鲜事] 不可思议的发现:华裔科学家发现改变世界基础物理“天使粒子”

不可思议的发现:华裔科学家发现改变世界基础物理“天使粒子”

美国斯坦福大学物理学教授张首晟及其团队在《科学》杂志上发表了一项重大发现:在历经80年的探索之后,他们终于发现了“马约拉纳费米子”的存在。......

关键字:华裔科学家 基础物理 天使粒子

[趣科技] 太神奇!只需在脸上画几条线 就能防止被人脸识别

太神奇!只需在脸上画几条线 就能防止被人脸识别

Grigory Bakunov是俄罗斯搜索巨头Yandex公司的一位技术高管,他因不满人们滥用人脸识别,发明了一套简单高效的反人脸识别技术。......

关键字:Yandex 人脸识别 反人脸识别算法

[真心话] 作为工程师的你:难道想一辈子画图,调板子?

作为工程师的你:难道想一辈子画图,调板子?

诸位,咱当工程师也是十余年了,不算有出息,环顾四周,也没有看见几个有出息的!回顾工程师生涯,感慨万千,愿意讲几句掏心窝子的话,也算给咱们师弟师妹们提个醒,希望他们比咱们强!......

关键字:电子工程师 电路图 板子
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi®和蓝牙®combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14