【机器学习智能硬件开发全解】(四)—— 政安晨:嵌入式系统基本素养【后摩尔时代】

随着物联网、大数据、人工智能时代的到来,海量的数据分析、大量复杂的运算对CPU的算力要求越来越高。

CPU内部的大部分资源用于缓存和逻辑控制,适合运行具有分支跳转、逻辑复杂、数据结构不规则、递归等特点的串行程序。

在集成电路工艺制程将要达到极限,摩尔定律快要失效的背景下,无论是单核CPU,还是多核CPU,处理器性能的提升空间都已经快达到极限了。

适用于大数据分析、海量计算的计算机新型架构——异构计算,逐渐成为目前的研究热点。

所以,后摩尔时代被认为是在摩尔定律失效或逐渐失去影响力的基础上出现的摩尔定律是指集成电路上可容纳的晶体管数量每两年翻一番,这一规律被认为是现代计算机和信息技术发展的驱动力。

后摩尔时代的特点包括

  1. 技术进步的速度放缓摩尔定律的失效意味着集成电路的性能提升速度减缓,传统的硬件技术逐渐接近物理极限。

  2. 新兴技术的崛起随着摩尔定律的失效,新兴技术如人工智能、量子计算、生物技术等在后摩尔时代得到了快速发展,并成为经济增长的新动力。

  3. 数据的重要性在后摩尔时代,数据成为了最重要的资源和驱动力,数据分析、人工智能等技术的发展成为企业竞争的核心。

  4. 社会变革后摩尔时代还带来了社会结构和价值观的变革,例如劳动力市场的变化、数字化生活的兴起等。

虽然后摩尔时代的具体定义和影响仍在不断演变和讨论中,但它标志着新技术和经济格局的到来,对社会和经济发展具有深远的影响。


政安晨的个人主页政安晨

欢迎 👍点赞✍评论⭐收藏

收录专栏: 机器学习智能硬件开发全解

希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正!



什么是异构计算

简单点理解,异构计算就是在SoC芯片内部集成不同架构的Core,如DSP、GPU、NPU、TPU等不同架构的处理单元,各个核心协同运算,让整个SoC性能得到充分发挥。

在异构计算机系统中,CPU像一个大脑,适合处理分支、跳转等复杂逻辑的程序;

GPU头脑简单,但四肢发达,擅长处理图片、视频数据;

而在人工智能领域,则是NPU和FPGA的战场。

大家在一个SoC系统芯片内发挥各自专长,多兵种协同作战,让处理器的整体性能得到更大地提升。

GPU

GPU(Graphic Process Unit,图形处理单元)主要用来处理图像数据。

玩过吃鸡或3D游戏的朋友可能都知道,个人计算机上不配置一块大容量的显卡,这些游戏根本玩不了。

显卡是显式接口卡的简称,计算机联网需要网卡,计算机显示则需要显卡。

显卡将数字图像信号转换为模拟信号,并输出到屏幕上。

早期的计算机比较简单,都是简单的文本显示,显卡都是直接集成到主板上,只充当适配器的角色,即只具备图形信号转换和输出的功能,对于一些简单的图像处理,CPU就能轻松应付,不需要显卡的参与。

随着大型3D游戏、制图、视频渲染等软件的流行,计算机对图像数据的计算量成倍增加,CPU已经越来越力不从心,独立显卡开始承担图像处理和视频渲染的工作。

GPU是显卡电路板上的芯片,主要用来进行图像处理、视频渲染。

GPU虽然是为图像处理设计的,但如果你认为它只能进行图像处理就大错特错了。GPU在浮点运算、大数据处理、密码破解、人工智能等领域都是一把好手,比CPU更适合做大规模并行的数据运算。“没有金刚钻,不揽瓷器活,打铁还需自身硬”,如下图所示,GPU比CPU强悍的地方在于其自身架构。

CPU与GPU的架构对比

