树莓派4处理器超频指南

news2024/11/26 10:20:03

概述

在树莓派4的系列硬件中,处理器都是基于Broadcom BCM2711,内部具有4个ARM Cortex-A72和VideoCore VI。如果仔细看:树莓派4B开发板用的是BCM2711B0,主频为 1.5GHz;而Pi 400(Keyboard Computer)的SoC略有区别,型号是BCM2711C0,主频为 1.8GHz。这暗示着RPi 4有一定的超频能力。

图1-树莓派400 vs 树莓派4B


为什么要超频?

如果需要让树莓派跑高速计算的应用,比如视频编解码、图像识别、游戏模拟器等,当然速率越快越好。

有老外网友尝试,BCM2711B0(树莓派4B)可从原来的1.5GHz超频至2.147GHz,而BCM2711C0(树莓派400)可以从原来的1.8GHz超频至2.3GHz(见参考链接[1])。这种高达30%以上的速率提升,也许某些应用在超频之前是卡顿的,在超频之后就顺畅了。


为什么出厂时不设置超频?

既然谁都喜欢高性能,那么,为什么出厂时不默认设置为超频呢?

首先,芯片由晶圆方式制造出来,一片晶圆上有数千颗芯片,它们都是同批制造,但有些性能好一点,有些性能弱一点。好一点的就有可能被命名为前面的“BCM2711C0”(用于树莓派400),坏一点的被命名为“BCM2711B0”(用于树莓派4B)。厂家在宣传的时候,只能说一个保守的、大多数芯片能达到的性能。那么,经过芯片测试,比如将BCM2711C0设置为1.8GHz,或者将BCM2711B0设置为1.5GHz,它是稳定的、达标的。

图2-芯片在晶圆上同批次生产

其次,所谓“标频”或者“超频”都是相对外在条件而言,这个条件与“散热”息息相关。也许在另一种更好的散热情况下,也许出厂默认时BCM2711C0的标准频率是1.9GHz,或者BCM2711B0的标准频率是1.6GHz,也未尝不可呢?但可以肯定的是,高性能的代价是更复杂的PCB和散热设备,而这都是成本。在高性能情况下,树莓派的售价也许还要更贵,这都是靠钱堆出来的,你说是吧。


超频在超什么?

超频意味着将处理器(CPU 或 GPU)的最大时钟速度设置为高于出厂默认的水平,例如,树莓派4B BCM2711B0的默认时钟速度是 1.5GHz,如果将此时钟速度提高到1.5GHz以上,都称为超频(Overclocking)。

这个超频的“频”,指的是时钟频率,在现代处理器上都是PLL(锁相环)。简单理解的话,PLL是一种压控振荡器,可以通过参数设置,改变时钟振荡器频率。

图3-PLL(锁相环)框图


功耗与节流问题

超频时处理器的功耗会上升,如果多出来的热量散不掉,处理器的温度就会提升,当温度高到一定程度就会引发处理器节流(throttling),这可能会使得处理器性能还不如超频前状态,甚至工作不稳定。我们来看下内部原理:

所有处理器,包括树莓派BCM2711,内部都有很多晶体管组成,由PLL时钟驱动。当处理器在执行指令时,内部晶体管正在进行“0”/“1”或称为“导通”/“关闭”的操作。

图4-晶体管导通与关闭

尽管导通、关闭发生得非常快,但晶体管的状态切换总需要一个时间,这个时间内晶体管内部会有一些的电流流过(图中小峰值),而且,这个时间内晶体管是有阻抗的。那么,电流+阻抗,就会发热。随着时钟频率的增加,这种小峰值的数量也成比例地增加,热量也随之增加。

处理器内部具有保护机制来保护硬件免受损坏,比如,在温度过高时自动减慢时钟速率,这个就是处理器节流(throttling),这种情况下处理器的性能会比出厂默认的1.5GHz更差。这就是为什么如果要超频,就一定要配备良好的散热设备,不然适得其反。

