mali GPU 官网指南

news/2024/12/28 11:08:18/

1、简介

         GPU(图形处理单元),是一种专门在个人电脑、工作站、游戏机和移动设备上图形运算工作的微处理器。以前GPU主要用于图形处理,现在GPU的通用计算技术也得到了飞速发展,事实证明在浮点运算、并行计算等部分计算方面,GPU可以提供数十倍乃至上百倍于CPU的性能。通用计算方面的标准有:OpenCl、CUDA、ATISTREAM。

其中,OpenCL(全称Open Computing Language,开放运算语言)是第一个面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境,便于软件开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效轻便的代码,而且广泛适用于多核心处理器(CPU)、图形处理器(GPU)Cell类型架构以及数字信号处理器(DSP)等其他并行处理器,在游戏、娱乐、科研、医疗等各种领域都有广阔的发展前景,AMD-ATINVIDIA时下的产品都支持Open CL

         GPU的生产厂商非常多,最大的三家是英特尔、NVIDIA、AMD,他们主要应用于PC领域。相比ARM CPU占据了移动端90%市场,ARM的mali GPU只是移动市场众多GPU的一小众,它主要应用基于ARM 体系结构的移动设备上,得益于CPU占有率发展迅猛。mali GPU最早由挪威科技大学项目独立出来成立的Falanx公司开发,在2006年被ARM收购,成为ARM一个GPU事业部,并在2007年mali作为arm的一部分,发布了mali-200 GPU     ,如表格所示经历了三代架构:

第一代Utgard

第二代Midgard

第三代Bifrost

Mali-200/300/400/450/470

Mali-T600/T700/T800系列

Mali-G3/G5/G7系列

按照性能划分:

高性能

中等

低功耗

Mali-G71/72 Mali-T860/T880

Mali-T760

Mali-G51/G52 Mali-T820/T830 Mali-T720

Mali-400/450/470 Mali-G31

 

         Hi3536使用的是Mali-T720GPU,有如下特点:

总线接口AMBA@4 ACE-LITE

支持MMU

L2 Caches:64KB~256KB

可配置1~8 cores

支持 OpenGL ES 3.1/2.0/1.1

支持 OpenCL 1.1/1.0,RenderScript

支持DirectX 11 FL9_3

完全可编程的架构,灵活支持各种几何与像素处理算法,包括多种快速图元、纹

理、像素及模板处理功能 

支持 ATSC 、 ETC2 等多种纹理压缩格式、输入输出格式(包括 YCbCr 数据格

式),可以对解码后的视频数据进行特效处理; 

支持双精度 FP64 及抗锯齿功能 

支持 DFS 功能

         OpenGLES为嵌入式图形算法库,主要提供2D/3D图形处理的相应接口

OpenCL开放运行语言,是GPU用于通用计算开发的一个标准。例如人工智能,深度学习,人脸识别等通用计算就使用后者。

 

2、开发工具

         arm提供了mali GPU各种使用场景下的调优、测试工具(需要用时再深入研究)。

(1)mali Graphics Debugger

针对采用ARM® Mali™ GPU的Android手机,进行app的GPU运行时调试和调优。

(2)mali Offline Compiler

    用于OpenGL ES着色器和OpenCL kernels离线编译的一套命令行工具。

(3)Mali Texture Compression Tool

         纹理压缩工具用于压缩ETC/ASTC格式的纹理

(4)OpenGL ES Emulator

         OpenGLES仿真器是一个映射OpenGL ES调用到desktop OpenGL API的库。

(5)ASTC Evaluation Codec

         ASTC评估编码器

(6)DS-5 Streamline

         MaliGPU性能分析工具

 

3、开发文档

(1)开发指南

网址:https://developer.arm.com/graphics/developer-guides

包括如下文档:

Getting Started With Mali GPUs

Mali Best Practices

Unity Guide for Unity Developers

Arm Guide to OpenCl Programming        //开发opencl的指导文件

OpenGL ES 3.X Developer Programming Guide

Arm Mali Gpu Application Optimizaton

Applicaton Developer Best Practices

Arm Guide for Unreal Engine 4 OptimizingMobile Gaming Graphics

 

(2)参考资料

网址:https://developer.arm.com/graphics/resources/tutorials

