IT有“边界”吗?

“边界”这个词很有意思,把两个不同事物之间的界限划分的很清晰。在IT领域,边界的概念似乎更加重要。首先,很多IT定理或者IT演化规律都是在一定的边界内成立,所不同的是,这个边界可能有大小之分。其次,IT企业都是在自己的边界内做事情,脱离这个边界,业务逻辑和做事的规则可能就会发生变化。

回归正题,今天我们重点讲一下IT的边界,更具体一点来说是两个IT主体的边界:硬件与软件,芯片与算法。关于这两个边界的关系,其实我们在2018春节期间《关于“春晚智能驾驶”的一点思考》的文章中,做过一些简单的讨论。本篇文章结合最近自己的一些所见所闻,做了进一步思考,对其进行了整理总结。需要说明的是,这篇文章的总结也只是根据自己目前的认知范围所写,其实个人的认知边界也就决定了其所能达到的思考边界(深度)。

1、硬件与软件的边界

我相信,即使对于非IT人士,在目前IT智能设备如此高渗透率的情况下,对硬件和软件还是能够分辨的清楚的。如果问硬件和软件有什么区别?相信大部分人会说,硬件是我们能够看得见摸得着的东西,软件是看不见摸不着的。这可能是我们大部分人都能够接受的、一种最为通俗浅显的解释了。

1)硬件vs软件。如何理解硬件与软件的不同,我们可以分为几个层次来理解。第一,最基本层面,硬件是物理装置的集合(集成),软件是指令和程序的集合。硬件和软件基础元素构成的不同,形成了两者较为明显的边界。这种边界不是人为划分的,而是天然形成的。毕竟两者的运行机理和逻辑存在较大的不同。第二,基于以上延伸,硬件是物理产品,软件是逻辑产品。IT硬件是由原材料制作而成,而IT软件体现的是一种目标功能实现的思想和逻辑。第三,硬件是组装逻辑,软件是迭代逻辑。硬件的制作和更新基本是通过组装拆解的方式来完成;而软件的更新升级更多的是通过算法迭代来完成。这种逻辑的不同也就决定了两者更新升级的周期不同,硬件升级的周期明显比软件要长。比如,苹果公司发布的iPhone手机,手机硬件一年才更新一次;但我们会经常发现苹果的iOS操作系统几周就升级一个版本,昨天还是11.3版本,可能明天就推送11.4版本了。软件升级迭代的速度要明显快于硬件。

(2)硬件&软件:硬件与软件的结合。对于一个完整的IT产品而言,单独硬件不能完成任务,单纯的软件也难以实现目标结果。因此,IT产品发挥作用需要硬件和软件的结合:在硬件设备上去跑(运行)相应的软件。这里的硬件与软件虽然是结合的,但两者之间仍存在较为明显的边界。两者的关系更多是一种合作或者说结合(没有相互渗透),而不是融合(相互渗透)。比如软件中的嵌入式软件就是软硬件结合在一起。如果再通俗一点,我们使用的PC电脑和手机都是硬件与软件的结合体。软件需要硬件成为其运行的载体,硬件需要软件成为其功能实现的工具。

(3)硬件软件:硬件与软件边界的“打破”。对于IT技术变革产生的潜在影响,我们经常会产生误判。就像所说的,我们经常会高估IT技术带来的短期影响,而往往低估其带来的长期影响。同样,IT技术的演进和迭代,使得硬件和软件之间的边界变得模糊。这种边界模糊是否意味着:硬件和软件突破自身规则限制,在边界外做事情呢?我们认为,与其说是边界模糊,倒不如说是边界的扩大:IT技术变革扩大了硬件和软件的所触达的业务边界。对于以上观点的理解,我们可以从几个方面来进一步阐述。

第一,硬件与软件的逻辑等价性等价性,可以说也是一个非常重要的概念,不只对于IT领域,对于整个科学领域更是如此。等价性可以将一个比较难的问题,转化为几个相对不是那么难的问题。对于解决问题的人来说,省的力气可能是十倍、百倍。对于硬件与软件逻辑的等价性,指的是同一逻辑功能既可以通过软件,也可以通过硬件来实现,软件和硬件在逻辑功能上是等效的。也就是说,硬件实现的逻辑功能可以通过软件的模拟来完成,软件实现的功能也可以通过硬件来完成,只不过会存在性能、成本和实现的难易程度上的差异而已。

第二,软件定义和重构硬件。对于软件定义硬件的说法和文章有很多,包括那句经典的“软件定义一切”,即SDX(Software Define Everything)。我们理解,软件定义硬件的前提包括:第一,软件与硬件的逻辑等价性原则,硬件的功能可以通过软件来实现;第二,软件相比硬件所具有的优点:开发周期短,迭代速度快,可拓展性强。对于软件对硬件的定义,我们可以找到很多例子,包括最近比较关注的超融合(虽然其已经不是什么新鲜概念),其核心思想就是利用软件对基础硬件设备(包括服务器、存储、网络设备)进行重新定义。如果更生活化一些,比如智能手机和无人驾驶汽车,其本质是软件对硬件的定义和重构。其实对于未来的智能驾驶汽车,很难定义它是一个硬件产品还是软件产品。但核心点在于,软件重新定义了汽车。

第三,硬件与软件边界的突破。通过以上第一点和第二点的介绍,我们似乎也在逐步接受或者认识到硬件和软件的边界在逐步变的模糊。当然还是那句话,无论这个边界变得如何模糊,它始终存在,只不过是这个边界扩大到了我们认知所感觉不明显的一个位置。对于硬件和软件边界的模糊,我们也可以从IT公司业务的演变看到这一点,即硬件的公司在逐步开发自己的软件,软件公司也在做硬件。比如,软件巨头微软做的硬件产品Surface,用户体验还不错。硬件公司苹果的iOS操作系统也很强大,iPhone整体的软件优化水平也是全球一流,更难得可贵的是,iPhone应该是目前硬件和软件搭配的最为流畅的手机产品,没有之一。这也表明了产品型公司是如何做产品的。

