RK3588 CPU GPU NPU 定频和性能模式设置方法以及温度监控

news2025/2/4 9:02:53

一. CPU定频

1. RK3588的cpu是4个A55+4个A76,分为3组单独管理,节点分别是:

/sys/devices/system/cpu/cpufreq/policy0(对应四个A55:CPU0-CPU3)

1.JPG

 /sys/devices/system/cpu/cpufreq/policy4(对应2个A76:CPU4-CPU5)

1.JPG

 /sys/devices/system/cpu/cpufreq/policy6(对应2个A76:CPU6-CPU7)

1.JPG

 

以上3个CPU是独立控制,下面以设置CPU6-7为例说明如何设置CPU6-7的频率

2. 获取当前CPU支持的频点

cat /sys/devices/system/cpu/cpufreq/policy6/scaling_available_frequencies

408000 600000 816000 1008000 1200000 1416000 1608000 1800000 2016000 2208000 2304000

3. 获取cpu运行的模式

cat /sys/devices/system/cpu/cpufreq/policy6/scaling_available_governors

conservative ondemand userspace powersave performance schedutil

默认是自动变频模式:schedutil(恢复的话设置为该模式即可)

4. 设置手动定频模式:userspace

echo userspace > /sys/devices/system/cpu/cpufreq/policy6/scaling_governor

5. 设置频率为2016000

echo 2016000 > /sys/devices/system/cpu/cpufreq/policy6/scaling_setspeed

确认是否设置成功

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

2016000

二.GPU定频

1. GPU的节点路径

ls /sys/class/devfreq/fb000000.gpu/

available_frequencies cur_freq governor max_freq name power target_freq trans_stat

available_governors device load min_freq polling_interval subsystem timer uevent

2. 获取GPU支持的频点

cat /sys/class/devfreq/fb000000.gpu/available_frequencies

1000000000 900000000 800000000 700000000 600000000 500000000 400000000 300000000

3. 获取GPU运行的模式

cat /sys/class/devfreq/fb000000.gpu/available_governors

userspace powersave performance simple_ondemand

默认是自动变频模式:simple_ondemand(恢复的话设置为该模式即可)

4. 设置手动定频模式:userspace

echo userspace > /sys/class/devfreq/fb000000.gpu/governor

5. 设置频率为1000000000

echo 1000000000 > /sys/class/devfreq/fb000000.gpu/userspace/set_freq

cat /sys/class/devfreq/fb000000.gpu/cur_freq

6. 查看GPU的负载

cat /sys/class/devfreq/fb000000.gpu/load

0@1000000000Hz

三.NPU定频

1. NPU的节点路径

ls /sys/class/devfreq/fdab0000.npu/

available_frequencies device max_freq polling_interval target_freq uevent

available_governors governor min_freq power timer userspace

cur_freq load name subsystem trans_stat

2. 获取NPU支持的频点

cat /sys/class/devfreq/fdab0000.npu/available_frequencies

300000000 400000000 500000000 600000000 700000000 800000000 900000000 1000000000

3. 获取NPU运行的模式

cat /sys/class/devfreq/fdab0000.npu/available_governors

userspace powersave performance simple_ondemand

默认是自动变频模式:simple_ondemand(恢复的话设置为该模式即可)

4. 设置手动定频模式:userspace

echo userspace > /sys/class/devfreq/fdab0000.npu/governor

5. 设置频率为1000000000

echo 1000000000 > /sys/class/devfreq/fdab0000.npu/userspace/set_freq

cat /sys/class/devfreq/fdab0000.npu/cur_freq

6. 查看NPU的负载

cat /sys/kernel/debug/rknpu/load

NPU load: Core0: 0%, Core1: 0%, Core2: 0%,

四.RK3588 CPU GPU NPU 温度监控

CPU利用率95%以上时的CPU温升情况,通过使用cpuburn来打满cpu,记录cpu各个核的温度,主要针对一下的cpu

RK3588的芯片有7路TS-ADC分别对应:芯片中心位置、A76_0/1、A76_2/3、DSU 、A55_0/1/2/3、PD_CENTER、 NPU、GPU。

(1)芯片中心位置温度:soc-thermal

(2)CPU大核A76_0/1 即CPU4和CPU5的温度:

(3)CPU大核A76_2/3 即CPU6和CPU7的温度:

(4)CPU小核A55_0/12/3 即CPU0、CPU1、CPU2、CPU3的温度

(5)PD_CENTER的温度:

(6)GPU的温度

(7) NPU的温度

可先运行cpuburn,指定压测核数

cpuburn -n=4

然后执行下面的附件脚本,每十分钟记录一次,记录24小时,一共24*6=144次

#!/bin/bash
if [ -f /tmp/cpu_temper.log ];then
	rm -rf /tmp/cpu_temper.log
fi

