ARM与RISC-V之争,后起之秀的优势在哪儿?

640?wx_fmt=jpeg

来源:朗锐智科


从2010年夏天开始,伯克利研究团队大约花了四年的时间,设计和开发了一套完整的新的指令集。这个新的指令集叫做RISC-V,指令集从2014年正式发布之初就受到多方质疑,到2017年印度政府表示将大力资助基于RISC-V的处理器项目,使RISC-V成为了印度的事实国家指令集。再到今年国内从国家政策层面对于RISC-V进行支持,上海成为国内第一个将RISC-V列入政府扶持对象的城市。IBM、NXP、西部数据、英伟达、高通、三星、谷歌、特斯拉、华为、中天微、中兴微、阿里、高云、中科院计算所等国内外150多家企业与科研机构的加入RISC-V阵营。


经过短短几年时间,RISC-V不仅有政策的支持,企业和学术圈对这个开源指令集的关注度不断提高,甚至让Arm也感受到了压力。因为自RlSC-V 2010年在伯克利大学诞生以来,业界出现最多的一个声音就是,RISC-V可能改变现有的由Arm和Intel X86主导的处理器架构竞争格局,尤其将会对Arm在消费类、IoT等嵌入式市场造成冲击。 

 

ARM与RISC-V的区别


ARM架构和RISC-V架构都源自1980年代的精简指令计算机RISC。两者最大的不同就在于其推崇的大道至简的技术风格和彻底开放的模式。ARM是一种封闭的指令集架构,众多只用ARM架构的厂商,只能根据自身需求,调整产品频率和功耗,不得改变原有设计,经过几十年的发展演变,CPU架构变得极为复杂和冗繁,ARM架构文档长达数千页,指令数目复杂,版本众多,彼此之间既不兼容,也不支持模块化,并且存在着高昂的专利和架构授权问题。反观RISC-V,在设计之初,就定位为是一种完全开源的架构,规避了计算机体系几十年发展的弯路,架构文档只有二百多页,基本指令数目仅40多条,同时一套指令集支持所有架构,模块化使得用户可根据需求自由定制,配置不同的指令子集。


640?wx_fmt=jpeg


未来ARM和RISC-V的竞争将会何去何从?


目前ARM占据了以移动设备为代表的处理器IP的绝大部分市场,而RISC-V则是后起之秀。那么,未来会何去何从呢?


ARM与RISC-V的竞争有点像上世纪末的Windows和Linux之争,ARM和RISC-V的未来竞争格局也可能类似。首先几乎可以肯定的是,在ARM的传统优势领域,即手机领域,RISC-V基本没有机会,因为手机经过十年迭代后不太会彻底改变处理器内核了,这也和目前Windows经过二十多年风雨仍然是PC市场操作系统龙头老大一样。但是,在新兴的领域,RISC-V和ARM都处于同一起跑线上,而RISC-V凭着指令集开源等特性很有可能可以击败ARM,或者至少能够占据可观的市场份额。目前这样的新兴市场主要是物联网市场。物联网市场有长尾化的特性,拥有众多细分市场,同时对于功耗有很高的要求,因此对于可以针对不同应用灵活修改指令集和芯片架构设计的RISC-V有优势,相比之下使用ARM往往只能做一个标准化设计,很难实现差异化。此外,物联网市场对于成本较敏感,RISC-V免费授权的特点对于芯片厂商也很重要。


在RISC-V基金会名单中,我们可以看到高通、联发科这样重点布局物联网的企业。而在目前很火的AI芯片市场,ARM和RISC-V则尚看不出明显的优劣。这是因为高性能AI芯片中无论是使用ARM还是RISC-V的核,主要都是作为控制器来使用,最主要的也是最核心的计算单元往往是电路设计师自行设计而不会使用IP;另一方面AI芯片的利润空间往往较大,因此RISC-V的免费的特点并没有带来特别大的优势。


未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。


未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。


  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”


640?wx_fmt=jpeg

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

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

相关文章

QT学习笔记(六):QString::arg()函数用法小结

