Q新闻丨Google自制芯片,Intel要发疯?微软、Linux合作结晶:.NET Core 1.0发布……
Google自制芯片,Intel要发疯?
Google已经制造出自己的计算机芯片,而事情还远没有结束。
整个互联网上最强大的公司日前在科技界抛出了几枚重磅炸弹,披露了全新的定制化芯片,这家庞大的在线帝国借此可以更好地经营未来的主营业务:人工智能。
为了制造自己的芯片,Google在改造了科技界的很多东西之后,又向前迈近一步。为巩固各类在线服务,过去十多年来这家公司为自己的大规模数据中心设计了各种新硬件,包括计算机服务器、网络设备等。随着服务范围和规模达到一个空前的高度,他们需要通过更高效的硬件运行这些服务。多年来,其他很多互联网巨头也曾效仿这种做法,以此为契机全球硬件市场产生了翻天覆地的变化。
Google在芯片制造方面努力的结果辐射范围已经超越了Google帝国本身,甚至让芯片行业的未来受到威胁。
对于这款新芯片,Google的目标始终未变:空前的高效。为了让AI技术跃上一个新高度,他们需要一种能在更低能耗前提下,用更短时间完成更多任务的芯片。但这个芯片所产生的效果已经超越了Google帝国本身,甚至让Intel和nViaia这样的商业化芯片制造商的未来受到威胁,尤其是考虑到Google对于未来的愿景,这种情况显得更为紧迫。根据在Google帝国的巩固之路上主要负责全球数据中心网络的Urs Hölzle所说,新的定制芯片只是万里长征的第一步。
不,Google不打算将自己的芯片出售给其他公司,他们不会与Intel或nVidia直接竞争。但考虑到这家公司的数据中心规模之大,Google目前已经是这些芯片公司最大的潜在客户。与此同时,随着越来越多企业开始使用Google提供的云计算服务,他们自行购买的服务器(以及芯片)数量只会越来越少,这等于进一步蚕食了芯片制造商的市场份额。
确实,Google公布有关新芯片的新闻只是为了宣传自家的云服务业务,让更多企业和开发者选用自家的AI引擎,并将其用于自己的应用程序中。随着Google开始将AI的强大能力出售给其他公司,这实际上是在(以相当高调的方式)宣称他们可以提供运行这种AI的最佳硬件,而且绝无仅有的硬件。
Google对速度的渴求
Google的新芯片叫做Tensor Processing Unit(张量处理器),即TPU。这是因为这种芯片更适合运行TensorFlow,正是这个软件引擎驱动着Google的深度神经网络,硬件和软件组成的网络可以通过分析海量数据学习如何完成特定任务。
其他技术巨头通常使用图形处理器,即GPU运行自己的深度神经网络,而这GPU最初是针对游戏和其他图形密集型应用程序的图像渲染任务设计的。虽然GPU在设计上很适合用于运行驱动深度神经网络所需的计算任务,但Google认为如果使用定制芯片可以进一步提高效率。
根据Google的介绍,他们结合机器学习的具体需求对TPU的规格进行了调整,用更少量事务就可以运行每一步操作。这意味着这样的芯片每秒钟都能执行更多操作。
目前Google同时使用TPU*和*GPU运行自己的神经网络。Hölzle拒绝详细介绍Googe对于这种TPU的使用方式细节,不过透露说这种技术可以处理驱动Android手机语音识别功能所需的“部分运算量”。同时他还说Google即将发布一篇介绍这种芯片好处的论文,并且还会继续设计能够以其他方式处理机器学习任务的新芯片。最终,他们的目标是彻底停止使用GPU。“已经取得一些进展了,”Hölzle说:“对机器学习来说,GPU还是不够专精,毕竟从设计上就不是针对这种用途的。”
nVidia可不愿意听到这种说法。作为全球最主要的GPU经销商,nVidia正在急迫地将自家业务拓展到AI领域。同时Hölzle也提出,最新款nVidia GPU包含一个专门的机器学习模式。但是很明显,Google希望这个变化能够进行的快点,再快点。
最智能的芯片
与此同时,其他公司,尤其是Microsoft也在芯片之路上进行着探索。场效可编程门阵列(Field-programmable gate array,FPGA)就是一种可以通过重新编程执行特定任务的芯片。Microsoft已经测试过FPGA在机器学习领域的运用,而Intel也明确了市场的发展方向,最近收购了一家销售FPGA的公司。
一些分析师认为这才是最明智的发展之路。密切关注芯片制造业务的Moor Insights and Strategy事务所总裁兼首席分析师Patrick Moorhead认为FPGA可以提供更高灵活性。Moorhead怀疑Google新发布的TPU是否有些“过犹不及”,并指出制造这样的芯片至少需要六个月,在竞争日趋激烈的市场中,六个月时间已经太长了,并且还要与最大的互联网公司展开竞争。
但Google不想要这样的灵活性。对他们来说,速度的重要性超越一切。在被问到为什么Google要从零开始制造自己的芯片而不是使用FPGA时,Hölzle说:“只是想实现更高的速度。”
核心业务
Hölzle还提到Google的芯片并不是为了取代CPU。中央处理器是所有计算机服务器的心脏,这个搜索巨头依然需要使用这种芯片运行数据中心内成千上万的服务器,而CPU是Intel的主营业务。当然如果Google愿意专门为了AI打造一款自己的芯片,那么人们不禁好奇他们是否打算更进一步重新设计自己的CPU。
Hölzle淡化了这种可能性。“只需要解决尚未解决的问题,”他说。换句话说,CPU是一种成熟的技术,已经可以按照预期正常工作。但同时他也说,Google希望芯片市场能够呈现出良性竞争的环境。也就是说,他们希望从多家经销商处购买,而不只是购买Intel的产品。毕竟更激烈的竞争对Google而言意味着更低的价格。同时Hölzle也解释说,Google正是为了能获得更丰富的选择而与OpenPower基金会合作,这家机构的目标是提供任何人都可以使用和修改的芯片设计。
这是个很强大的想法,同时对全球最大的芯片制造商来说也是一个很强大的潜在威胁。根据IDC研究公司分析师Shane Rau所说,全球服务器CPU出货总量中有大约5%是Google购买的。他说在最近一年内,Google购买了大约120万块芯片,其中大部分来自Intel。(2012年,Intel高管Diane Bryant告诉WIRED说Google从Intel处购买的服务器芯片数量远远超过其他五家客户,而其他这些客户全都是销售服务器的公司。)
无论对CPU有何计划,Google还将继续探索更适合机器学习需求的芯片,而我们要等到很多年后才能知道什么可行,什么不可行。毕竟神经网络这个概念本身也在继续进化。“我们的探索从未中断,”他说:“但最终答案是什么我还不知道。”可以肯定的是,随着Google继续探索,全世界的芯片制造商都在密切关注。
本文翻译已获授权,原文地址:
http://www.wired.com/2016/05/googles-making-chips-now-time-intel-freak/
本文译者:大愚若智
微软、Linux合作结晶:.NET Core 1.0发布
在6月27日的红帽DevNation峰会上,微软正式发布了.NET Core 1.0、ASP.NET 1.0和Entity Framework Core 1.0,这些产品将全部支持Windows、OS X和Linux三种操作系统。其中.NET Core最受瞩目,这是一款跨平台、开源且模块化的.NET平台,可以用来搭建web应用、微服务、创立应用库和控制台。
本次发布的包括.NET Core Runtime、框架库及相关工具,和ASP.NET Core库。
.NET Core开源的由来
早在2004年,Xamarin公司的前身,Novell就开始研发如何实现.NET的跨平台化研发。Mono Project开源项目应运而生,陆续实现了在大部分Linux版本、Android甚至一些游戏开发平台上运行.NET应用。.NET Framework作为专利产品,Mono Project在一定程度上触犯了微软;这种做法因此也曾一度引起开源社区的广泛争议。
2014年,微软改变了.NET技术的发展策略,在connect();大会上发布开源.NET Core,称.NET Core的愿景是成为所有平台的单一代码库。2016年3月,微软正式收购Xamarin公司,其所有的Mono Project采用 MIT协议开源。
2016年6月27日,微软正式发布.NET Core 1.0。经过微软与红帽一年的合作,Linux企业版已支持.NET Core 1.0的全部特性;微软终于用实际行动证明了其打破Windows封闭局面的决心。
.NET Core的技术细节
.NET Core由以下组成:
.NET runtime:提供运行环境,汇编码加载,垃圾回收等基础服务。
框架库:完全整合传统的.NET标准库。提供基础数据类型和不同类型应用的基础组件等。
.NET Core SDK:相关系列的SDK工具和语言编译器
.NET Core应用的命令行工具集。
而.NET Core的开发工具及平台,除了传统开发工具集的Visual Studio,开发人员还可使用红帽公司OpenShift的PaaS平台和微软的跨平台Visual Studio Code编辑器,后者可以运行于Linux、OS X和Windows系统。需要说明的一点是.NET Core 1.0目前仅支持红帽的企业版Linux。
.NET Core被视为.NET Framework的新一代版本。与现有的.NET Framework在使用上的区别是:.NET Framework采用大包式安装的方式,而.NET Core则是采用套件化(Packages)的管理方式,写应用程序只需要调用所需组件即可。
给开发人员和企业带来的好处
对开发者而言,这意味着更多的开发自由度:开发人员可以通过使用.NET Core快速搭建跨平台的应用。同时,还可以充分发挥.NET发展十四年来沉淀下来的特有优势。
微软在GitHub上面公布了与同类语言工具的对比检测结果,称使用.NET Core构建的应用运行速度是Node.js的八倍,Go的三倍,将会缩短响应时间、减少系统资源消耗。
此外,还可以使用C#支持的LINQ语言集成查询,少量代码即可实现对数据源执行复杂的筛选、排序和分组操作。以查询数据库的方式操作内存数据,使用基本查询表达式模式进行查询和转换 SQL 数据库、ADO.NET 数据集、XML 文档和流以及 .NET 集合中的数据。
对于企业而言,.NET Core跨平台意味着,在不改变架构的前提下,非Windows Server也可以运行.NET应用,.NET Core的工作流,可以被导入到Red Hat企业版Linux或者Windows Server;并且,这将为微服务构架提供更多的可能性,组件的语言开发可以是既有.NET又有Java,并运行同一个平台。
微软和红帽的初衷
对于微软而言,首先,这与微软扩张跨平台云愿景相符。微软称其重新梳理.NET,为的是顺应当今的云应用、微服务和容器技术技术趋势。其次,也可延续微软现有项目和产品,如Xamarin的微软开源项目、Windows Phone的开发、.NET Framework和ASP .NET等。
而对于红帽,这可以帮助其商业版的Linux以及OpenShift平台的推广。红帽博客上指出,只有商业版的Linux才全面支持.NET所有特性,并满足企业级别的需求。红帽认为,对那些寻求在Linux或者容器环境下使用.NET技术的企业而言,这将是一种新的平台选择。
开发社群的响应
总体上,社群的反应分为积极支持和中立观望两方。
一些已经使用过 .NET的 开发人员称开发总体感觉很好,C#具备快速、多线程、丰富标准库、泛型、支持动态静态语言等优点。Mono的使用者则认为.NET Core 1.0可以做得比Mono更好。因此这两类人群对于.NET Core持积极态度。不过,一些使用.NET Core的开发人员反应微软未能做到及时更新文档,偶尔会导致一些bug。此外,Visual Studio Code中的开发体验仍然不及Visual Studio。
对于尚未在技术栈中使用.NET的开发团队而言,大部分将持观望态度。技术栈应该不会立刻发生变化,团队不会紧随1.0最初版本开展研发工作。
未来还会有哪些变化
微软称将会继续在跨平台上努力,就硬件层面而言,除了已经完成的跨操作系统的X64和WindowsX 86平台, .NET Core正在向Arm64和ARM32平台发力。
▽
延展阅读(点击标题):
ArchSummit深圳2016:移动开发与消息推送专场开放限额免费报名
本专场活动将邀请多位来自应用开发及消息推送服务供应商的技术专家,分享实时消息及推送系统的开发与优化经验,帮助更多的开发人员了解当前实时消息系统、推送系统以及直播系统的架构设计趋势。
戳阅读原文,限额免费报名!手快有手慢无哦~
本文系InfoQ原创首发,未经授权谢绝转载。