Python 全栈系列62 - 以测试为导向的设计

说明

bug是一个几乎永恒的话题,有的时候是硬bug(例如某个功能不能用)。有的时候是软bug(增加功能很困难)。

看到这篇文章的一段话有感

风马牛:今年因为华为的事,国内对芯片、原创技术的讨论很多。您觉得国内企业做芯片最大的难点是什么?
吴军:至少三个。第一个,芯片的老祖宗罗伯特·诺伊斯说过,半导体成本低得不得了,就是沙子和铜线,低到了修一个电器都比造电器还贵,那它值钱的是什么?是谁能把沙子和铜线变成电子元器件,这是关键工艺,工艺背后是技术。实际上半导*造,大家买的光刻机都一样,都是从美国、荷兰或者日本那几家公司买,台积电用的和大陆这些企业用的都是一样的,关键在哪?台积电能保证, 5 纳米、 7 纳米这种技术要求很高的芯片,成品率能做到 80% 以上。但大陆一些企业,哪怕十几纳米的芯片,成品率一半没有,没法在市场上竞争。
工艺需要工匠精神。台积电原来有一个 CTO ,在斯坦福当过教授,他说像台积电这种企业里,在生产线上调光刻机设备的工程师都是博士毕业以后,有十几年的工作经验,这十几年就在做这件事。所以稍微有一点不对,工程师就知道大概哪里出了问题,他们都很有经验。这是一个有长期经验的企业,培养出来的工匠精神。大陆各种机会太多了,你见过哪个工程博士毕业,在一线干活超过 4 年的,就算他同意,他的丈母娘都不同意,会埋怨他怎么还是一个 individual contributor ,一个自己管自己的人,连个经理都不是。
第二个,测试很重要。集成电路里大概有一半不是完成功能的电路,而是为测试准备的电路,芯片一旦有问题,马上就能知道。如果没有测试电路,芯片封装之后才触发问题,是没法重拆下来的,只好把整个产品扔了。比如一块有 60 亿个晶体管的英伟达芯片,坏一点可能就完蛋了。
第三个,今天*芯片总产量不低,低端芯片都没问题,真正有问题的就两个,存储器和处理器。先说处理器,处理器关键是要形成一个产业链。比如说 Intel 处理器和微软高度耦合, 因为 Windows 的开发团队会派人到 Intel 设计团队里,处理器一变化,马上去优化自己的操作系统。所以处理器和操作系统这些是高度相关的,要对知识产权有足够多的尊重才行。如果大家都 copy Windows ,不给钱,就出不了微软这样一家公司,也出不了足够强大的处理器,这是很大的问题。另外就是存储器。存储器是集成度密度最高的芯片之一,投资巨大。今天一条新的存储器生产线价值差不多是 200 亿美元,初期投资还不光是这 200 亿美元,技术投资也是巨大的,单靠国内某一家企业很难实现。

软件/算法属于一种比较抽象产品,但是和实体产品有很大的相似性,可以类比。在上个时代,我们基于电子管、晶体管来构建物理上的逻辑,通过大规模集成电路来实现成熟的应用。在这个时代,我们(已经可以)基于程序解释器,构建了抽象逻辑(然后由解释器交给机器来执行),顺理成章的,我们将通过类似集成电路的思路,来实现抽象逻辑的高度集成,我认为这就是第四次工业革命.人工智能的核心

1 工匠精神

核心思想就是极致。人工智能的目标就是负责data indata out的工艺和技术。可以分为两块:

  • 1 架构(结构)
  • 2 算法(模型)

2 测试导向

以测试为导向的开发,换句话说,先给具体的测试样例,开发就以这个为目标。如何让使用的人相信工艺/产品合格?测试。

  • 1 功能/测试。如果说功能是数据(data),那么测试更需要元数据(meta)。这部分的内容在过去实在太少,所谓的log作用都不大。
  • 2 增加大量的元数据,并配置对应的控制通道,功能和应用,数据和控制可以达到一半一半。
  • 3 抽象标准结构。以图为基础构建结构。
  • 4 抽象标准数据单元。数据对象统一表达为参数化分布,并提供统一(多态)的操作方法。
  • 5 状态机控制。每部分的控制都由状态机完成,状态机代表了某个功能单元(比数据单元高一级)的工作状态,并可以提供控制。

3 市场

  • 1 免费试用。产品初期应该以类似免费使用(或者白菜价)推向市场,接受检验。
  • 2 SLA(Service Level Agreement)检验。从可靠性和效率进行衡量,定义SLA阈值,在经过足够量/场景的检验后,产品转入准商用版本。此时将 限制免费使用的范围,按照「限定资源,人人平等」的原则发放免费资源,进一步提升准商用版本的可靠性和效率(准商用版本比白菜价高一点)。
  • 3 商用版本。只剩下免费版和商用版。商用版具有更好的可靠性、效率并给用户提供更方便而全面的过程交互。
上一篇:Ubuntu20.04 Linux 5.4.0-62 安装Cuda10.2


下一篇:java:乘积最大