学习和分析各种数据结构所要掌握的一个重要知识——CPU的缓存利用率(命中率)

ops/2024/10/21 19:46:43/

什么是CPU缓存利用率(命中率),我们首先要把内存搞清楚。

硬盘是什么,内存是什么,高速缓存是什么,寄存器又是什么?

我们要储存数据就要运用到上面的东西。首先里面的硬盘是可以无电存储的,而后面的内存、缓存、寄存器都是有电存储的。无电存储就是不需要通电,有电就是需要持续通电才能将我们的数据存储到对应的存储器上面。

但是我们的从硬盘里面读取数据时间就相对较慢,但是我们从内存里面读取就相对较快一些,其次是缓存,再是寄存器。

因为我们CPU的算率是十分快的,一秒是亿的单位级。如果我们直接让CPU从硬盘里面找要计算的东西,肯定就不行的。相当于我们长跑的时候停下来去场外取一杯水一样慢。所以我们要把水放“近”一点,所以我们的是CPU从内存里面取数据的吗?也不是,还是比较慢,所以我们还有一个叫高速缓存的东西。CPU就从高速缓存里面取我们要的数据。

如果CPU在缓存里面找到了需要的数据,就叫缓存命中,那么就直接拿取这个数据;如果我们的CPU在缓存里面没有找到所需要的数据,就叫缓存不命中,那么就要从内存里面加载相应的数据。具体加载会只调用一个,它是调用连续一段的内存,将其全部加载过去。而这个加载的长度。而加载与CPU的字长(地址线的数量)有关,现在CPU字长一般是32位或者64位。

例如有一个数组:

那么不会只加载1,而是可能将10111001所有的全部加载到高速缓存里面。然后我们的CPU会读取第一个数据,如果命中了就继续往下一个高速缓存位置进行读取。如果没有命中就重复上述操作。

缓存命中率(利用率)

那么CPU的缓存命中率/利用率就是这个。当加载一组的数据然后进行读取时,如果是数组,那么它的缓存命中率就会很高,因为它的内存是连续的,加载到高速缓存上面也是连续的,所以第一个数据命中后,后面的数据会继续命中。但是如果是链表的话,它的内存是分散的,那么就会出现第一个内存命中了,但是后续的内存不会命中的情况,那么我们就要进行多次的内存加载。那么时间就会大打折扣。

这里提一下寄存器,寄存器的内存很小,一般只能存储一个数据,用来对一个数据进行操作。例如我们返回函数值就是返回寄存器里面的值,我们进行数据的加减也是基于寄存器的。它和CPU之间的读取速率是最快的。


http://www.ppmy.cn/ops/37097.html

相关文章

AI模型:windows本地运行下载安装ollama运行Google CodeGemma可离线运行数据模型【自留记录】

AI模型:windows本地运行下载安装ollama运行Google CodeGemma可离线运行数据模型【自留记录】 CodeGemma 没法直接运行,需要中间软件。下载安装ollama后,使用ollama运行CodeGemma。 类似 前端本地需要安装 node.js 才可能跑vue、react项目 1…

js宏任务微任务输出解析

第一种情况 setTimeout(function () {console.log(setTimeout 1) //11 宏任务new Promise(function (resolve) {console.log(promise 1) //12 同步函数resolve()}).then(function () {console.log(promise then) //13 微任务})})async function async1() {console.log(async1 s…

6.移除元素

文章目录 题目简介题目解答解法一:双指针代码:复杂度分析: 解法二:双指针优化代码:复杂度分析: 题目链接 大家好,我是晓星航。今天为大家带来的是 相关的讲解!😀 题目简…

短视频矩阵系统ai剪辑 矩阵 文案 无人直播四合一功能核心独家源头saas开发

抖去推矩阵AI小程序是一款针对短视频平台的智能创作和运营工具,它具有以下功能特点: 1.批量视频生成:抖去推可以在短时间内生成大量视频,帮助商家快速制作出适合在短视频平台上推广的内容 2.全行业覆盖:适用于多个行业…

关于YOLO8学习(六)安卓部署ncnn模型--图片检测

前文 关于YOLO8学习(一)环境搭建,官方检测模型部署到手机 关于YOLO8学习(二)数据集收集,处理 关于YOLO8学习(三)训练自定义的数据集 关于YOLO8学习(四)模型转换为ncnn 关于YOLO8学习(五)安卓部署ncnn模型–视频检测 简介 前文第五章,讲述了部署自定义模型后,进…

matlab

图像配准: %手动选择执行图片(由于程序为分开,此处保存的mat文件为图MRI6的信息,所以请选择图MRI6) [filename,pathname]uigetfile({*.jpg;*.bmp;*.tif;*.png;*.gif,All Image Files;*.*,All Files}); image imread([pathname,filename]); …

vue2 webpack-dev-server Unknown promise rejection reason

在vue.config.js中添加如下配置,重启项目即可 module.exports defineConfig({devServer: {client: {overlay: false,},} })参考

tensorrt,tensorrtllm优化原理

tensorrt 1.算子融合 水平融合,垂直融合,删除冗余 计算图优化的目标是对计算图进行等价的组合变换,使得减少算子的读写操作提供效率。模型中有很多层,在部署模型推理时,每一层的运算操作都是由GPU完成的,但…