除了温度上升,处理器需要消耗更多能量,为此处理器的电力供给也要充足,有时还需要适当提升处理器的供电电压,来维持所需功耗。

对于树莓派来说,如果处理器温度太高(80°C及以上)、或者供电电压不足,在显示屏上会有指示标记提示(我没看到过,看过的网友留个言):

图5-树莓派超频时出现供电电压不足的标志


超频的潜在影响

我们需要知道:超频时处理器处在更为恶劣的工作状态下。

处理器内部还有另一个保护机制——动态时钟切换(Dynamic clock frequency),它的意思是CPU根据需要来切换时钟频率,在有任务执行的时候高速执行,在没有任务执行的时候,就低速运行。

但是偏偏有些人会把“动态时钟切换”这个功能关闭,强制让处理器一直处于超频模式下,这样CPU是容易损坏的。

因为在超频状态下,晶体管承受的是高温和高压。在现代芯片制造中,例如树莓派的BCM2711就是28nm工艺制程,晶体管的gate绝缘层很薄,薄到只有几十个原子厚。长期的高温和高压,该层容易被击穿,处理器也就废了。

图6-MOSFET(金属氧化物半导体场效应晶体管)内部极薄的金属氧化物层(红框内部两个白色箭头所指区域)

这就是为什么不推荐买那些跑过矿机的二手显卡,因为经过长期的高负荷运行,它们的芯片内部可能已经“千疮百孔”了。。。


超频方法

超频方法很多博主有讲,具体操作过程很详细,详见参考链接[1]~[5],在此罗列一下关键步骤及其说明。

首先,处理器工作频率的调整是在/boot/config.txt文件里面进行参数配置,在该文件中找到arm_freq、gpu_freq、over_voltage,改为如下值:

arm_freq=2000
gpu_freq=750
over_voltage=6

分别解释一下:

  • arm_freq,是ARM核的工作频率,2000是设置为2GHz。如参考链接的多篇文章指出,设置为2147(2.147GHz)是上限。如果再高,会有不稳定现象,或者无法正常启动。
  • gpu_freq,是GPU核的工作频率,从默认的600MHz,改为750MHz。
  • over_voltage,代表不同的处理器供电等级,默认是1.35V供电,设置为数值“6”,表示供电改为1.5V。

图7-/boot/config.txt配置超频参数

还有一个参数是force_turbo,默认是force_turbo=0,如果改为“1”,表示禁用上述所说的“动态时钟切换”,这样树莓派始终处于高速运行状态,不推荐修改。

设置完/boot/config.txt文件里的参数后,重启生效。

如果重启后不正常,则把SD卡拿出来,在其他电脑上修改为默认值后,放回去重新启动。所以,在上述超频操作之前,建议备份一下config.txt文件。


超频前后的性能对比

在此介绍一下处理器性能对比的相关命令或工具,附上参考链接和部分截图。

使用lscpu

此命令从sysfs和/proc/cpuinfo收集cpu体系结构信息并显示。详见参考链接[6]。

图8-lscpu运行结果

使用vcgencmd

此命令可以获取处理器的频率和温度。详见参考链接[7]。

图9-vcgencmd运行结果

使用sysbench

此命令通过计算素数来测试性能。输出结果不会提供处理器频率,但会显示每秒的事件数,及计算耗时,以此来对比性能。详见参考链接[8]。

使用Stressberry

Stressberry,它是一个用于测试不同负载下的核心温度的软件包,它可以生成漂亮的图,可以轻松进行性能对比。详见参考链接[9]。

在超频后,通过Stressberry测试,我的树莓派4B核心温度没超70℃摄氏度:

图10-Stressberry测试图

莫非是因为我这种外壳散热效果还不错?

图11-我树莓派4B的散热外壳

使用Phoronix

Phoronix是一个测试套件工具,允许使用者通过搭配http://OpenBenchmarking.org公开的线上测试脚本,分享他们的硬体及软体测试结果的协作平台。详见参考链接[10]。

