基于联咏的gpu文档的概述,GPU用于处理3D图形或计算引擎,我们采用Arm Mali Gondul系列GPU G52作为我们的平台GPU,它可以支持OpenGL ES 1.1、2.0、3.2和OpenCL 2.0和EGL 1.5。刚好最近有处理一个GPU相关的问题,所以通过这篇文章简单说明GPU的系统初始化配置。
问题是这样,客户参考《NT98690_GPU_Programming_Guide_zh.pdf》文档中第三章基于GPU的系统初始化。完成内核配置和dtsi配置后,加载mali_kbase.ko时未出现文档中的内核打印,且GPU执行报错,执行结果如下。

然后我们在EVB上使用 v100版本验证是OK的。

然后请客户确认ko加载顺序
insmod /lib/modules/${KERVER}/extra/gpu/nvt_dmabuf_allocator/nvt_dmabuf_allocator.ko
insmod /lib/modules/${KERVER}/extra/gpu/mali_kbase.ko
客户按顺序加载nvt_dmabuf_allocator.ko和mali_kbase.ko 还是看到没有预期的打印

后面想基于客户kernel config编译的mali_kbase.ko,替换在客户设备上交叉测试
想理清是ko问题还是dtsi配置问题。
客户使用编译好的ko, 敲击命令insmod nvt_dmabuf_allocator.ko,后敲击insmod mali_kbase.ko,然后就直接卡死。死机截图如下:

后来通过给客户GPU整包,用gpu.7z试了一下,加载驱动环境无问题。运行sample报错,so加载为压缩包内的动态库。

后面我们做了大量的对比测试,测试发现跟硬件没有关系,跟使用的固件有关,客户NG设备使用的kernel config不是基线V100版本的kernel config,而且差异非常大,需要理清这部分差异,是否是造成memory mapping失败的原因。
最终客户对齐配置之后,问题就解决了。
FAQ
1. 联咏691平台GPU硬件信息是什么?
答:1 shader core,2 execution engines (EE) per shader core,48 warps per EE等等
2. 联咏691平台GPU体系结果是怎样的?
答:CPU将向GPU生成作业,GPU将处理这些计算或图形作业。您可以使用HDAL和GPU设计应用程序流,以获得2D或3D效果。
3. 联咏691平台GPU软件框架如何?
答:我们可以支持您开发OpenCL或OpenGL ES应用程序,输入或输出缓冲区可以从内核模式或特定物理地址获取。EGL负责绑定Linux内核缓冲区和帧缓冲区。
4. 如何使用GPU对系统进行初始化?
答:我们为您的系统提供如何启动GPU相关服务,其中包括内核和用户模式应用程序和库。您可以将初始过程添加到系统中,并使用OpenGL ES或OpenCL开发3D/2D应用程序
5. 是否支持EGL programing?
答:有API用于为OpenGL ES 3.0创建曲面和渲染上下文。您可以创建窗口曲面并使用OpenGL ES进行绘制
本篇作者-诠鼎集团-jop
156

被折叠的 条评论
为什么被折叠?