CPU有强大的ALU、复杂的控制单元,再配上分支预测、流水线、Cache、多发射,单核的功能可以做得很强大,特别擅长处理各种复杂的逻辑程序,如跳转分支、循环结构等。

但CPU的局限是,由于软件本身不可能无限拆分为并行执行,导致CPU的核数也不可能无限增加,而且在一个单核中Cache和控制单元电路就占了很大一部分芯片面积,也不可能集成太多的ALU。

后续的处理器虽然扩充了SIMD指令集,通过数据并行来提高处理器的性能,但面对日益复杂的图形处理和海量数据也是越来越力不从心。

GPU也是一种SIMD结构,但和CPU不同的是,它没有复杂的控制单元和Cache,却集成了几千个,甚至上万个计算核心。正可谓“双拳难敌四手,恶虎也怕群狼”,GPU天然多线程,特别适合大数据并行处理,在现在的计算机中被广泛使用。

在个人计算机上GPU一般以独立显卡的形式插到主板上,跟CPU一起协同工作;

在手机处理器里GPU一般以IP的形式集成到SoC芯片内部。

DSP

DSP(Digital Signal Processing,数字信号处理器),主要用在音频信号处理和通信领域

相比CPU,DSP有三个优势:

一是DSP采用哈弗架构,指令和数据独立存储,并行存取,执行效率更高。

二是DSP对指令的优化,提高了对信号的处理效率,DSP有专门的硬件乘法器,可以在一个时钟周期内完成乘法运算。为了提高对信号的实时处理,DSP增加了很多单周期指令,如单周期乘加指令、逆序加减指令、块重复指令等。

第三个优势是,DSP是专门针对信号处理、乘法、FFT运算做了优化的ASIC电路,相比CPU、GPU这些通用处理器,没有冗余的逻辑电路,功耗可以做得更小。

DSP主要应用在音频信号处理和通信领域,如手机的基带信号处理,就是使用DSP处理的。

DSP的缺陷是只适合做大量重复运算,无法像CPU那样提供一个通用的平台,DSP处理器虽然有自己的指令集和C语言编译器,但对操作系统的支持一般。

目前DSP市场被严重蚕食,在高速信号采集处理领域被FPGA抢去一部分市场,目前大多数以协处理器的形式与ARM协同工作。

FPGA

FPGA(Field Programmable Gate Array,现场可编程门阵列)在专用集成电路(Application Specific Integrated Circuit,ASIC)领域中是以一种半定制电路的形式出现的

FPGA既解决了定制电路的不足,又克服了原有可编程逻辑器件(Programmable Logic Device,PLD)门电路有限的局限。

FPGA芯片内部集成了大量的逻辑门电路和存储器,用户可以通过VHDL、Verilog甚至高级语言编写代码来描述它们之间的连线,将这些连线配置文件写入芯片内部,就可以构成具有特定功能的电路。

FPGA不依赖冯·诺依曼体系结构,也不要编译器编译指令,它直接将硬件描述语言翻译为晶体管门电路的组合,实现特定的算法和功能。

FPGA剔除了CPU、GPU等通用处理器的冗余逻辑电路,电路结构更加简单直接,处理速度更快,在数据并行处理方面最具优势。

可编程逻辑器件通过配套的集成开发工具,可以随时修改代码,下载到芯片内部,重新连线生成新的功能。正是因为这种特性,FPGA在数字芯片验证、ASIC设计的前期验证、人工智能领域广受欢迎。

FPGA一般和CPU结合使用、协同工作。

以高速信号采集和处理为例,如下图所示(ARM处理器与FPGA协同工作):

CPU负责采集模拟信号,通过A/D转换,将模拟信号转换成数字信号;然后将数字信号送到FPGA进行处理

FPGA依靠自身硬件电路的性能优势,对数字信号进行快速处理

最后将处理结果发送回CPU处理器,以便CPU做进一步的后续处理。