Unity Tutorials

VR Tutorials

Vulkan Tutorials

Android OpenGL ES 3.0&3.1 Tutorials

Arm Tools Tutorials

Performance and Optimization Tutorials

OpenCL Tutorials

GPU Compute Tutorials

Arm Architecture Tutorials

Unreal Engine Tutorials

Cocos2d-x Engine Tutorials

HTML 5 WebGL UI and Browser Tutorials

Mali Demos Tutorials

 

4、驱动和开发板

(1)驱动

网址:https://developer.arm.com/products/software/mali-drivers

Android NNAPI

Mali GPU User-Space Binary Drivers

Mali Bifrost GPUs Device Driver               //bifrost架构设备驱动

Mali Midgard GPUs Device Driver            //midgard架构设备驱动

Mali Utgard GPUs Device Driver              //utgard架构设备驱动

Mali Video Kernel Device Driver

Android Gralloc Module Source Code               //针对android

Mali GPU Android RenderScriptIntegration Modules    //针对android

Mali-DP ADF Kernel Device Driver                     //针对android

Mali GPUs Linux EXA/DRI2 and X11 DisplayDrivers

Mali GPUs UMP User-Space Drivers

 

(2)官网开发板

网址:https://developer.arm.com/graphics/development-platforms

Firefly-RK3288

Hikey 960 board

Sansum Nexus 10

ODROID-XU3

Samsung Chromebook

 

5、官网提供的SDK

Mali VR SDK for Android

Mali Vulkan SDK

Mali OpenGL ES SDK

https://github.com/ARM-software/opengl-es-sdk-for-android

https://arm-software.github.io/opengl-es-sdk-for-android/

         OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、跨平台编程接口的规格,它用于三维图象(二维的亦可)。它是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库。

OpenGL ES (OpenGL for Embedded Systems)  OpenGL三维图形 API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。OpenGL ES 是从 OpenGL 裁剪的定制而来的,去除了glBegin/glEnd,四边形(GL_QUADS)、多边形GL_POLYGONS)等复杂图元等许多非绝对必要的特性。经过多年发展,现在主要有两个版本,OpenGL ES 1.x 针对固定管线硬件的,OpenGL ES 2.x 针对可编程管线硬件。

 

Compute Library:

https://github.com/ARM-software/ComputeLibrary

https://arm-software.github.io/ComputeLibrary/latest/

         ARM Compute Library是ARM公司刚发布不久的开源工程,旨在为图像/视频/多媒体/计算机视觉等领域的开发者提供arm平台的硬件加速库。这个库中分别用OpenCL与NEON的方式实现了一些上述领域的基本算法,OpenCL主要是arm的Mali GPU加速,NEON是针对arm的A系列CPU。开发者可以不用关心arm的cpu与gpu怎样通过NEON或OpenCL来实现硬件的加速,直接调用这个库中的接口就可以,对于开发计算机视觉类的应用但是不太了解硬件加速编程的工程师来说十分有利。

         该库接口用C++实现,部分核心使用C语言实现。

 

6、驱动移植

         Hi3536使用Mali-T720GPU属于Midgard结构,因此下载Mali Midgard GPUs Device Driver的linux版本,报名:TX011-SW-99002-r23p0-01rel0,进入到kernel目录如下:

         该目录结构和linux内核src结构一致,将各个目录下的内容分别拷贝到linux src目录下。实际移植只拷贝了核心的drivers/gpu/arm整个目录到linux drivers/gpu目录下,然后修改src/drivers/video/Kconfig,添加arm的Kconfig,如图所示:

         在src/drivers/gpu/arm/midgard/platform下面参考现有平台,添加自己的平台信息hi3536,修改mali_kbase_config_hi3536.c文件添加中断号,GPU寄存器空间等。

         通过makemenuconfig配置mali GPU的选项,编译成模块或编译进内核:

Device Drivers  --->

         Graphicssupport  --->

                  ARM GPU Configuration  --->

                            <M>Mali Midgard series support  --->

                                     ---Mali Midgard series support

                                     []   Streamline support via Gator

                                     []   Enable legacy DVFS

                                     []   Enable kbase tracing

                                     []   devfreq support for Mali

                                     []   DMA_BUF fence support for Mali

                                     (hi3536)Platform name

                                     []   Enable Expert Settings  --->