最后祝大家超频时玩得开心。


参考链接:

  • [1] How to overclock Raspberry Pi 4 — The MagPi magazine
  • [2] How to overclock and stress-test your Raspberry Pi
  • [3] https://github.com/akopytov/sysbench
  • [4] https://github.com/nschloe/stressberry
  • [5] https://www.phoronix.com/

欢迎关注我的微信公众号“疯狂的运放”,及时收到最新的推文。

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

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

相关文章

【华为\荣耀、中兴、华三路由器IPV6设置】

华为\荣耀、中兴、华三路由器ipv6设置 华为\荣耀设置-路由器拨号情况下中兴设置-路由器拨号情况下华三设置-光猫拨号情况下(待续) 华为\荣耀设置-路由器拨号情况下 如图设置就行 中兴设置-路由器拨号情况下 中兴路由器有两个设置地方也是如图设置 …

浅析Android View绘制过程中的Surface

前言 在《浅析Android中View的测量布局流程》中我们对VSYNC信号到达App进程之后开启的View布局过程进行了分析,经过对整个App界面的View树进行遍历完成了测量和布局,确定了View的大小以及在屏幕中所处的位置。但是,如果想让用户在屏幕上看到…

免费送源码:Java+ssm+Springboot Springboot小型仪器公司生产管理系统 计算机毕业设计原创定制

摘 要 本论文主要论述了如何使用java语言开发一个Springboot小型仪器公司生产管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述小型仪器公司生产管理系统…

Java学习Day56:暴打舔狗!(SpringBoot)

1.springboot简介 核心能力:Spring容器、日志、自动配置AutoCongfiguration、Starters web应用的能力:MVC、嵌入式Web服务器 数据访问(持久化):关系型数据库、非关系型数据库 强大的整合其他技术的能力 只要是Java中牛逼的技术&#xff0c…

nascpolarssh

安装cpolarCpolar快速入门教程:群晖NAS系列 - cpolar 极点云官网 设置ssh: 然后:ssh tobecpolard.26.tcp.cpolar.top -p 12774即可进入 跳板机: 设置端口转向ssh -f -N -L 23:localhost:22 tobe192.168.31.44 ssh tobecpolard.26.tcp.cpola…

相关矩阵图——Python实现

import matplotlib.pyplot as plt import numpy as np# 创建一些正常分布的数据 mean [0, 0] cov [[1, 1], [1, 2]] x, y np.random.multivariate_normal(mean, cov, 3000).T# Set up the axes with gridspec fig plt.figure(figsize(6, 6)) grid plt.GridSpec(4, 4, hspa…

学习笔记:黑马程序员JavaWeb开发教程(2024.10.30)

5.3 请求响应-请求-简单参数 客户端使用postman实现,服务端通过idea,又两种请求方式,springboot的更加简洁方便 对于RequestParam,可以通过设置requiredflase来让参数不是必须传递的 在请求参数过多的时候,可以将请求参…

rabbitmq高级特性(2)TTL、死信/延迟队列、事务与消息分发

目录 1.TTL 1.1.设置消息过期时间 1.2.设置队列过期时间 2.死信队列 2.1.介绍 2.2.演示 3.延迟队列 3.1.模拟实现延迟队列 3.2.延迟队列插件 4.事务与消息分发 4.1.事务 4.2.消息分发 1.TTL 所谓的ttl,就是过期时间。对于rabbitmq,可以设置…

pip使用

pip全称pip install package,是python第三方包sitepackage管理的工具,安装,卸载第三方包。安装python时可以选择安装pip,或自己安装pip 查看pip是否安装:pip --version 安装pip :pip python -m pip install --upgrade…

早期进程间的通信

目录 IO进程(day06) 无名管道 有名管道 信号 IO进程(day06) 无名管道 原理图 无名管道的特点 只能用于有亲缘关系之间的进程无名管道可以看成是一种特殊的文件,对于它的读写可以使用文件IO如read、write函数.无名管道是…