在嵌入式开发中,为了更方便地控制FPGA工作,可以将ARM核和FPGA集成到一块。

一种集成方式是在FPGA芯片内部集成一个ARM核,在上面运行操作系统和应用程序,这种FPGA芯片也被称为FPGA SoC。

另一种集成方式是将FPGA以一个IP的形式集成到ARM SoC芯片内,实现异构计算。这种嵌入式SoC芯片上的FPGA,一般也称为eFPGA,可以根据系统的需求配置成不同的模块,使用更加灵活。

FPGA与DSP相比,开发更具有灵活性,但成本也随之上升,上手也比较难,因此主要用在一些军事设备、高端电子设备、高速信号采集和图像处理领域。

TPU

TPU(Tensor Processing Unit,张量处理器)是Google公司为提高深层网络的运算能力而专门研发的一款ASIC芯片。为了满足人工智能的算力需求,如下图所示:

TPU内部各模块占用芯片面积比例

TPU的设计架构和CPU、GPU相比更加激进:TPU砍去了分支预测、Cache、多线程等逻辑器件,在省下的芯片面积里集成了6万多个矩阵乘法单元(Matrix Multiply Unit)和24MB的片上内存SRAM作为缓存。

核数越多,运算单元越多,内存的数据存取就越容易成为瓶颈。

TPU使用双通道内存将内存带宽提升至2倍,内部集成了24MB大小的片上内存SRAM作为统一缓冲区,来减少内存读写次数。4096个累加器虽然是寄存器,但本质上也是一种缓存,用来缓存计算产生的中间结果,不需要每次都将计算结果写回内存再读回来,进一步减少了内存带宽瓶颈,从而让TPU的计算能力彻底释放,并行计算能力相比CPU可以提升至少30倍。

TPU如果使用GPU的GDDR5内存提升内存带宽,算力会进一步提升到GPU的70倍、CPU的200倍。

在同构处理器时代,我们一般使用主频来衡量一个处理器的性能。而到了异构处理器时代,随着人工智能、大数据、多媒体编解码对海量数据的计算需求,我们一般使用浮点运算能力来衡量一个处理器的性能。

每秒浮点运算次数(Floating Point Operations Per Second,FLOPS),又称为每秒峰值速度。浮点运算在科研领域大量使用,现在的CPU除了支持整数运算,一般还支持浮点运算,有专门的浮点运算单元,FLOPS测量的就是处理器的浮点运算能力。

FLOPS的计算公式如下:

浮点运算能力=处理器核数×每周期浮点运算次数×处理器主频

除了FLOPS,还有MFLOPS、GFLOPS、TFLOPS、PFLOPS、EFLOPS等单位,它们之间的换算关系如下:

1946年,世界上第一台通用计算机诞生于美国宾夕法尼亚大学,运算速度为300FLOPS。

早期树莓派使用的博通CM2708 ARM11处理器,主频为1GHz,运算速度为316.56MFLOPS。2011年发射的“好奇号”火星探测器,使用的是IBM的PowerPC架构的处理器,主频为200MHz,运算速度相当于Intel 80386处理器的水平,差不多在0.4GFLOPS。

Intel的Core-i5-4210U处理器运算速度为36GFLOPS,Microsoft Xbox 360运算速度为240GFLOS,ARM Mali-T760 GPU主频600MHz,运算速度为326GFLOPS,NVIDIA GeForce 840M运算速度为700GFLOPS,相当于0.7TFLOPS。

NVIDIA Tesla V100显卡,运算速度为125TFLOPS,是世界上第一个使用量突破100万亿次的深度学习GPU。

2008年,中国第一台闯入世界前10的超级计算机——中国“曙光”5000A超级计算机,计算速度为230TFLOPS,相当于0.23PFLOPS。