上面名字hi3536就是刚才添加的平台名字,编译时会自动将平台下的内容编译进去。

         然后进入到根目录下编译模块makeuImage; make modules,在src/drivers/gpu/arm/midgard下就会生成一个mali_kbase.ko驱动。

         拷贝mali_kbase.ko到板子上,insmodmali_kbase.ko后,如果检测到GPU会有相应打印,可惜在hi3536上未成功检测到,手动读取GPU寄存器信息也是失败的。

 


http://www.ppmy.cn/news/376292.html

相关文章

关于Windows 2003 安装Inter G33/G31 显卡问题

写个前两天安装系统碰到的问题。装的是Windows 2003 Server&#xff0c;显卡是Inter G33/G31&#xff0c;安装的驱动程序是intel_965g_143114846_xp32.exe&#xff0c;结果系统提示 网上Google了记&#xff0c;应该如下安装&#xff0c;我的电脑->属性->硬件->设备管理…

计算机英特尔显卡在哪找,英特尔®显卡和 Windows 7 * 常见问题解答

在哪里可以下载支持 Windows 7 * 操作系统的英特尔显卡驱动程序&#xff1f; 从英特尔945高速芯片组家族开始&#xff0c;英特尔拥有适用于 Windows 7 的通用版本的英特尔 Graphics Driver。这些驱动程序可在 下载中心 获得。如果您遇到通用驱动程序的问题&#xff0c;请从计算…

intel945显卡linux驱动,下载:Intel 945G/G965/G3X显卡新版驱动

目前Intel旗下集成显卡驱动分为两大系列,G4X一套驱动,G3x和G965另外一套驱动,不同之处是G4X的驱动更新速度快点,而G3X的则要慢很多,其实这也不难理解,几乎所有的厂商都是对新产品的支持力度更大一些。 7月初Intel曾为G3X和G965发布过一款正式版Windows 7驱动,而且出人意…

G31主板WIN2003显卡驱动解决方案

解决办法如下: 1、下载G31的WINXP显卡驱动。2、解压缩后右键点SETUP——>属性——>兼容性&#xff0c;选择用兼容模式运行这个程序&#xff0c;选中WINXP&#xff0c;呵呵&#xff0c;安装成功&#xff0c;重新启动。

Spring 事务的相关配置、传播行为、隔离级别及注解配置声明式事务

目录 一、事务的相关配置 1. 添加测试标签 2. 添加对应方法 3. 测试 二、事务的传播行为 三、事务的隔离级别 四、注解配置声明式事务 1. 注册事务注解驱动 2. 加上注解 3. 配置类代替xml文件中的注解事务支持 4. 测试 往期专栏&文章相关导读 1. Maven系列专栏…

【送书福利-第十一期】清华社 IT BOOK 图书活动:前端、后端、C++、Python、人工智能 ~(共送5本)!

大家好&#xff0c;我是洲洲&#xff0c;欢迎关注&#xff0c;一个爱听周杰伦的程序员。关注公众号【程序员洲洲】即可获得10G学习资料、面试笔记、大厂独家学习体系路线等…还可以加入技术交流群欢迎大家在CSDN后台私信我&#xff01; 本文目录 一、前言二、内容介绍1、《C高性…

基于VMWare组件安装Centos7.9

1.前提条件 使用VMware进行安装&#xff0c;VMware可以自行下载&#xff0c;需要介质(VMware和CentOS7.9)的同仁&#xff0c;请留言&#xff0c;我给你下载链接。 2.CentOS7.9安装 1.打开VMware&#xff0c;点击“新建虚拟机(N)...” 2.选择“典型” &#xff0c;点击“下一步…

学计算机对显卡要求大吗,【5人回答】学AE的电脑配置要求高吗?需要什么样的电脑配置-3D溜溜网...

Ae和pr&#xff0c;97002060就算再设计后期中也属于一套非常高配的电脑了&#xff0c;做后期的还需要大容量储存的所以需要一个大点的机械盘&#xff0c;这套东西的主机价格大概会在7k左右&#xff0c;配置如下 处理器 i7 9400f 散热器 九州风神玄冰400 主板 华硕tuf b360m plu…