for i in {1..144}
do
	echo  "$(date +%Y-%m-%d\ %H:%M:%S)" >> /tmp/cpu_temper.log
	soc_thermal=`cat /sys/class/thermal/thermal_zone0/temp`
	soc_thermal_interger=${soc_thermal:0:2}
	soc_thermal_decimal=${soc_thermal:2:3}
	soc_thermal_float="soc_thermal="${soc_thermal_interger}"."${soc_thermal_decimal}
	CPU_A76_01=`cat /sys/class/thermal/thermal_zone1/temp`
	CPU_A76_01_interger=${CPU_A76_01:0:2}
	CPU_A76_01_decimal=${CPU_A76_01:2:3}
	CPU_A76_01_float="CPU_A76_01="${CPU_A76_01_interger}"."${CPU_A76_01_decimal}
        CPU_A76_23=`cat /sys/class/thermal/thermal_zone2/temp`
	CPU_A76_23_interger=${CPU_A76_23:0:2}
        CPU_A76_23_decimal=${CPU_A76_23:2:3}
        CPU_A76_23_float="CPU_A76_23="${CPU_A76_23_interger}"."${CPU_A76_23_decimal}
	CPU_A55_0123=`cat /sys/class/thermal/thermal_zone3/temp`
	CPU_A55_0123_interger=${CPU_A55_0123:0:2}
        CPU_A55_0123_decimal=${CPU_A55_0123:2:3}
        CPU_A55_0123_float="CPU_A55_0123="${CPU_A55_0123_interger}"."${CPU_A55_0123_decimal}
	PD_CENTER=`cat /sys/class/thermal/thermal_zone4/temp`
        PD_CENTER_interger=${PD_CENTER:0:2}
        PD_CENTER_decimal=${PD_CENTER:2:3}
        PD_CENTER_float="PD_CENTER="${PD_CENTER_interger}"."${PD_CENTER_decimal}
	GPU=`cat /sys/class/thermal/thermal_zone5/temp`
        GPU_interger=${GPU:0:2}
        GPU_decimal=${GPU:2:3}
        GPU_float="GPU="${GPU_interger}"."${GPU_decimal}
	NPU=`cat /sys/class/thermal/thermal_zone6/temp`
        NPU_interger=${NPU:0:2}
        NPU_decimal=${NPU:2:3}
        NPU_float="NPU="${NPU_interger}"."${NPU_decimal}
	line=${soc_thermal_float}"  "${CPU_A76_01_float}"  "${CPU_A76_23_float}"  "${CPU_A55_0123_float}"  "${PD_CENTER_float}"  "${GPU_float}"  "${NPU_float}
	echo $line >> /tmp/cpu_temper.log
	sync
	sleep 600s

done

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/761930.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java从0到1学习】01 Java 概述

1. Java概述 Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称。由 James Gosling和同事们共同研发,并在 1995 年正式推出。 后来 Sun 公司被 Oracle (甲骨文)公司收购,Java…

微信小程序基于Promise封装发起网络请求

1.创建一个request.js // 相当于域名 const baseURL ***************; // 暴露一个request函数 export function request(parms) {// 路径拼接const url baseURL parms.url;// 请求体,默认为{}const data parms.data || {};// 请求方式,默认为GETco…

<Babel> 前端语言的巴别塔

Babel中文站点:https://www.babeljs.cn/ Babel外文站点:https://babeljs.io/ 什么是Babel Babel取自人类语言最早的传说,Tower of Babel。 上帝摧毁了巴别塔上说着共同语言的我们,又被Babel重新带了回来。 如果说巴别塔是人们对混…

windows命令行运行mysql

1.运行命令:mysql -u用户名 -p密码 2.创建数据库: create 数据库名称 ; 3.use 数据库 4.show tables ; 5.创建用户,分配权限 6.退出 ctrlc 7.切换用户

海外app在谷歌和苹果商店中该如何设置关键词

主导应用商店搜索结果的方法就是关键词的设置。我们需要寻找关键词,跟踪关键词排名并监控其应用的性能,这样就能大大的提高应用的可见度。 优先考虑可推动Android或ios应用自然下载量的关键词,使用搜索量指标了解某个关键词在应用商店中的搜…

数字孪生很火嘛?是做什么的?

数字孪生是一种新兴的技术概念,将现实世界与数字世界紧密结合,通过数字化的方式模拟、仿真和预测真实世界的物理实体、过程和系统。它是物理实体与其数字化的虚拟模型之间的一种互联关系,旨在实现对现实世界的全面感知和实时监测。 数字孪生的…

骑行健身,生活和工作压力的避风港

在忙碌的现代生活中,每个人都面临着种种生活压力和工作压力。而自行车运动,正是一种理想的压力释放方式。它不仅能帮助我们保持身体健康,更能丰富我们的生活,让我们在自然中寻找宁静。 首先,骑自行车是一种全身性的运动…

