一种让CPU速度提升两倍,能耗降低72%的新方法

简介: 一种让CPU速度提升两倍,能耗降低72%的新方法 有一种管理CPU快速存取内存的新流程,使速度提升了两倍之多,耗能减少高达72%。据这种流程的设计师称,实现这类卓越成果需要改变计算机中控制这一关键内存的部件:直接布线至CPU电路进行控制若交由操作系统处理,速度就可大幅提升。

一种让CPU速度提升两倍,能耗降低72%的新方法

有一种管理CPU快速存取内存的新流程,使速度提升了两倍之多,耗能减少高达72%。据这种流程的设计师称,实现这类卓越成果需要改变计算机中控制这一关键内存的部件:直接布线至CPU电路进行控制若交由操作系统处理,速度就可大幅提升。

CPU将高速内存缓存作为一种数字暂存区域。缓存主要是保存CPU可能很快用到的指令或是需要处理的数据,是CPU的工作台。从智能手机到服务器,几乎每一个CPU都是用其电路中内置的算法管理进出缓存的比特流的。

但是麻省理工学院的两位研究人员说,随着计算机和便携设备的内存和CPU核数不断增多,完全由CPU来管理缓存也越来越不现实。他们说,操作系统最好能分担这项工作。

这种想法本身并不是全新的概念。在IBM的一些Cell处理器以及索尼的PlayStation 3(基于Cell技术)中,应用程序和操作系统内核就参与了低级CPU内存管理。麻省理工学院的Jigsaw技术的特别之处在于其中立的方法,软件无需太多控制便能配置芯片上的一些内存缓存,从而避免编程成为内存管理的噩梦。

麻省理工学院计算机科学及人工智能实验室助理教授、Jigsaw发明者之一丹尼尔•桑切斯(Daniel Sanchez)说:“几年前,人人都在抱怨,说虽然推出了PlayStation 3,但没有人能把程序编好。”

通常由CPU硬件控制所有的芯片缓存,但这些缓存必须承担任何一项能想象到的工作,从单纯的浮点数运算(对缓存而言是一个小负担)到计算机存储器组的密集搜索和查询(可能会超越它们的极限)。此外,CPU对其所开展的工作类型并无深刻的认识。这意味着利用与图谱搜索(对存储数据之间关系进行的占用内存的搜索)一样的缓存资源就可进行自成一体、包含复杂方程式的数值模拟,几乎不需要访问内存。

因此桑切斯和他的研究生南森•贝克曼(Nathan Beckmann)想,为什么不让操作系统减小缓存规模,进行纯计算,并扩充其设置进行图谱搜索呢?

他们说,第一步是将CPU占用空间的约1%分给一个可实时监控每个核心中缓存活动的简单硬件。有了硬件缓存监视器,Jigsaw就具备了充当CPU缓存空中交通管制员所需的独立监视能力。

桑切斯和贝克曼说,然后最多需要给操作系统内核再增加几千行代码即可。考虑到之前Linux内核提供了1500万行代码,而非官方的数字称,苹果和微软的内核则比这个数字还多几千万行,所以增加几千行并不多。

桑切斯说,Jigsaw其中一个更为突出的特别之处是嵌入操作系统的一个软件模块,研究人员称其为Peekahead。这种模块是根据十多年前北京的计算机科学家们开发的Lookahead缓存改造而成的。Peekahead能预测内核在未来时钟周期内要进行的工作,据此计算最佳CPU缓存配置。

桑切斯说:“如果交由软件管理,那么就必须要注意开销了。”他说设计不当的缓存管理系统可能会将缓存缩小到最佳规模,每秒重复多次,但这样会给CPU造成负担。需要大量CPU时间的CPU效率算法的意义何在?他说:“精确解非常昂贵。所以我们必须找到一个快速完成工作的方法,以保证开销不会超过收益。”

总部位于加利福尼亚山景城的半导体咨询公司林利集团的林利•格温耐普(Linley Gwennap)说,他对Jigsaw印象深刻,但要注意晶圆厂还未完全作好准备。“一般来说,问题是,在一种处理器上奏效的方案,在另一种具有不同硬件设计的处理器上可能不起作用。”他说道,“处理器一有变化,就不得不重新设计软件,客户们对此不太喜欢。”

桑切斯反驳说,软件应用和实用程序不会受到Jigsaw的影响。他说:“只有操作系统代码需要熟悉硬件知识,如缓存不同部分的拓扑结构。”

