徐珂靖 · 2020年09月05日

云芯一号测评1:开箱及开机自动切换高性能模式

测试背景简介

极术社区的小伙伴们大家好,我叫徐珂靖,是一个骨灰级工科男,很荣幸地成为本期试用活动的第一批用户。

让我们有请今天的主角云芯一号开发板登场吧。
板子照片.JPG

云芯一号的产品信息见:

https://aijishu.com/a/1060000000129732

快速开始的参考教程:

https://aijishu.com/a/1060000000130786

今天中午,我刚拿到开发板。我知道,还有不少小伙伴没有通过申请,但依然对这块板子很感兴趣。下面我们直接进入今天评测的主题吧。

开启root用户远程登录

我们都知道在linux系统下,最常用的远程命令行服务是Open SSH,云芯一号开发板出厂默认系统已经开启了SSH服务,可以在局域网内用putty软件登录。

如果你想给云芯一号开发板拷贝文件或修改文件,可以用winscp软件。如果你的上级路由器开启了DHCP服务,并把云芯一号的网口接到了路由器的LAN口,路由器应该会自动为板子分配IP地址。

默认只能普通用户登录,用户名jishu,密码jishu5368。你可以登录后设置root密码。命令:

sudo passwd

其中,输入密码过程中是没有显示的,这是正常的,为了防止密码被窥探。

ssh服务配置文件在/etc/ssh/sshd_config

这个文件属于root用户,普通用户想修改,先要设置读写权限,命令:

chmod 666 /etc/ssh/sshd_config

下面,举个例子,比如我们想允许root用户远程ssh登录,可以用普通用户修改/etc/ssh/sshd_config文件内的PermitRootLogin的值为yes

记得重启一下sshd服务,下图随便举例几种重启ssh的方法。
重启ssh的3种方法.JPG

至少有四种重启ssh的命令,列举如下:

systemctl restart sshd

systemctl restart sshd.service

service sshd restart

/etc/init.d/ssh restart

大家注意了,我要划重点了,以上四种命令,考试要考的。
哎呀呀呀,不小心又成孔乙己了,怎么能在这么专业的场合炫耀这么基础的操作呢?当然,也不能说这种知识毫无用处,至少在码字凑字数时候还是需要的。

自动挂载剩余分区并切换到高性能模式

我们先看一下磁盘使用信息,命令

df -h

看一下eMMC信息及其分区,可以用命令:

fdisk -l

至少有两种分区工具命令可以查看eMMC的分区,一个是fdisk,另一个是parted。parted适用于gpt分区的操作。。。。。让我们先用apt安装个parted吧。。。。。本人话痨症又发作了,开始像孔乙己一样滔滔不绝地讲这些花拳绣腿的操作。

小伙伴们,我们收。先直接说结果吧。最简单的方法就是一个fdisk -l命令。通过下面的输出,我们可以发现根目录只有6G大小,已使用577M,然后还有个8G多的分区没使用。
磁盘使用.JPG

接下来,我们再看看CPU和GPU的性能模式。

出厂系统默认让GPU跑在ondemand模式,这在运行一些OpenCL程序时,若负载不大,可能会因为自动降频而影响测试成绩。GPU当前的性能模式可以直接通过linux的系统文件接口查看。
查看GPU性能模式.JPG

GPU频率也可以通过系统文件接口看到,只有200M,离额定频率800M还很远,这会严重影响OpenCL程序的运行速度。
默认GPU频率.JPG

CPU的性能模式也可以通过系统文件接口查看,我们可以看到出厂系统默认是让CPU跑在interactive模式。

其中,文件接口/sys/devices/system/cpu/cpufreq/policy4控制的是两个A72大核。

然后,文件接口/sys/devices/system/cpu/cpufreq/policy0控制的是四个A53小核。

低负载下,处理器频率是很低的,通过系统文件接口可以看到,只有408M,远远低于额定的1.8G。
默认CPU频率.JPG

通过前面分析,我们可以发现两个问题。一是有剩余分区未挂载,二是CPU和GPU都没切换到全速模式。下面我们来写个命令脚本,保存为/root/1.sh。文件名1.sh我只是给个例子,实际可以随便起。

#!/bin/bash
umount /dev/mmcblk1p9
mount -t ext4 /dev/mmcblk1p9 /home/dat
echo "performance" >/sys/devices/platform/ff9a0000.gpu/devfreq/ff9a0000.gpu/governor
echo "performance" >/sys/devices/system/cpu/cpufreq/policy0/scaling_governor
echo "performance" >/sys/devices/system/cpu/cpufreq/policy4/scaling_governor

记得给这个文件一个755权限

chmod 755 /root/1.sh

这个脚本放到root用户的bashrc文件的最后就能开机自启动了

重启一下,然后用cat输出一下GPU性能状态,现在是高性能模式了,频率也达到了800M

cat /sys/devices/platform/ff9a0000.gpu/devfreq/ff9a0000.gpu/cur_freq

重启后观察.JPG

然后再看一下CPU,A72大核在policy4,命令可以这么写:

cat /sys/devices/system/cpu/cpufreq/policy4/cpuinfo_cur_freq

通过输出信息可以看出两个A72大核工作在高性能模式了,频率1.8G
重启后cpu.JPG

A53小核在policy0,同理可以写出输出A53核心频率的命令

cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_cur_freq
重启后小核.JPG

烤机温度测试

原厂开发板带来一个散热片但没有风扇,不知道这种被动散热模式在高性能模式下满载时是否会导致温度过高,我们做个烤机测试。

我写了一个小程序,参考了我过去做的一个CPU和GPU一起烤的烤机软件(那个代码的开源地址:https://github.com/xukejing/LeezRK3399/tree/master/ickey/烤机大师),但这次测试中取消了OpenCL的计算。因为目前的云芯一号的原厂固件还没有带OpenCL的驱动,我们暂时不能测试GPU性能了。

我们回到正题。这次的这个程序将开启两个线程。线程1用来输出实时温度、CPU各个核心在线情况、CPU各个核心的实时频率。线程2跑了openmp并行计算,通过6个线程把CPU的大小核心全部占满。

代码通过gcc编译,需要先用apt安装一下gcc
apt-get install gcc

代码编译并运行截图如下:
烤机测试截图.JPG

从上图可以看到测试过程中,CPU0~5共6个核心都是在线的,A53和A72核心也都在线。处理器温度从40度开始不断上升。我家室温是24度。

等待一段时间后,感觉有些烫了,温度有六十多度。因为空调的风时不时会对流过来一下,温度稍微有些波动,但基本稳定在60~65度。后来温度不再上升,这说明在24度室温且有对流的情况下,这个被动散热是够用的。
烤机60度.JPG

最后给大家开源这个CPU烤机程序的源代码
https://github.com/xukejing/LeezRK3399/blob/master/ickey/烤机大师/cputest.c

更多云芯一号的技术教程及评测报告请关注Arm微服务器专栏
推荐阅读
关注数
4278
内容数
71
低成本Arm微服务器开发平台“云芯1号”教程及应用,欢迎关注
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息