当前位置: 首页 > 编程日记 > 正文

IBM重磅开源Power芯片指令集?国产芯迎来新机遇?

640?wx_fmt=jpeg

整理 | 郭芮

出品 | CSDN(ID:CSDNnews)

自去年 IBM 以 340 亿美元收购了 Linux 巨头红帽之后,这家 107 岁的蓝色巨人终于又在开源方面有大动作了!

近日在 Linux 基金会开源峰会上,IBM 宣布向开源社区提供 Power 指令集架构(ISA,Instruction Set Architecture),为开源贡献力量!除开源 ISA外,其还计划向开源社区贡献其他技术,包括 IBM Power 指令集架构的软核部署、开放式一致性加速处理器接口(OpenCAPI)和开放式内存接口(OMI)的参考设计。

107 岁的 IBM 和强大的 Power 架构芯片

IBM 引以为傲的 Power 架构芯片,在性能上有着绝对的优势。据官方统计,围绕 Power 架构,IBM 已贡献了超过两百万行开源系统固件代码和系统参考设计,以及大量的相关技术文档。OpenPOWER 家族中最新的 POWER9 CPU 具有 80 亿个晶体管,最多达 24 个处理核心。目前最顶级的超算系统、美国能源部的 Summit 和 Sierra 超级计算机系统内采用的正是 POWER9。

640?wx_fmt=png图源:IBM 官网

此外,OpenCAPI 和 OMI 两种接口标准的开源还可增加处理器和连接设备之间的内存带宽,使开发人员能够避免性能瓶颈,允许开源开发人员创建更多创新的硬件组件,而这最终可能使 IBM 更好地与英特尔竞争。

IBM 的这个决定其实已经准备了很长一段时间。

CSDN 此前也曾报道过:

创立于 1911 年的 IBM 已经存活了 107 岁了,早已超过梦想要活 102 岁的阿里巴巴。在这 107 年中,从穿孔卡片到 System/360 大型计算机,从制表机到兆级浮点运算,从创始人沃森到超级计算机“沃森”——IBM 似乎在高速运转的计算机新时代下越来越疲惫,此前不仅因软件销售、大型服务器需求疲软等原因导致连续 20 个季度营收下滑,如今在拥抱人工智能、大数据、云计算等数字化转型过程中也遭遇了难点......

而开源,就是包括 IBM 在内的昔日巨头们重新夺回赛道的重要手段。

事实上,从历史上看,蓝色巨人一直是 Linux 和相关项目的忠实贡献者。IBM 于 1999 年首次宣布支持免费操作系统 Linux,当时微软的 Windows 系统在桌面和服务器上都取得了胜利,而 Linux 远没有今天这么成熟。而且据统计到 2008 年,IBM 雇佣了大约 600 名开发人员,涉及 100 多个 Linux 项目,包括 Xen、Linux 工具链、Apache、Eclipse 和内核本身。长时间以来,Linux 一直是 IBM 的命脉。在过去的 20 多年里,公司通过捐赠资金和开发时间,花费了数百万甚至数十亿美元来支持 Linux 生态系统。尽管它并非完全出于利他主义,但很显然的事实是,IBM 对 Linux 产生了不可否认的积极影响。

当然,如果 IBM 十年前就发力开源的话,情况可能会更好。不过,随着收购红帽后大量开源精神的注入,对 IBM 本身以及整个 Linux 生态系统都产生了重大的积极意义,而现在,IBM 也终于迈出了下一步。

640?wx_fmt=jpeg

除了以上的开源动作外,IBM 还宣布将推动 OpenPower 基金会加入 Linux 基金会。OpenPower 基金会是由 Google、Mellanox Technologies、Nvidia 和 Tyan 在 6 年前所组建的,旨在创建一个围绕 Power 系列处理器的指令集架构的生态系统。

