OpenCL ARM Mali GPU硬件架构

我们以ARM Mali T764 GPU 为例,简单介绍ARM Mali GPU的硬件架构、存储器层次,以及如何映射到OpenCL编程模型上执行。
对于读者来说,理解硬件架构和操作如何映射到OpenCL编程模型上能够帮助他们写出性能优秀的代码,同时也便于理解为什么一些优化方法在某种情况下有效果,在另外一种情况下没有效果。比如,在AMD GCN架构上使用局部存储器的矩阵乘法效果通常比没有使用局部存储器的矩阵乘法好,但是相同的代码移植到ARM Mali上效果则不好。

硬件架构

完整规格的ARM Mali T764具有16个渲染核心,每4个渲染核心分成一组,每个核心具有4个向量计算单元、一个标量单元和一个纹理单元。每个向量计算单元是一个128位的乘加单元,故在主频为0.6GHz的前提下,其计算单精度浮点峰值为16×(4×4+1)×2×0.6=326.4 GFLOPS。从架构上来看,要发挥所有的计算能力,代码中必须要有向量运算和标量运算,并且这两类运算可同时进行。
ARM通过增加/减少渲染核的数量,同时控制渲染核内的向量计算单元数量来满足不同应用市场的需求。
渲染核中的向量单元的架构更类似于VLIW(关于VLIW的具体情况,请参考刘文志(花名风辰)所著的《并行算法设计与性能优化[插图]),VLIW可以在一个向量中同时执行不同的指令,但是考虑编译器生成VLIW指令的效率,笔者建议读者把VLIW当成SIMD使用。
Mali T764之前的T400是分离架构(渲染的各个步骤由不同的硬件处理),而T764是统一渲染架构(渲染的各个步骤由同一硬件处理),这提高了硬件使用效率,降低了成本,但是增加了功耗。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程