Linux系统块存储子系统分析记录

1 Linux存储栈 通过网址Linux Storage Stack Diagram - Thomas-Krenn-Wiki-en,可以获取多个linux内核版本下的存储栈概略图,下面是kernel-4.0的存储栈概略图: 2 存储接口、传输速度 和 协议 2.1 硬盘 《深入浅出SSD:固态存储核心…

Python爬虫入门篇!

毕设是做爬虫相关的,本来想的是用java写,也写了几个爬虫,其中一个是爬网易云音乐的用户信息,爬了大概100多万,效果不是太满意。之前听说Python这方面比较强,就想用Python试试,之前也没用过Pytho…

从0开始搭建一个生产级SpringBoot2.0.X项目(三)SpringBoot接口统一返回和全局异常处理

前言 最近有个想法想整理一个内容比较完整springboot项目初始化Demo。 SpringBoot接口统一返回和全局异常处理&#xff0c;使用ControllerAdvice ExceptionHandler 的组合来实现。 一、pom文件新增依赖 <dependency><groupId>com.alibaba</groupId><ar…

【MySQL】实战篇—项目需求分析:ER图的绘制与关系模型设计

在软件开发中&#xff0c;数据库是信息系统的核心部分&#xff0c;合理的数据库设计能够显著提高系统的性能和可维护性。 ER图&#xff08;实体-关系图&#xff09;是数据库设计的重要工具&#xff0c;它通过图形化的方式描述了数据实体及其相互关系&#xff0c;帮助开发者和设…

输入整数n,求,i从1到n的和

// 第一题&#xff0c;输入整数n&#xff0c;求&#xff0c;i从1到n的和 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() {int n 0;printf("请输入一个整数n:");scanf("%d", &n);int i 0;int j 0;for (j 1; j < n; j){i…

频率限制:WAF保护网站免受恶意攻击的关键功能

频率限制&#xff08;Rate Limiting&#xff09;是一项有效的安全措施&#xff0c;用于控制每个 IP 地址的访问速率&#xff0c;以防止恶意用户利用大量请求对网站进行攻击&#xff0c;例如防止 CC 攻击等。频率限制不仅能保护网站资源&#xff0c;还能提升服务的稳定性。 下面…

C++基础: string(3)

文章目录 1. 两道题目1. [387. 字符串中的第一个唯一字符 - 力扣&#xff08;LeetCode&#xff09;](https://leetcode.cn/problems/first-unique-character-in-a-string/description/)2.[415. 字符串相加 - 力扣&#xff08;LeetCode&#xff09;](https://leetcode.cn/proble…

建设NFS服务器并实现文件共享

关闭防火墙和s0 systemctl stop firewalld setenforce 0 安装NFS yum install nfs-utils -y 新建共享目录并设置权限 echo "hello" > /nfs/shared/test1 chmod -Rf 777 /nfs/shared/ 配置服务端的NFS配置文件 vim /etc/exports /nfs/shared *(ro) 启动…

【Java】方法的使用 —— 语法要求、方法的重载和签名、方法递归

目录 1. 方法基础知识 1.1 方法的概念 1.2 语法格式 * 注意事项【与C不同】 1.3 return —— 返回值的严格检查【比C语言严格】 2. 形参与实参的关系 3. 方法重载 3.1 什么是方法重载&#xff1f;为什么要方法重载&#xff1f; 3.2 方法重载的规则 4. 方法签名 5. 递…

Chrome和Firefox如何保护用户的浏览数据

在当今数字化时代&#xff0c;保护用户的浏览数据变得尤为重要。浏览器作为我们日常上网的主要工具&#xff0c;其安全性直接关系到个人信息的保密性。本文将详细介绍Chrome和Firefox这两款主流浏览器如何通过一系列功能来保护用户的浏览数据。&#xff08;本文由https://chrom…