因此,如果你曾经想创建自己的 Power 处理器,但被 IBM 昂贵的许可证费用“吓退”了的话,现在机会来了,你不需要参与 OpenPower 基金会也可以使用 Power 指令集。与 RISC-V、MIPS 等开源指令集相比,Power 指令集最大的优势就是性能强大,而 RISC-V 等指令集主要面向低功耗的 IoT 设备等,所以对 HPC 高性能运算、AI 人工智能、深度学习等需要高性能的领域来说,Power 开源又提供了一次良好的发展机会。

从 PowerPC 到成功的“搅局者”

IBM 开放 Power 体系架构的漫长历程最早可以追溯到 1991 年。

上世纪 90 年代,苹果、IBM 和摩托罗拉公司一起建立了 PowerPC 联盟,意欲打破个人电脑市场的垄断。当时 IBM 开始把注意力转到 RS/6000 Unix 系统(Unix 在当时风靡一时)采用的 Power 体系结构,Sun 微系统公司和惠普公司正像饥饿的狼群,围绕着 IBM 的专有大型机和小型计算机伺机而动,而瘦弱饥饿的甲骨文公司则在附近龇牙低吼。

而在这些背景的后面,IBM 正准备将其专有的 AS/400 企业小型机系统转移到一个带有 RS/6000 的通用硬件平台上,一个可靠的 Windows 服务器已经存在好几年了(而且很快就会在 Power Iron 上运行),而年轻的 Linus  Torvalds 刚刚创建了第一个 Linux 内核(这最终将成为保持 Power Iron 在 HPC 中心,特别是某些企业数据中心中存活的关键)。

历史是漫长而又复杂的,但足以说明摩托罗拉和 IBM 都面临着将服务器级处理器推向市场的挑战,而将其转向到 64 位处理器则尤其困难。有趣的是,IBM 在明尼苏达州罗切斯特市的 AS/400 处理器团队创造了一个非常好的 64 位 PowerPC 芯片,该芯片还嵌入了一个双泵矢量处理器,正是这个处理器,而不是奥斯汀的 AIX 设计人员所设计的处理器,才是自那以后所有 Power 芯片和系统的核心。最终,Sun 微系统公司因为采用了 UltraSparc-III 系统而岌岌可危,惠普和英特尔也因为构建了 Itanium,而陷入了一连串的困境,这就为 IBM 在 21 世纪初成为一个搅局者大开了方便之门。

就在那个时候,确切说是在 2001 年,IBM 就推出了它的第一个双核芯片和第一个能在 1 GHz 以上工作的处理器,也就是 Power4“千兆处理器”,而 IBM 在 Unix 中的这一重锤出击,为蓝色巨人带来的回报是 Sun 公司和惠普公司在 Unix 中的两倍,凭借这一成功举措,它疯狂地抢占了市场份额。

与此同时,摩托罗拉 68000 系列芯片也在不断发展,它是苹果个人电脑的核心,也是无数嵌入式控制器的核心。可能今天是 ARM 占据着嵌入式控制器市场的主导地位,但在那时候,统治着嵌入式控制器市场的是摩托罗拉 68Ks,这种从嵌入式设备到数据中心设备的统一处理器体系架构首先是用 PowerPC 体系架构完成的,实际上也是由它实现的。

当然,从那时起,Unix 市场基本上已经被运行 Linux 和 Windows 服务器的 x86 系统所取代,而 Sun 公司的 SPARC 和惠普公司的 PA-RISC,以及英特尔公司的 Itanium 都已不复存在。摩托罗拉也已将嵌入式控制器市场拱手相让给了 ARM,IBM 一直试图通过 2004 的 Power.org 和 2013 的 OpenPower 基金会,来为 Power 架构注入一些活力。

每迈出一步,IBM 都将其技术进一步开放,并扩大其吸引力,但这种开放是否足够仍是一个问题。所以尽管 Power 芯片指令集(Power ISA)对其它指令集来说拥有许多架构上的优势,但是没有人会说,OpenPower 基金会将很容易地发展它的生态系统,虽然它的发展确实比一个封闭的架构要容易得多。现在 Power 芯片指令集的许可也被免费授予,这是利大于弊的。