BigTable:一个针对结构化数据的分布式存储系统----论文摘要

目录 摘要 1. 介绍 2. 数据模型 行 列族 时间戳 3. API 4. 所需构件 5. 实现 5.1 Tablet的位置 5.2 Tablet分配 5.3 Tablet服务 5.4 压实(Compactions) 6. 优化 本地化分组 压缩(compression) 通过缓存提高读操作的性能 Bloom过滤器 C…

2023年7月16日,HashMap

HashMap HashMap存储的是一组无序的键值对。存储时是根据键的哈希码来计算存储的位置,因为对象的哈希码是不确定的,因此HashMap存储的元素是无序的。 Map用于保存具有映射关系的数据,Map里保存着两组数据:key和value,它…

Leetcode-每日一题【2487.从链表中移除节点】

题目 给你一个链表的头节点 head 。 对于列表中的每个节点 node ,如果其右侧存在一个具有 严格更大 值的节点,则移除 node 。 返回修改后链表的头节点 head 。 示例 1: 输入:head [5,2,13,3,8]输出:[13,8]解释&…

拒绝被其他域名恶意解析到你的服务器上

拒绝被其他域名恶意解析到你的服务器上 备案问题恶意解析解决方案后记 备案问题 新的一周开始了,又是一个摸鱼的好时候。。。。结果,刚刚坐到工位上,机房客服发来了一个 excel ,说。。。你的备案信息没完善。。。 啥&#xff1f…

C语言进阶之程序环境和预处理

程序环境和预处理 1. 程序的翻译环境和执行环境2. 详解编译链接2.1 翻译环境2.2 编译的几个阶段2.3 运行环境 3. 预处理详解3.1 预定义符号3.2 #define3.2.1 #define 定义标识符3.2.2 #define 定义宏3.2.3 #define 替换规则3.2.4 #和##3.2.5 带副作用的宏参数3.2.6 宏和函数对比…

快速搭建接口自动化测试框架

1 接口测试 接口测试是对系统或组件之间的接口进行测试,主要是校验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系。 接口自动化相对于UI自动化来说,属于更底层的测试,这样带来的好处就是测试收益更大&#xff…

Python基础教程:数据结构

Python是一门广泛使用的编程语言,它的丰富的数据结构使得编写程序变得异常简单和方便。在本篇教程中,我将详细介绍Python中的四种主要数据结构:列表、元组、字典、集合。 1.列表(List) 列表是Python中最常用的数据结…

Nginx代理Grafana,鉴权访问以及Grafan免登录访问

✨概述 在使用grafana做页面嵌入的场景中,通常需要grafana与前端在同域下,方便鉴权、解决跨域。 Nginx代理Grafana后,就不能使用Grafana中默认配置的端口和路径进行访问,必须通过Nginx访问Grafana。 如果需要做Iframe嵌入自研系…

RabbitMQ ---- 发布高级确认

RabbitMQ ---- 发布高级确认 1. 发布确认 springboot 版本1.1 确认机制方案1.2 代码架构图1.3 配置文件1.4 添加配置类1.5 消息生产者1.6 回调接口1.7 消息消费者1.8 结果分析 2. 回退消息2.1 Mandatory 参数2.2 回调接口2.3 结果分析 3. 备份交换机3.1 代码架构图3.2 修改配置…

CAD可以转换成PDF吗?教你简单好用的转换方法

PDF格式是一种通用格式,可以在不同的设备和操作系统上轻松打开和查看,这使得共享和协作变得更加容易和高效。尤其是在远程工作的情况下,PDF格式能够让团队成员更方便地分享和合作,不受地理位置和设备的限制。那么怎么将CAD文件转换…

7. Java + Selenium 环境搭建

前提:Java 版本最低要求为 8;推荐使用 chrome 浏览器 chrome Java 1. 下载 chrome 浏览器(推荐) 2. 查看 chrome 浏览器版本 重点记住前两位即可。 3. 下载 chrome 浏览器驱动 下载链接: https://chromedriver.…

IPD跟敏捷、DevOps一样吗?有什么区别?

1992年在激烈的全球市场竞争下,IBM遭遇到了严重的财政困难,公司销售收入停止增长,利润急剧下降。经过内部分析,IBM发现他们在研发费用、研发损失费用和产品上市时间等几个方面远远落后于业界最佳。为了重新获得市场竞争优势&#…

SpringBoot源码分析(6)--SpringBootExceptionReporter/异常报告器

文章目录 一、前言二、异常报告器介绍2.1、作用2.2、接口定义2.3、FailureAnalyzer错误分析器2.4、FailureAnalysisReporter错误报告器 三 、SpringBootExceptionReporter源码分析四、shutdownHook介绍4.1、背景4.2、什么是Shutdown Hook4.3、什么时候会调用Shutdown Hook4.4、…