密歇根大学计算机科学助理教授杰森•玛尔斯(Jason Mars)说,作为概念验证手段,Jigsaw很有效,但他说芯片制造商在他们认为适当之处可能进行调整。

“这项工作的奇妙之处与软硬件之间的协同设计有关。”玛尔斯说,“以往的大部分工作都偏向一个方向。预期在硬件中完成的工作较多,相对灵活性较少。Jigsaw确实创建了一套涵盖了硬件和软件的全面体系。”

原文发布时间为:2018-06-7

本文来自云栖社区合作伙伴“半导体行业观察”,了解相关信息可以关注“半导体行业观察”。

相关文章
|
3月前
|
存储 监控
【Azure Cloud Service】在Azure云服务中收集CPU监控指标和IIS进程的DUMP方法
在使用Cloud Service服务时,发现服务的CPU占用很高,在业务请求并不大的情况下,需要直到到底是什么进程占用了大量的CPU资源,已经如何获取IIS进程(w3wp.exe)的DUMP文件?
|
4月前
|
数据安全/隐私保护 异构计算 Windows
【Azure 环境】 介绍两种常规的方法来监视Window系统的CPU高时的进程信息: Performance Monitor 和 Powershell Get-Counter
【Azure 环境】 介绍两种常规的方法来监视Window系统的CPU高时的进程信息: Performance Monitor 和 Powershell Get-Counter
|
5月前
|
机器学习/深度学习 计算机视觉 网络架构
【YOLOv8改进- Backbone主干】YOLOv8 更换主干网络之 PP-LCNet,轻量级CPU卷积神经网络,降低参数量
YOLO目标检测专栏介绍了PP-LCNet,一种基于MKLDNN加速的轻量级CPU网络,提升了模型在多任务中的性能。PP-LCNet利用H-Swish、大核卷积、SE模块和全局平均池化后的全连接层,实现低延迟下的高准确性。代码和预训练模型可在PaddlePaddle的PaddleClas找到。文章提供了网络结构、核心代码及性能提升的详细信息。更多实战案例和YOLO改进见相关链接。
|
监控 Ubuntu Linux
如何使用不同的方法和命令来检查 Ubuntu 中的 CPU 数量?
如何使用不同的方法和命令来检查 Ubuntu 中的 CPU 数量?
310 0
如何使用不同的方法和命令来检查 Ubuntu 中的 CPU 数量?
|
7月前
|
并行计算 TensorFlow 算法框架/工具
Linux Ubuntu配置CPU与GPU版本tensorflow库的方法
Linux Ubuntu配置CPU与GPU版本tensorflow库的方法
146 1
|
7月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
Anaconda配置Python新版本tensorflow库(CPU、GPU通用)的方法
Anaconda配置Python新版本tensorflow库(CPU、GPU通用)的方法
150 1
|
7月前
|
缓存 Linux
百度搜索:蓝易云【Linux系统中查看CPU信息的方法有哪些?】
这些是在Linux系统中查看CPU信息的常见方法。根据您的需求和具体环境,您可以选择适合您的方法来查看CPU信息。
82 0
|
运维 Linux Anolis
6 月直播 7 场干货全剧透!明天:飞腾CPU调优原理及方法 | 第 19 期
今天下午4点,飞腾平台软件调优方法技术直播开讲!
6 月直播 7 场干货全剧透!明天:飞腾CPU调优原理及方法 | 第 19 期
西门子S7-1200如何使用诊断缓冲区,查看CPU停机原因的方法
在西门子S7-1200中的诊断缓冲区是CPU系统存储器的一部分,诊断缓冲区中记录了由CPU或具有诊断功能的模块所检测到的事件和错误等。
西门子S7-1200如何使用诊断缓冲区,查看CPU停机原因的方法
|
存储 弹性计算 固态存储
阿里云服务器ECS实例、CPU内存、带宽和系统盘存储选择方法来了
阿里云服务器配置如何选择?个人用户选择ECS共享型s6云服务器,1核2G、2核4G配置即可,企业公司用户可以选择独享型ECS计算型c6、通用型g7等,4核8G、8核16G、4核32G等配置,阿里云百科来详细说下不同用户选择阿里云服务器配置避坑指南
370 0
阿里云服务器ECS实例、CPU内存、带宽和系统盘存储选择方法来了