一、写在前面
VisionFive2开发板的主芯片JH7110内部继承了Imagination的IMG BXE-4-32 MC1 GPU,最高频率 600MHz。根据官方介绍信息,如果扩展至四核,也就是BXE 4-32 MC4——具备16 Gigapixels/s和 128 GFLOPS的性能。还是非常强悍的,即便单个核心,应该也有4G pixels/s 和32G FLOPS的性能。
PS:4G像素每秒的处理性能,大家可能没啥概念,1920x1080分辨率60FPS,对应的像素数量是1920x1080x60=124,416,000,比4G小一个数量级。
二、实验准备
本文所需要的设备有:
- VisionFive2开发板,实验主要平台
- 显示器,用于显示实验画面
- HDMI线,用于传输视频信号
- USB充电器(5V4A)、USB Type-C数据线,用于给VisionFive2开发板供电
- USB-UART转换器,用于通过串口登录VisionFive2的系统shell
- 个人电脑,通过shell交互控制VisionFive2开发板
三、下载镜像
本次 实验需要用到VisionFive2 SDK镜像,可以从VisionFive2 SDK的GitHub Release页面下载:
https://github.com/starfive-tech/VisionFive2/releases
最近的3.9.3版本下载链接为:
https://github.com/starfive-tech/VisionFive2/releases/tag/JH7110_VF2_515_v3.9.3
其中sdcard.img为SD卡烧录镜像:
下载该文件即可。
四、烧录镜像
使用Rufus软件,将sdcard.img文件烧录到SD卡上,和之前烧录Debian镜像类似,操作非常简单:
- SD卡放入读卡器;
- 读卡器插入PC的USB口;
- 打开Rufus软件,此时如果只有一个SD卡读卡器,应该能够识别到SD卡;
- 选择好sdcard.img文件;
- 点击开始烧录即可;
稍等片刻,烧录就完成了。
五、运行测试
5.1 运行GPU渲染的glmark2
SDK镜像上集成了Imagination的GPU驱动,可以使用GPU进行图形渲染加速。另外,SDK镜像内部已经编译好了GLMark2测试程序,可以开箱即用的进行测试。接下来,就在SDK颈项上尝试运行glMark2测试。
烧录完成后,将SD卡从PC上弹出;
然后,将SD卡插入到VisionFive2开发板上;
接着,连接好HDMI线和显示器、以及USB转UART和PC;
最后,上电开机;
如果没有意外,
此时,就能在串口上开到启动日志,同时显示器上也能看到日志。
启动之后,显示器日志画面:
SDK镜像的默认用户名和密码分别为:root/starfive
输入之后,就可以登录上了,登录成功之后,在串口shell里面输入glmark2-es2-drm命令,就会开始运行GLMark2测试,测试结束后,输出如下:
显示器分辨率为:1920x1080
最终得分为53分,意味着所有场景平均下来帧率为53。
大部分场景的帧率可以跑到每秒60帧,少量每秒30帧,一个每秒8帧。
测试过程视频分为两部分,见本帖子顶部和底部。
5.2 运行纯CPU渲染的glmark2
目前Debian版本的glmark2暂不支持GPU加速,所以相同的程序,底层使用CPU渲染(可以预想速度非常慢)。
Debian镜像烧录和基础操作这里本文不再介绍,感兴趣的可以看之前发的帖子。接下来主要介绍,如何在Debian镜像上运行glmark2。
首先搜索glmark相关的软件包:
apt search glmark
得到以下信息:
运行以下命令安装glmark2-x11测试程序:
sudo apt install glmark2-x11
PS:由于Debian系统使用的是XWindow桌面,所以用不了drm和wayland版本。
运行以下命令,开始glmark2测试:
glmark2
运行过程画面非常卡,大部分场景的帧率只有1~3之间,这里就不演示了。
测试结果数据如下图:
这里明确指定了分辨率为:960x540,即1920x1080屏幕面积的四分之一大小。
纯CPU的glmark2测试,最终成绩为1分,意味着平均帧率仅有1帧,非常卡顿了。
六、参考链接
- IMG B系列:多核革命,构建全新GPU世界(附资料下载) - 知乎 (zhihu.com): https://zhuanlan.zhihu.com/p/269472881
- GLMark2源码仓链接: https://github.com/glmark2/glmark2
- OpenGL ES介绍: https://www.khronos.org/opengles/