QT学习笔记(五):Qt5的QString的arg用法 在QT的QString中,arg方法类似于C中的printf中使用的格式输出符(只是有点类似)。 在QT5的帮助文档中,可以看出以下几点: 使用arg(str1, str2,…

RuntimeError: DataLoader worker (pid(s) 13512, 280, 21040) exited unexpectedly

pytorch出现这个错误,是因为正在运行的主程序缺少 if __name__ __main__: 在运行的主程序代码之前加上这一句

第三周总结

在第三周的学习中,我们主要学习了循环语句(while,do/while,for循环),数组,方法。而重点就在for循环和方法。而对于for循环我要做的就是多练,深入了。但对于方法这一块,我连有时候该怎…

道阻且长,Libra 项目负责人长文回应一切质疑

来源:星球日报当地时间 7 月 3 日,Facebook Libra 项目负责人 David Marcus 于个人 Facebook 发布长文《Libra, 2 weeks in》,就过去两周 Libra 所遇到的一些质疑及误解进行解释。以下为全文内容:自 Libra 正式公开已经两周了&…

QT学习笔记(七):定时器事件的3种常用使用方式

QT学习笔记(七):定时器事件的2种常用使用方式 Qt中定时器的使用有2种方法:一种是使用QObject类提供的定时器通过重载 timerEvent 事件处理过程函数,一种就是使用QTimer类。 其中QTimer 类来实现定时器使用的更多&…

pytorch保存模型时报错***object has no attribute 'state_dict'

定义了一个类BaseNet并实例化该类: netBaseNet() 保存net时报错object has no attribute state_dict torch.save(net.state_dict(), models_dir) 原因是定义类的时候不是继承nn.Module类,比如: class BaseNet(object):def __init__(self…

LightOJ - 1140 How Many Zeroes?

Description Jimmy writes down the decimal representations of all natural numbers between and including m and n, (m ≤ n). How many zeroes will he write down? Input Input starts with an integer T (≤ 11000), denoting the number of test cases.Each case cont…

​机器学习算法优缺点对比及选择(汇总篇)

转自:机器学习与统计学本文的目的,是务实、简洁地盘点一番当前机器学习算法。文中内容结合了个人在查阅资料过程中收集到的前人总结,同时添加了部分自身总结,在这里,依据实际使用中的经验,将对此模型优缺点…

pytorch加载的模型测试的结果和保存时测试的结果不一致

假设有一个dropout网络net,训练过程中用测试集进行了测试,接着将该网络进行了保存 torch.save(net.state_dict(), path) 然后将保存的网络加载出来: netclass_net() # 先定义net的结构 net.load_state_dict(torch.load(path)) 接着用同样…

QT学习笔记(八):顺序容器和关联容器

QT学习笔记(八):顺序容器和关联容器一、前言二、容器介绍2.1 顺序容器2.2 关联容器二、顺序容器示例三、关联容器一、前言 在Qt库中为我们提供了一系列的基于模板的容器类(container classes)。这些类可以被用来存储特定类型的项(items)。例…

页面的缓存与不缓存设置

HTML的HTTP协议头信息中控制着页面在几个地方的缓存信息,包括浏览器 端,中间缓存服务器端(如:squid等),Web服务器端。本文讨论头信息 中带缓存控制信息的HTML页面(JSP/Servlet生成好出来的也是HTML页面)在中间缓存服务器中的缓存情…

MATLAB警告: 矩阵为奇异工作精度

原因是在求逆的时候使用了inv函数,而inv函数对于不是可逆矩阵的矩阵求逆就会出错 将inv函数改为pinv函数,pinv就是对不是可逆矩阵的矩阵求伪逆

QT学习笔记(九):遍历容器-迭代器(iterators)

QT学习笔记(九):遍历容器-迭代器(iterators)遍历容器 :1、Jave风格:2、STL风格:3、foreach 关键字:遍历容器 : 遍历一个容器可以使用迭代器(iterators)完成,…

pytorch自定义数据集和数据加载器

假设有一个保存为npy格式的numpy数据集,现在需要将其变为pytorch的数据集,并能够被数据加载器DataLoader所加载 首先自定义一个数据集类,继承torch.utils.data.Dataset类 在这个类中要实现__init__,__getitem__,__le…

jQuery 插件格式 规范

方式一(自定义对象):(function($, window, document) { var Plugin, defaults, pluginName;调用时的函数名:pluginName "slidesjs";默认配置:defaults {width: 940,height: 528,callback: {loaded: functio…

QT学习笔记(十):通用算法示例

QT学习笔记&#xff08;十&#xff09;&#xff1a;通用算法示例 std是C标准库统一使用的命名空间(namespace)的名称&#xff0c;C标准库中的名字全部都在std这个命名空间中,std也就是英文"standard"&#xff08;标准&#xff09;的缩写。 #include <QCoreAppl…

Input type (torch.cuda.DoubleTensor) and weight type (torch.cuda.FloatTensor) should be the same

原因是没有把输入数据类型转为float类型 首先找到代码出错的位置&#xff0c;将该处的数据类型转为float类型&#xff1a; x x.type(torch.FloatTensor)

了解因果论:从珀尔的《为什么》开始

图I&#xff1a;AI从达特茅斯会议&#xff08;1956年&#xff09;得名至今已有六十年&#xff0c;期间几起几落&#xff0c;群星璀璨&#xff0c;像一个大舞台&#xff0c;你方唱罢我登场&#xff0c;留下了一些永载史册的理论和成就&#xff0c;但涉及因果的甚少作者&#xff…

外观模式(三层解耦)

说到外观模式&#xff0c;很容易想到的是设计一件漂亮的衣服然后穿上自己的身上&#xff0c;让自己看起来更加的漂亮&#xff0c;但是这个可能并不是这样子的&#xff0c;从更深层次的来说&#xff0c;外观更应该是所见即所得的&#xff0c;对于观众来说&#xff0c;看起来可能…

QT学习笔记(十一):QString类

QT学习笔记&#xff08;十一&#xff09;&#xff1a;QString类1、概述2、编辑操作3、查询操作3、转换操作1、概述 1.1 QString 类是 Qt 中用于表示字符串的类&#xff0c;实现在 QtCore 共享库中。QString 类在实现上有以下特征: 1&#xff09;字符串采用 Unicode 内部编码&…