我国首台千万亿次的“天河一号”超级计算机运算速度为2.566PFLOPS,美国橡树岭国家实验室的“泰坦”超级计算机算力为17.59PFLOPS,“天河二号”超级计算机的运算速度为33.86PFLOPS,连续多年登顶的无锡“神威·太湖之光”超级计算机的运算速度为93.01PFLOPS,IBM设计的Summit超级计算机,运算速度为154.5PFLOPS,前些年日本的富岳超级计算机,采用ARM架构,算力达到了415.53PFLOPS,相当于0.415EFLOPS。

作者政安晨列出这些例子的目的是为了让大家理解这些算力单位。(算力、算法、数据 —— 人工智能时代三要素

因为功耗问题,TPU和显卡、AI芯片主要应用在各种服务器、云端、超级计算机上。

接下来要介绍的NPU,则以较高的性价比、性能功耗比优势在目前的手机处理器中得到了广泛应用。

NPU

NPU(Neural Network Processing Unit,神经网络处理器)是面向人工智能领域,基于神经网络算法,进行硬件加速的处理器统称。NPU使用电路来模拟人类的神经元和突触结构,用自己指令集中的专有指令直接处理大规模的神经元和突触。

人类的大脑褶皱皮层大约有300亿个神经元,如下图所示:

典型的神经元结构

每一个神经元都可以通过突触与其他神经元进行连接,不同的连接方式构成了每个人不同的记忆、情感、技能和主观经验。人与人之间的根本差别在于大脑皮层中不同神经元的连接方式,连接越多越强,人的记忆和技能就越好。
 

刚出生的婴儿除了哭和吸奶头,什么都不会,大脑还处于待开发状态,神经元之间的连接较少。

如果我们想让婴儿识别什么是苹果、什么是橘子,就要反复不停地去教他、去训练他。当婴儿看到苹果,并被告知这是一个苹果时,大脑皮层中对红色敏感的神经元就会和对“苹果”这个声音敏感的神经元建立配对、连接和关联。

通过反复不断地训练,这种连接就会加强;当这种连接加强到一定程度,婴儿再看到苹果时,通过这种突触关联,就会想到“苹果”的发音,然后通过其他连接,就可以控制嘴巴发音了:“苹果”。恭喜,你家的宝宝会认苹果了!这种连接在大脑中会不断加强、稳定,最终和其他神经元连接在一起。大脑在婴儿2~3岁的发育过程中会逐渐网络化,这个年龄也是婴儿学习的黄金期。

神经元就像26个英文字母一样,通过不同的组合和连接就构成了心理图像的物体和行为,就好像字母可以组成一个满是单词的词典一样。什么是心理图像呢,黑暗中你盯着手机屏幕,然后闭上眼,手机屏幕在视网膜上的短暂停留就类似心理图像。能力越强、记忆越好的人对于某一个事物构建的心理图像就越细腻。心理图像可以通过更多的神经突触串联在一起,组成任意数量的关联顺序(特别是做梦时),进而形成世界观、情绪、性格及行为习惯。这就好像单词可以组成各种无限可能的句子、段落和章节一样。人的学习和记忆过程,其实就是大脑皮层的神经元之间不断建立连接和关联的过程。随着连接不断加强,你对某项技能的掌握也就越来越熟练、越来越精通。如下图所示,不同的神经元之间、心理图像之间互相关联,构成了一个巨大的神经网络。

由神经元构成的神经网络

ANN(Artificial Neural Network,人工神经网络),顾名思义,就是使用计算机程序来模拟大脑的神经网络

ANN的本质是数据结构,对于特定的AI算法、AI模型而言,它的厉害之处在于它是一个通用的模型,像婴儿的大脑一样,可以学习任何东西,如说话、唱歌、作曲、聊天、下棋、绘画、图形识别。

如下图所示(ANN):

典型的ANN由数千个互连的人工神经元组成,它们按顺序堆叠在一起,构成一个层,然后以层的形式形成数百万个连接。ANN与大脑的不同之处在于,在很多情况下,每一层仅通过输入和输出接口,与它们之前和之后的神经元层互连,而大脑的互连是全方位的,神经元之间可以任意连接。

我们教婴儿认识苹果,可以通过各种各样的苹果(大的、小的、各种颜色的)来训练婴儿。

同样的道理,我们训练ANN,也是通过向其输入大量的标签数据,帮助它学习如何分析和解读数据、找出规律、输出分析结果。

2012年,人工智能科学家吴恩达教授通过对人工智能进行训练,成功地让神经网络识别了猫。在吴教授的实验里,输入数据是一千万张视频中的图像。吴教授的突破在于:将这些神经网络的层数扩展了很多,而不是简单的4层,神经元也非常多。吴教授把这次实验定义为深度学习(Deep Learning),这里的深度指神经网络变得更加复杂,有了更多的层。

经过深度学习训练的神经网络,在图像识别方面甚至比人类做得更好,识别正确率达到99%。

使用ANN的两个重要工作是训练和推理。

训练需要巨大的计算量,一般会放到云上服务器进行,训练完毕后,再去结合具体问题做应用——推理。

在云上训练神经网络也有弊端一是贵,二是对网络的依赖性高。

例如汽车自动驾驶,当汽车钻入山洞、隧道等无线网络信号不太好的地方,就可能断网、有延迟,这就给汽车自动驾驶带来了安全隐患。现在我们可以把一些训练工作放到汽车本地进行,这就是边缘计算的概念。边缘计算指在靠近物或数据源头的一侧,采用网络、计算、存储、应用为一体的开发平台,就近提供最近端服务。其应用程序在边缘侧发起,可以产生更快的网络服务响应,以满足实时、安全与隐私保护方面的业务需求。

处理器通过集成支持AI运算的NPU,就可以更加方便地支持本地的边缘计算。

深度学习的基本操作是神经元和突触的处理,传统的CPU(无论是X86还是ARM)只会基本的算术操作(加、减、乘)和逻辑操作(与、或、非),完成一个神经元的处理往往需要上千条的指令,效率很低。而NPU一条指令就可以完成一组神经元的处理,并对神经元和突触数据在芯片上的传输提供一系列专门的优化和支持,从而在算力性能上比CPU提高成百上千倍。

NPU可以单独设计为一款ASIC芯片,也可以以IP的形式集成到ARM的SoC芯片中。目前市场上有很多这方面的公司,如寒武纪、IBM、华为等。ARM公司也发布了自己的微神经网络内核,可以和自己的ARM处理器结合使用。

如下图所示:

SoC处理器中的NPU

Ethos-U55是ARM公司发布的一种小型NPU,可以与Cortex-M系列处理器搭配使用。从官方公开的资料上可以看到,Ethos-U55具有可配置的矩阵乘法单元,支持CNN和RNN,NPU内部的SRAM可以配置的大小范围为18~50KB,而SoC芯片上SRAM可以扩充到MB级别。

NPU和CPU协同工作流程如图所示:

NPU与CPU协同工作

Cortex-M55通过APB接口的寄存器配置启动Ethos-U55开始工作,Ethos-U55接着就会从NVM Flash存储器上读取神经元指令,并进行处理。处理结束后,Ethos-U55再通过IRQ中断的形式向CPU报告,CPU根据处理结果做出相应的操作即可。

结论

后摩尔时代,伴随着AI和物联网技术的发展,百家争鸣,群雄并起,涌现出越来越多的芯片玩家。不同的玩家根据实际市场需求,将通用处理器与各种创新的处理单元(各种XPU)进行融合,来应对大数据时代不同类型的海量数据处理需求。

不同的运算单元各有自己的编程模型、指令集甚至存储空间,在一个芯片内,如何让各个运算单元协同工作,如何高效互连以减少通信延迟和开销,如何发挥出芯片的最大性能,成为NoC最近几年的研究热点。

也许未来有一天,随着传统计算机架构向异构计算方向不断迭代和演进,软硬件生态将发生颠覆性变革,是否有统一的编程框架和标准出来,让我们拭目以待吧。


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PgSQL技术内幕 - 优化器如何估算行数

PgSQL技术内幕 - 优化器如何估算行数 PgSQL优化器根据统计信息估算执行计划路径的代价,从而选择出最优的执行计划。而这些统计信息来自pg_statistic,当然这个系统表是由ANALYZE或者VACUUM进行样本采集而来。关于该系统表的介绍详见:PgSQL技术…

水泵房远程监控物联网系统

随着物联网技术的快速发展,越来越多的行业开始利用物联网技术实现设备的远程监控与管理。水泵房作为城市供水系统的重要组成部分,其运行状态的监控与管理至关重要。HiWoo Cloud作为专业的物联网云服务平台,为水泵房远程监控提供了高效、稳定、…

2.1HTML5基本结构

HTML5实际上不算是一种编程语言&#xff0c;而是一种标记语言。HTML5文件是由一系列成对出现的元素标签嵌套组合而成&#xff0c;这些标签以<元素名>的形式出现&#xff0c;用于标记文本内容的含义。浏览器通过元素标签解析文本内容并将结果显示在网页上&#xff0c;而元…

基于centos7的k8s最新版v1.29.2安装教程

k8s概述 Kubernetes 是一个可移植、可扩展的开源平台&#xff0c;用于管理容器化的工作负载和服务&#xff0c;可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态&#xff0c;其服务、支持和工具的使用范围相当广泛。 Kubernetes 这个名字源于希腊语&…

CentOS无法解析部分网站(域名)

我正在安装helm软件&#xff0c;参考官方文档&#xff0c;要求下载 get-helm-3 这个文件。 但是我执行该条命令后&#xff0c;报错 连接被拒绝&#xff1a; curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 # curl: (7) Fai…

深入探索Java中的MarkWord与锁优化机制——无锁、偏向锁、自旋锁、重量级锁

引言 在Java并发编程领域&#xff0c;有效管理对共享资源的访问显得尤为关键。为了保障线程安全&#xff0c;Java虚拟机&#xff08;JVM&#xff09;引入了一系列精妙的锁机制&#xff0c;这其中的核心概念就是Java对象头中的MarkWord。本文将详尽解析MarkWord的作用&#xff…

基于Centos7部署OceanBase4.2版本单副本集群

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

1.绪论

目录 1.1 Web原理基础 1.1.1 Internet与万维网 1.1.2 Web架构 1.2 Web前端技术基础 1.2.1 HTML技术 1.2.2 CSS技术 1.2.3 JavaScript技术 1.3 Web前端新技术 1.3.1 HTML5技术 1.3.2 CSS3技术 1.3.3 jQuery技术 1.4 Web开发工具 1.1 Web原理基础 1.1.1 Internet与万…

Java实现PDF文字内容识别,结合OCR实现PDF图片实现

使用插件&#xff1a;UMI-OCR、PDFBOX 实现思路&#xff1a;通过PDFBOX识别PDF文字&#xff0c;如果是图片&#xff0c;则识别不出来&#xff0c;再调用OCR进行识别返回文字&#xff1b;OCR识别较慢&#xff0c;长图识别不出来&#xff0c;目前HTTP方式只支持图片格式&#xf…

2024年【流动式起重机司机】考试题及流动式起重机司机模拟考试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 流动式起重机司机考试题参考答案及流动式起重机司机考试试题解析是安全生产模拟考试一点通题库老师及流动式起重机司机操作证已考过的学员汇总&#xff0c;相对有效帮助流动式起重机司机模拟考试题学员顺利通过考试。…

008:安装Docker

安装Docker 如果不太熟悉Linux命令&#xff0c;不想学习Linux命令&#xff0c;可以直接看文末NAS面板章节&#xff0c;通过面板&#xff0c;像使用Window一样操作NAS。 一、安装 Docker 1.安装 Docker wget -qO- https://get.docker.com/ | sh2.启动 Docker 服务 sudo sys…

Ubuntu系统的安装及基础操作

目录 一、VMware虚拟机安装Ubuntu20.04过程 1、安装前的准备工作 2、VMware虚拟机创建Ubuntu操作系统 步骤一&#xff1a;以管理员的身份运行VMware虚拟机 步骤二&#xff1a;新建虚拟机 步骤三&#xff1a;选择类型配置 步骤四&#xff1a;选择安装客户机操作系统 步骤…

100W-150W电阻器-TO-247模压厚膜电阻(1)

EAK封装的TO-247功率电阻器为设计工程师提供稳定的晶体管式封装的大功率电阻器件&#xff0c;功率为100W-150W。这些电阻器专为需要精度和稳定性的应用而设计。该电阻器采用氧化铝陶瓷层设计&#xff0c;可将电阻元件和安装片分开。 EAK模压TO-247厚膜功率电阻器 这种结构提供了…

蓝桥杯刷题|02入门真题

[蓝桥杯 2022 省 B] 刷题统计 题目描述 小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做 a 道题目&#xff0c;周六和周日每天做 b 道题目。请你帮小明计算&#xff0c;按照计划他将在第几天实现做题数大于等于 n 题? 输入格式 输入一行包含三个整数…

react04- mvc 、 mvvm

MVC与MVVM stackoverflow论坛网站 react前端框架 使用框架前&#xff1a; 操作dom > js获取dom元素&#xff0c;事件侦听&#xff0c;修改数据&#xff0c;设置样式。。。 操作dom问题: 直接操作dom&#xff0c;会造成大量的回流、重绘&#xff0c;消耗大量性能操作起来也…

物联网终端telegraf采集设备信息

背景 低功耗设备上资源有限&#xff0c;但又比较重要。对其的管理难度很大&#xff0c;有些时候又必须时刻了解其运行状况。我们自然想到的是能否有办法监控它呢&#xff1f;当时是有的&#xff01;而且很成熟的解决方案。TICK技术栈&#xff0c;那TICK是什么呢&#xff1f; TI…

云仓酒庄2024年培训专业化:强化销售与品酒技能,酒业新动态

云仓酒庄2024年培训专业化&#xff1a;强化销售与品酒技能&#xff0c;共筑酒业新动态 在风云变幻的市场竞争中&#xff0c;云仓酒庄始终秉持着创新、进取的理念&#xff0c;不断探索与实践&#xff0c;以推动酒业行业的持续健康发展。2024年&#xff0c;云仓酒庄在培训专业化…

SpringBoot(自定义转换器+处理Json+内容协商)

文章目录 1.自定义转换器1.代码实例1.save.html2.编写两个bean1.Car.java2.Monster.java 3.WebConfig.java 配置类来自定义转换器4.测试 2.注意事项和细节1.debug查看转换器总数1.打断点2.执行到断点后&#xff0c;选左边的1923.可以看出&#xff0c;加上自定义的转换器一共125…

Day63:WEB攻防-JS应用算法逆向三重断点调试调用堆栈BP插件发包安全结合

目录 前置知识 JS调试分析 JS分析调试结合Burp JS分析调试知识点&#xff1a; 1、JavaScript-作用域&调用堆栈 2、JavaScript-断点调试&全局搜索 3、JavaScript-Burp算法模块使用 前置知识 JS加密数据走向 浏览器调试 1、作用域&#xff1a;&#xff08;本地&全…

论文阅读——RingMo

RingMo: A Remote Sensing Foundation Model With Masked Image Modeling 与自然场景相比&#xff0c;RS图像存在以下困难。 1&#xff09;分辨率和方位范围大&#xff1a;受遥感传感器的影响&#xff0c;图像具有多种空间分辨率。此外&#xff0c;与自然图像的实例通常由于重…