实战技巧,Mali GPU编程特性及二维浮点矩阵运算并行优化详解

2015-08-07 12:53:09 来源:互联网
标签:
OpenCL   SoC   Linux

 

基于Mali-T604嵌入式GPU的二维浮点矩阵运算并行优化
ARM Cortex-A15系列处理器是当前最新的嵌入式ARM SoC,该系列处理器首次集成了Mali-T600系列的移动端GPU,该系列GPU支持OpenGL以及OpenCL等计算框架,可以有效加速通用计算,而目前对其应用方法和实际优化效果的研究很少。本文基于以三星的Exynos5250处理器为核心的Arndale Board嵌入式开发平台,对集成于处理器上的Mali-T604嵌入式GPU的GPGPU(General-Purpose computation on GPU)技术进行研究并对不同运算规模的浮点矩阵乘法进行并行加速优化,提供实际测试结果。

GPGPU技术早年主要在超级计算机平台进行高性能计算,而近年该技术逐渐被引入嵌入式领域。但在过去的移动GPU平台上没有专门针对通用计算的软件框架和编程接口,软件设计者难以对于数据的同步和计算的并行进行控制,所以移动GPU在通用计算领域一直难以应用。本文基于Exynos5250 SoC平台详述Mali GPU的硬件特性和将其应用于通用计算的编程的方法,最后将二维浮点矩阵乘法并行化作为优化实例,验证Mali GPU的并行能力,为计划使用嵌入式GPU的GPGPU技术进行优化工作的研究人员和应用开发者提供技术参考和借鉴。

1.Mali T604 GPU的硬件结构和编程特性
Mali是由ARM研发设计的移动显示芯片组(GPUs)系列,不仅能够在移动端提供强大的图像渲染能力,同时在近期对通用计算进行了良好的软硬件支支持。

1.1 Mali T604 GPU的组成结构
Mali-T604是Mali系列中首款使用统一渲染架构Midgard的移动GPU,Mali-T604 GPU包含4个着色器核心,采用AMBA 4 ACE-LITE总线接口,该总线以Cache Coherent Interconnect技术为特色,在多个处理器之间提供完全Cache一致性,通过ARM的一致性和互连技术,计算任务在异构系统中进行共享处理时,可以轻松跨越CPU、GPU和其他可用计算资源,更高效地访问数据。图1展示了Mali-T604 GPU的基本框架。如图2所示,Cortex-A15 CPU核心以及Mali GPU核心物理上共享了片外的RAM存储器并保持了L2Cache的一致性。



图1  Mali-T604基本硬件框图

图2 Exynos5250处理器框图


Mali-T604 GPU在硬件层面优化了对任务管理和事件依赖的处理,并将这部分功能完全集成在其硬件的任务管理单元之中,可将计算任务从CPU卸载到GPU,并在活动的着色器核心之间实现无缝负载平衡。

1.2 Mali GPU的并行化线程结构特征
Mali GPU进行通用计算的技术核心是以多核多线程的思想将密集的计算任务进行拆解,将大量的计算线程分配于众多计算核心中,GPU可以同时处理成百上千的线程,大量晶体管用于ALU.GPU适合做高密度数据的并行运算,只有在运算的并行粒度足够大的时候才能发挥出强大的并行运算能力。图3展示了CPU和Mali GPU之间工作调配的过程。



图3 Cortex-A15 CPU和Mali GPU之间的工作调配


Mali GPU中每个计算线程会占用着色器核心的一部分资源(存储器和ALU等),每个线程占用资源的多少影响了同时并行处理的活动线程的数量。对Mali GPU,每一个线程都有自己的程序计数器,这意味着Mali GPU和桌面GPU平台不同,程序分支的发散不是一个影响效率的重要的问题。每个Mali-T604 GPU的着色器核心最多可以同时容纳256个线程,Mali GPU在进行通用计算时需要大量的线程进行切换才能保证得到计算效率上的收益,对于Mali-T604而言,这个最少的总工作项数量是4096.如果分配于单个着色器核心上的线程数目不足128,很可能带来并行效率的下降,这时需要拆分工作为不同的步骤,简化每个步骤的线程复杂度,让单个着色器核心并行容纳的线程数量足够多以保证并行度。

 

 
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

继续阅读
红旗系统的风光一时,鸿蒙诞生真的能打好反击战?
红旗系统的风光一时,鸿蒙诞生真的能打好反击战?

1999年,时任科技部部长徐冠华就曾说过,“中国信息产业缺芯少魂”。其中的“芯”指的是芯片,而“魂”则是指操作系统。

神龙服务器的灵魂是什么?平头哥已开始研发

据消息人士透露,阿里平头哥正在研发一款专用SoC芯片,将用于新一代阿里云神龙服务器的核心组件MOC卡,以推动下一代云计算技术的升级。

作为一款手机可用的 OS,鸿蒙与安卓究竟有何区别?
作为一款手机可用的 OS,鸿蒙与安卓究竟有何区别?

在上周,华为正式发布了备受期待的鸿蒙操作系统。此前外界曾猜测鸿蒙OS将会成为Android的替代,供华为和荣耀的智能手机所使用。但从官方公布的诸多信息来看,鸿蒙OS的使命可远不止替代Android那么简单。

7nm、5nm、HPC封装等,台积电最新先进制程技术全解

2019年VLSI研讨会在日本结束后,台积电举行了小型新闻发布会,并在SEMICON West期间发表了有关封装的演讲,本文将对上述事件中台积电提到的技术进行总结。

手机芯片新变局

作为智能手机崛起的幕后英雄,手机SoC芯片在过去十几年里获得了跨越式的发展。

更多资讯
Qualcomm董事会任命Mark McLaughlin担任董事长

Qualcomm Incorporated(NASDAQ: QCOM)今日宣布任命Mark McLaughlin接替Jeff Henderson担任董事会董事长,该任命于2019年8月13日生效。

科技成就品质生活 戴森举办“智享-净鉴”杭州分享会

今日,戴森在杭州举行地板清洁类新品媒体分享会,旨在为当地家庭提供完整的家居清洁方案。Dyson V11 Absolute智能无绳吸尘器、Dyson V7 Mattress手持除螨吸尘器及Dyson 360 Heurist智能吸尘机器人皆为现代繁忙生活背景下的各类清洁难题设计,协助用户吸除日常生活中的常见微尘,有害颗粒及过敏原[1],以科技

FPGA是否可以脱离CPU独立部署?

作为一种硬件可重构的体系结构,FPGA经常被用作专用芯片(ASIC)的小批量替代品,随着全球数据中心的大规模部署,以及人工智能应用的落地,FPGA凭借强大的计算能力和高度的灵活性有了更多的用武之地。

FPGA 设计经验分享

从大学时代第一次接触FPGA 至今已有10多年的时间,至今记得当初第一次在EDA实验平台上完成数字秒表、抢答器、密码锁等实验时那个兴奋劲。

如何寻找并使用一个适用于FPGA的机器学习平台?
如何寻找并使用一个适用于FPGA的机器学习平台?

随着摄像头和其他设备产生的数据在快速增长,促使人们运用机器学习从汽车、安防和其他应用产生的影像中提取更多有用的信息。专用器件有望在嵌入式视觉应用中实现高性能机器学习 (ML) 推理。但是此类器件大都处于早期开发阶段,因为设计人员正在努力寻找最有效的算法,甚至人工智能 (AI) 研究人员也在迅速推演新方法。