IBM 的 OpenPower 部门总经理 Ken King 表示:

“我们在六年前开始成立 OpenPower 联盟,因为......我们发现需要更强大的系统来支持 HPC、人工智能和数据分析,我们需要找到其他方法来驱动系统性能,由于处理器的限制,在堆栈上下集成和创新的能力变得越来越关键。这导致了一些事情,如支持 Nvidia 推出 NVLink, 和 Mellanox 在互联技术(interconnect)建立密切关系,以及为支持其它设备采用 OpenCAPI(开放式一致性加速器接口)标准,我们在这里都看到了一些进展。但随着很多公司转向更开放的硬件,我们也看到了行业的转变。”

“IBM 将 Power 架构开放到我们可以将 CPU RTL 许可授予给其他人的程度,这样他们就可以设计自己的处理器。

但其效果是有限的,因为没有多少人愿意花费数亿美元(不是为支付许可费,而是为全面开发)创建自己的高端 CPU。”

“我们在开放参考设计方面取得了一些进展,现在有 20 多家供应商正在开发基于 Power 的系统。我们也看到新兴的 RISC-V 体系结构的有趣发展,超级巨头们正在雇佣他们自己的芯片设计师,构造他们自己的 CPU 和互连。他们正在进入硬件领域,即使他们不打算成为硬件供应商,也要推动这一发展。”

在这种行业环境下,自然是时候开放 Power 芯片指令集了!

对于开发者和行业来说,开源意味着什么?

Power 架构最大的特点就是采用对称多处理器技术,能够保障内存访问任何一个 CPU 时速度都是一样的,这是英特尔 X86 架构都做不到的优点,因此 Power 架构未来被应用于高端服务器市场的前景非常广泛。此番开源 Power 芯片集,IBM 可以说是为整个开源社区做出了巨大贡献——这意味着任何公司可都以使用 Power 芯片指令集来构建一个芯片,而不必支付一毛钱给 IBM 或 OpenPower 基金会,就可拥有开发芯片的专利权。

除了这些,IBM 还提供了一个在 FPGA(一种大概来自 Xilinx,而不是 Altera公司的器件)上实现的 Power 芯片指令集的软核模型供人们使用。并且,IBM 还采用了 OpenCapi 加速器接口及其 OpenCapi 内存接口变体,这是今年某个时候推出的 Power9’(这是一个单引号,而不是一个打字错误)处理器的一个关键功能,实际上,它正在为这些参考设计向独立于 OpenPower 的 OpenCapi 联盟提供 RTL。

机遇与挑战并存。虽然 IBM 是美国企业,但开源的 Power 指令集是不会受到美国“禁令”的影响,其效率高、性能强劲的特点对于国内厂商来说,或许也会提供国产芯的新机遇?而且,如果真的能基于 Power ISA 做出 CPU,相信对于目前 x86、ARM 的垄断也是强有力的挑战。

但与此同时,在独立性和兼容性上,IBM 也有自己的坚持。

King 解释说,公司必须保持与指令集的兼容性,并且有一整套兼容性要求。在 Linux 基金会下运作的 OpenPower 基金会将拥有一个开放的治理模型,在关于未来可以对 Power 芯片指令集做出哪些改变的问题上,IBM 与其它 OpenPower 基金会成员拥有相同的投票权。IBM 还将保留对 Power 架构进行任何更改以满足其自身需求的权利,但所有其它更改需要成员的多数投票以确保兼容性。“一切更改都必须遵守合规性准则,因为我们不希望出现一堆碎片。”如果任何公司想进行不符合规定的变更,则需要成员一致投票决定。

参考链接:

https://www.nextplatform.com/2019/08/20/big-blue-open-sources-power-chip-instruction-set/

(*本文为 AI 科技大本营转载文章,转载请联系原作者)

福利时刻

入群参与每周抽奖~

扫码添加小助手,回复:大会,加入福利群,参与抽奖送礼!

640?wx_fmt=jpeg