细心的朋友可能会发现,在以上我们阐述硬件与软件关系(1)(2)(3)时,分别使用了三个不同的符号来连接,也表示了两者关系的演进。

有了以上的思考和认知,我们再去理解另一对概念的关系就比较容易了。

2、芯片与算法的边界

首先分析下概念,对于芯片,相信大家已经比较了解,就不做过多的解释。我们说一下算法,虽然算法是应用在IT领域,但我相信学数学的同学,特别是学习计算数学的,对算法应该更加熟悉。记得在本科课程中,专门有一门课叫做“算法设计”。从概念上来讲,算法指的是解决问题的方法和流程,是一段逻辑,一系列解决问题的清晰指令。或者更通俗一点来讲,算法是从A到B,所有可能的计算方式。

芯片与算法的关系。芯片和算法并不是独立或者对立的两个个体。芯片本身就集成了算法。算法是一种逻辑概念,芯片是算法的一种表现形式,软件也是算法的一种表现形式。承载算法的物理介质可以是运行在CPU上的代码,也可以是硬件电路。在这篇文章中,我们重点分析的是,当芯片形成之后,芯片与系统中软件算法的关系。芯片和软件算法的核心目的都是用来提升系统的计算能力。我们可以形象一点说,如果芯片对算力的影响是先天决定的话,我们也可以通过后天的努力(即对软件算法的优化)来进一步优化和提升算力。(注:下文中的“算法”,我们特指芯片之外的软件算法)

如果从硬件和软件角度来看,芯片更加偏向硬件(芯片集成了算法,算法固化到了硬件中),算法更偏软件(算法是软件更基础的思想)。从产业趋势来看,芯片和算法的边界也在变得模糊。 首先,我们明确一点:芯片和算法的目标任务或者功能是一致的,都是为了提升和加快数据的计算能力和处理速度。不过在原有的IT产业分工下,芯片和软件算法分别是由不同的企业来完成。我们认为,芯片与软件算法的边界也在随着计算架构和应用场景的变化而在不断演变。

逻辑计算:芯片与算法相互分离。在传统的逻辑计算架构下,芯片和算法是相互分离的。芯片和软件算法的关系,只要做到适配就好,无需相互定制和融合。因为,第一,在传统的逻辑运算架构下,数据的计算量并不是特别大,现有的计算资源和能力能够满足大部分计算需求。第二,由于摩尔定律,可以通过不断提高芯片的制程来提升芯片的计算能力。因此,在传统的逻辑计算体系下,芯片的计算能力对算力的提升起到了决定性作用,而软件算法的优化作用处于相对次要的位置。芯片和算法在这一阶段的这种适配关系,也就有了IT界经典的 “Win-Tel”时代。即微软的Windows操作系统与Intel的芯片形成了完美适配,两者不断相互以彼此产品为开发和应用基础,进行升级迭代,来推动IT产业向前演进。

智能计算:芯片与算法相互定制和融合。在智能计算时代,我们面对的不再是较为规则的逻辑计算,而更多的是不规则、非线性、难以定义的复杂场景。应用场景的变化,使得原有通用的CPU架构就难易满足功耗、性能等要求,需要对软件架构进行重新定义,对硬件进行重构。也就出现了我们对针对不同应用场景下的特定芯片,比如AI芯片。当然AI芯片根据其特定的应用场景也分为多种,但相比之前的逻辑计算,此时发生的一个变化是,芯片和算法的关系逐步走向相互定制和融合。即在芯片设计之初就要考虑在其上主要跑(运行)什么样的算法,而软件算法的设计也会根据芯片的基础架构进行相应的优化升级。这样做只有一个目的:最大化释放芯片和软件算法所带来的计算能力。

芯片与算法的深度整合并非易事。芯片和算法的协同设计,需要强大的整合和优化能力。这 需要既懂算法,也懂计算架构的开发人员,而往往这是两种不同领域的人,分布在不同的公司,沟通整合需要一定的成本。另外一个客观事实是,具有量级算力提升的算法优化是一个漫长的过程。

芯片和算法边界的突破。正是因为芯片和算法相互设计、相互融合的重要性。目前我们看到的一个现象是:芯片公司在开发更适配的算法,算法公司在研发专属的芯片。比如,Intel对Mobileye的收购,就是典型的芯片与算法的结合。Intel缺乏针对算法设计芯片的人才,而Mobileye也难易在短时间内提升车规级高性能处理器的设计能力,两者的结合无疑是最优路径。而Amazon、Google等也正在研发自己的芯片。另外,在6月4日百度AI开发者大会,百度也推出了云端全功能AI芯片-昆仑。这些似乎都在说明芯片和算法的边界在逐步发生变化。

硬件和软件,芯片和算法,是IT领域非常核心的两组关系。IT技术的演进和应用需求的变化,不断推动“硬件与软件”以及“芯片与算法”边界的演变。最后,回到最初题目问到的这个问题:IT是否具有边界?我们认为,技术变革不断推动IT边界的扩展和延伸, 但IT始终存在边界,只不过这个边界有可能会拓展到我们认知所触达不到的一个区域任何主体都是在自己的边界内做事情

以上也只是基于自己的认知边界,所能达到的一种思考边界。希望这篇文章能给大家带来一种IT思维训练。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180707B0P6PW00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券