大会优惠票限时抢购中!此外,伯克利大学名师精髓课程移师北京。《动手学深度学习》作者、亚马逊首席科学家李沐线下亲授「深度学习实训营」,免费GPU资源,现场还将限量赠送价值85元的配套书籍一本,先到先得。原价1099元,限时专享CSDN 独家福利价199元识别海报二维码,即刻购票~

640?wx_fmt=jpeg

推荐阅读

  • 姚班三兄弟3万块创业八年,旷视终冲刺港股

  • 覆盖10亿设备,月活2亿,快应用要取代App?

  • 2019 AI ProCon日程出炉:Amazon首席科学家李沐亲授「深度学习」

  • AI Top 30+案例评选等你来秀!

  • 干货 | 利用OpenCV,Python和Ubidots来构建行人计数器程序(附代码&解析)

  • 腾讯AI击败王者荣耀职业队,1 天训练强度达人类440年,网友:想哭!

  • 马云谈 5G 危机;腾讯推出车载版微信;Ant Design 3.22.1 发布 | 极客头条

  • 微服务架构到底是什么鬼?

  • 互联网人职业发展之路:三年升高工,七年做架构,十年送外卖

  • IT公司老板落水,各部门员工怎么救?

640?wx_fmt=png

你点的每个“在看”,我都认真当成了喜欢

相关文章:

构造函数不能为虚/重载函数总结

构造函数不能为虚/重载函数总结 作为一个类,他最基础的成员函数就要数构造函数了。这里我们先探讨一下构造函数为什么不能是虚函数。 在解决这个问题之前,要先明白类中函数的调用方式。一个类的函数共用一个函数空间,因此在实例化的对象中是不…

通过data:image/png;base64把图片直接写在src里

2019独角兽企业重金招聘Python工程师标准>>> 关于用base64存储图片 网页上有些图片的src或css背景图片的url后面跟了一大串字符,比如:data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAYAAABIdFAMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZS…

算力“竞速”,企业AI落地的当务之急

充足的算力资源,在数据量持续增长及算法持续复杂化的前提下,无疑是保障人工智能应用落地效果的关键。软件定义算力——打造AI转型最佳实践8月2日,第四范式联合英特尔共同举办了AI实践者之声夏令营活动。第四范式基础架构负责人刘一鸣以《软件…

内存检测工具Dr. Memory的使用

Dr. Memory是一个内存调试工具,它是一个开源免费的内存检测工具,它能够及时发现内存相关的编程错误,比如未初始化访问、内存非法访问、数组越界读/写、以及内存泄露等。它可以在Linux、Windows、Mac OS和Android操作系统上使用。关于Dr. Memo…

手把手教你如何新建scrapy爬虫框架的第一个项目(下)

前几天小编带大家学会了如何在Scrapy框架下创建属于自己的第一个爬虫项目(上),今天我们进一步深入的了解Scrapy爬虫项目创建,这里以伯乐在线网站的所有文章页为例进行说明。在我们创建好Scrapy爬虫项目之后,会得到上图…

.net完整的图文验证

摘自:http://blog.csdn.net/durongjian/article/details/4336380 一、创建ValidaeCode类库工程: 1、创建ValidaeCode类库工程,在[解决胜方案资源管理器]面板中,右键单击[ValidateCode]节点,并选择[属性]命令。 2、单击[属性]命令&…

Tesseract-OCR 3.04在Windows7 vs2013上编译过程

从https://github.com/tesseract-ocr/tesseract下载最新源码,commit id: 86acff5, 2016.06.07. 里面有个vs2010目录,用vs2013打开tesseract.sln。Tesseract依赖图像库Leptonica,Leptonica的编译过程可以参考http://blog.csdn.net/fengbingchun/article/d…

【Laravel-海贼王系列】第九章, Events 功能解析

Events 注册 框架如何在启动的时候加载注册的事件?框架如何触发事件?1,先在容器中注册 events 的全局对象。 Application 构造函数中对 events 进行注册代码 protected function registerBaseServiceProviders(){$this->register(new EventServiceProvider($th…

触类旁通,经典面试题最长公共子序列应该这么答

作者 | labuladong来源 | labuladong(ID:labuladong)【导读】最长公共子序列(Longest Common Subsequence,简称 LCS)是一道非常经典的面试题目,因为它的解法是典型的二维动态规划,大部分比较困难的字符串问…

两分公支的IPSec***流量走总部测试

一.概述:在论坛上看到一个朋友发帖希望两个分支的IPSEC ***流量经过总部,如是搭建拓扑测试了一下,因为跑两个VM版的ASA8.42机器性能不过,所以用PIX8.0来代替ASA,应该主要配置都跟ASA8.0差不多。二.基本思路:A.两个分支…

OpenCV代码提取:cvtColor函数的实现

OpenCV中的cvtColor函数包括了很多颜色格式之间的转换,用起来很方便,这里对cvtColor函数的code进行了提取,经测试,和OpenCV3.1结果完全一致。实现代码cvtColor.hpp:// fbc_cv is free software and uses the same licence as Open…

关于java.util.LinkedHashMap cannot be cast to ......的解决办法

今天在项目中遇到一个问题,接口接收到list在对list进行遍历的时候报出如下错误: 断点看一下这个list感觉没有任何的问题: 那为什么会报这个错误呢 这个接口是这样的,在想会不会是json在转list的时候把这个list给整坏了。 于是,我把这个list再…

三两下实现NLP训练和预测,这四个框架你要知道

作者 | 狄东林 刘元兴 朱庆福 胡景雯编辑 | 刘元兴,崔一鸣来源 | 哈工大SCIR(ID:HIT_SCIR)引言随着人工智能的发展,越来越多深度学习框架如雨后春笋般涌现,例如PyTorch、TensorFlow、Keras、MXNet、Theano 和 PaddlePaddle 等。这…

大学计算机基础实验

下载2013算法实验报告.rar转载于:https://www.cnblogs.com/shajianheng/p/3381968.html

java基础(十三)-----详解内部类——Java高级开发必须懂的

java基础(十三)-----详解内部类——Java高级开发必须懂的 目录 为什么要使用内部类内部类基础静态内部类 成员内部类 成员内部类的对象创建继承成员内部类局部内部类推荐博客匿名内部类正文 可以将一个类的定义放在另一个类的定义内部,这就是内部类。 回到顶部为什么…

C++中函数指针的使用

A function pointer is a variable that stores the address of a function that can later be called through that function pointer. This is useful because functions encapsulate behavior.函数指针是一个指向函数的指针,函数指针表示一个函数的入口地址。指针是变量&…

只做好CTR预估远不够,淘宝融合CTR、GMV、收入等多目标有绝招

作者 | 吴海波转载自知乎用户吴海波【导读】一直以来,电商场景就存在 ctr、cvr、gmv、成交 uv 等多个目标,都是核心指标。理想情况下,提升 ctr 就能提升 gmv,但本文作者认为,在一定程度上, ctr 和 gmv 并不…

Android监听HOME按键

2019独角兽企业重金招聘Python工程师标准>>> <!-- lang: java --> class HomeKeyEventBroadCastReceiver extends BroadcastReceiver {static final String SYSTEM_REASON "reason";static final String SYSTEM_HOME_KEY "homekey";// …

OpenCV代码提取:merge/split函数的实现

对OpenCV中的merge/split函数进行了实现&#xff0c;经测试&#xff0c;与OpenCV3.1结果完全一致。merge实现代码merge.hpp&#xff1a;// fbc_cv is free software and uses the same licence as OpenCV // Email: fengbingchun163.com#ifndef FBC_CV_MERGE_HPP_ #define FBC_…

DeepMind提图像生成的递归神经网络DRAW,158行Python代码复现

作者 | Samuel Noriega译者 | Freesia编辑 | 夕颜出品 | AI科技大本营&#xff08;ID: rgznai100&#xff09;【导读】最近&#xff0c;谷歌 DeepMInd 发表论文( DRAW: A Recurrent Neural Network For Image Generation&#xff09;&#xff0c;提出了一个用于图像生成的递归神…

其他进制的数字

JS中如果需要表示16进制的数字,则需要以0X开头 0X10 八进制数字以0开头 070 070有些浏览器会以8进制解析,但是有些则用10进制解析,10进制为70,8进制为56 所以parseint() 第二个参数可以设定进制,比如 parseint(“070”,10)代表以10进制解析070 2进制以0b开头,但是不是所有浏览…

java中的移位运算符

移位运算符是在数字的二进制形式上进行平移。主要有左移&#xff08;<<&#xff09;、带符号右移&#xff08;>>&#xff09;以及无符号右移&#xff08;>>>&#xff09;。左移运算符&#xff08;<<&#xff09;的运算规则为&#xff1a;按二进制形…

C++11中nullptr的使用

在C语言中&#xff0c;NULL实际上是一个void* 的指针&#xff0c;然后把void* 指针赋值给其它类型的指针的时候&#xff0c;会隐式转换成相应的类型。而如果用一个C编译器来编译的时候是要出错的&#xff0c;因为C是强类型的&#xff0c;void* 是不能隐式转换成其它指针类型的。…

埃森哲、亚马逊和万事达卡抱团推出的区块链项目有何神通?

据外媒报道&#xff0c;今日埃森哲宣布了一项新的区块链项目&#xff0c;该项目为基于区块链的循环供应链&#xff0c;将与万事达卡和亚马逊共同合作。据官方介绍&#xff0c;这个基于区块链的循环供应链能够让客户识别供应链上的小规模供应商和种植者&#xff0c;例如&#xf…

小团队如何玩转物联网开发?

近几年来&#xff0c;物联网发展迅速&#xff1a;据中商产业研究院《2016——2021年中国物联网产业市场研究报告》显示&#xff0c;预计到2020年&#xff0c;中国物联网的整体规模将达2.2万亿元&#xff0c;产业规模比互联网大30倍。与之相反的是&#xff0c;物联网开发者在开发…

Build Boost C++ libraries for x32/x64 VC++ compilers on Windows

2019独角兽企业重金招聘Python工程师标准>>> Boost is a set of libraries for the C programming language that provide support for tasks and structures such as linear algebra, pseudorandom number generation, multithreading, image processing, regular …

C++11中auto的使用

在C语言中&#xff0c;就有了auto关键字&#xff0c;它被当作是一个变量的存储类型修饰符&#xff0c;表示自动变量(局部变量)。它不能被单独使用&#xff0c;否则编译器会给出警告。在C11标准中&#xff0c;添加了新的类型推导特性。在C 11中&#xff0c;使用auto定义的变量不…

攻和防谁更厉害?AI技术在恶意软件检测中的应用和对抗

AI技术的发展为网络安全带来新机遇的同时&#xff0c;黑客也在逐渐利用AI漏洞建立对抗样本以躲避攻击&#xff0c;双方在各自领域的更多尝试也将是AI技术发展的一场新博弈。那么&#xff0c;在应用中&#xff0c;如何利用AI检测技术与恶意软件展开对抗&#xff1f; 腾讯安全技术…

一文看懂机器学习中的常用损失函数

作者丨stephenDC编辑丨zandy来源 | 大数据与人工智能&#xff08;ID: ai-big-data&#xff09;导语&#xff1a;损失函数虽然简单&#xff0c;却相当基础&#xff0c;可以看做是机器学习的一个组件。机器学习的其他组件&#xff0c;还包括激活函数、优化器、模型等。本文针对机…

Using Apache2 with JBoss AS7 on Ubuntu

大体思路同《Using Apache Web Server with Jboss AS 7》一致&#xff0c;但在Ubuntu上的操作与之前有些区别。 这里仍然演示mod_proxy的配置。 首先加载相应的模块。Ubuntu中加载模块和卸载模块均可以通过命令操作&#xff0c;与其对应的命令分别是a2enmod和a2dismod。 启用…