哈喽小伙伴们 ,今天给大家科普一个小知识。在日常生活中我们或多或少的都会接触到可编程芯片(可编程芯片,为人工智能和物联网而生) 方面的一些说法,有的小伙伴还不是很了解,今天就给大家详细的介绍一下关于可编程芯片(可编程芯片,为人工智能和物联网而生) 的相关内容。
可编程芯片(Programmable chip,为人工智能和物联网而生)
互联网已经深入我们的生活,我们的衣食住行都与它有关。商业、工业和 *** 的许多服务和应用已经转移到云服务。这些服务和应用由覆盖全球的底层 *** 基础设施支持。约翰霍普金斯大学计算机科学助理教授金鑫先生在YOSIA Webinar未来论坛的青年联盟在线研讨会上分享了他在计算机 *** 方面的研究经验。
(资料图)
可编程芯片如何提高应用的服务质量?
金鑫教授以其对NetCache的研究为例,介绍了可编程 *** 芯片如何提升上层应用的性能。NetCache是一个键值存储系统,广泛应用于搜索引擎和社交 *** 。这些大规模的互联网服务需要高处理速度和低延迟。在NetCache中,可编程 *** 芯片被用作 *** 中的缓存,以平衡传统键值存储系统的负载。一般来说,一个键值存储系统中可能有几十亿甚至几百亿个数据对象,但一般来说,用户对数据的访问是不平衡的。
这导致一些服务器处理很多请求,而其他服务器的请求很少。这种情况会导致不同服务器的负载不均衡,导致整个系统的处理速度很慢,尾部延迟非常高。对用户的影响就是访问一些网页的时候会卡死。更复杂的问题是,服务器的负载不仅不平衡,而且是动态的。例如,一个服务器在某个时刻非常忙,下一个时刻另一个服务器会非常忙。
这个问题的经典解决方案是在后端内存前面放一个非常快的前端缓存(如上图)。很多研究证明,前端缓存只需要存储很少的数据对象,就可以保证整个存储系统的负载均衡。例如,我们的后端可能有100个存储服务器,这些服务器可能存储着数千亿个不同的数据对象。
而在我们的前端数据缓存中,只需要存储数万个频繁访问的数据对象,就可以平衡整个后端存储服务器的负载。就前端缓存而言,它唯一的要求就是前端负载的处理速度不能低于所有后端服务器的处理速度之和。
使用快速数据缓存来平衡存储系统的负载已经在存储系统中得到广泛应用。过去,我们的存储系统主要使用闪存和磁盘来缓存数据。在这种情况下,我们只需要在其前面放置一个非常快速的基于内存的缓存服务器,为整个服务器提供良好的负载平衡。
然而,随着各种互联网应用对低延迟和高吞吐量的要求越来越高,我们的后端存储系统已经从闪存和磁盘转向了内存。对于我们非常非常快速的基于内存的存储系统,我们不能再使用以前的基于内存的存储系统进行负载平衡。那么,我们在哪里可以找到这样一个快速缓存来平衡我们基于内存的存储系统的负载呢?
NetCache的想法是将这种缓存放在内存非常有限的交换机芯片上。这样,用户的访问不需要发送到服务器,用户对数据对象的访问请求可以直接在 *** 中处理。
金鑫教授在最后的总结中表示,因为摩尔定律的终结,过去几年出现了很多针对一些特定应用的专有处理器。可编程芯片也可以被认为是一种专有处理器,唯一的区别是可编程芯片的处理器是专门为IO密集型负载设计的。
在讨论环节,香港科技大学计算机科学与工程系副教授陈凯、香港中文大学计算技术研究所高级计算机系统研究中心副研究员黄群、香港中文大学副教授李白清、清华大学副教授李丹也出席了第七届在线研讨会。这些老师是计算机 *** 领域的专家。我们与观众一起讨论了以下主题:
问:黄群:以前的 *** 研究认为所有智能应用都应该在终端,但现在 *** 变得更加智能。那么,哪些应用程序在 *** 上比在终端上处理得更好呢?
答:金鑫:这个问题可以从 *** 芯片和CPU的区别来考虑。CPU主要用于通用计算, *** 芯片主要针对包处理进行优化。数据包处理是一项IO密集型计算。我觉得这种网内处理更适合IO密集型负载。比如我前面提到的,我们在使用 *** 做缓存的时候,只需要做一个非常简单的读取操作。再比如计算神经 *** 。显然,计算神经 *** 不适合 *** 芯片,更适合我们的终端。
问:黄群:例如,在云计算中,可能有多个应用程序同时在一台服务器上运行,或者可能有多个客户端在一台服务器上运行多个应用程序的情况。这使得服务器上的资源不足以支持许多用户的应用程序。我们应该如何处理这个问题?
答:金鑫:我觉得有必要有一些底层的隔离机制来隔离多个用户的应用。另一方面,我认为我们还需要在资源管理和优化方面做一些工作,以便更好地将 *** 交换芯片上的资源分配给多个应用程序。这样,全网就不会出现黄群所说的“站点悲剧”。
问:李白清:除了可编程 *** 芯片,网卡也是可编程的。如何比较可编程交换机和可编程网卡,各自有什么优缺点?
答:金鑫:首先在性能上,交换机的性能其实比网卡高很多。比如现在一个交换机处理速度6.4T,我们的网卡可能只有40G或者100G。这样交换机的处理速度可能是网卡的几十倍甚至上百倍。如果一个应用程序可以卸载到交换机上,它可以节省大量的网卡和服务器。另外,从功能上看,很多可编程网卡都是基于ASIC和FPGA的。
基于FPGA的网卡在灵活性方面可能比当前的可编程交换机更灵活。我们可以把更多的功能卸载到网卡上。此外,通过RDMA,网卡可以直接与主机上的内存进行通信,这可能会解决交换机芯片上内存相对较小的问题。综上所述,可编程交换机在性能上远远优于我们的可编程网卡,我们的可编程网卡可以提供更多的功能和更大的内存。
问:陈凯:有很多应用需要可靠的传输。如果我们打开应用卸载开关,当数据包在 *** 中被丢弃后,卸载到 *** 的应用将如何处理这种无声丢弃?如何保证可靠性?
答:金鑫:这个问题和我们要对 *** 应用什么卸载,以及这个应用的语义有很大关系。以NetCache为例,它将存储系统的缓存卸载到 *** 中,只提供读操作,不提供写操作。在这种情况下,客户端可以感受到 *** 的无声下降。所以静音掉线的问题要结合具体应用。根据具体应用的语义,设计机制检测 *** 是否丢包,丢包后客户端如何保证上层应用的可靠性,并提供相应的基于客户端的解决方案。
问:黄群:当我们有多个用户希望将他们的应用程序部署到交换机上时,我们是否需要像 *** 管理员这样的角色来帮助用户部署这些多个 *** 应用程序?
答:金鑫:我觉得我们对这个问题的系统研究可以学到很多东西。例如,在操作系统和虚拟机中,有时多个应用程序必须在同一个操作系统上运行,或者我们有多个租户想要将多个虚拟机部署到同一个服务器上。当多个用户想要在交换机上部署多个应用程序时,这种情况非常类似。我们还可以借鉴OS、hypervisor等很多思路和方法,将多个c/用户部署应用到交换机上,从而更好的分配一个资源,隔离多个用户。
问:黄群:我们的可编程 *** 应用程序在广域网上的场景是怎样的?WAN上的多个不同ISP之间是否需要协调?我们的国际标准化组织在他们的协调过程中扮演什么角色?
答:金鑫:首先,我认为近期比较可行的方案是,ISP只能管理自己的可编程交换机,而不能将自己的应用部署到其他ISP交换机上。比如中国移动只能在自己的广域网交换机上部署中国移动自己的应用,而不能在中国电信的交换机上部署。这是近期可行的实用方案。
从长远来看,我们可以想象我们实际上可以在交换机上设计一个类似于BGP的协议,让不同的ISP可以通过一个AS协议进行协商。如何将自己的应用程序部署到其他ISP的交换机上?同时也可以提供一定的性能和功能隔离。例如,我的应用程序不会恶意地对其他ISP的其他应用程序造成意外的损害或降低其他ISP的 *** 性能。
参与者提问环节
问:未来可编程芯片有可能用在哪些领域?能不能做一些展望?
答:金鑫:主要有两个方面。一方面,它侧重于传统的 *** 功能,如网内遥测和 *** 诊断,并侧重于 *** 性能的改善,如负载均衡和多路径路由。另一方面,如何将可编程 *** 和终端系统结合起来,对 *** 和系统做一些协同设计。比如我们之前讲过 *** 和存储系统的结合, *** 是如何和一些数据处理系统结合的。
例如,可编程交换机可以与流处理系统相结合,将流数据的处理直接卸载到 *** 中,这可以大大改善流处理系统,并减少处理的延迟。还有很多其他的顾虑,就是我们在做分布式机器学习的时候,能不能在 *** 中做一些数据预处理,减少学习和训练的时间。综上所述,一方面侧重于传统 *** 功能、 *** 测量和 *** 性能的应用,另一方面用于数据分析和机器学习应用。
问:由于P4有限的可编程性(例如,不能支持队列调度的定制,不能存储每个流的状态),它能支持复杂的或有状态的 *** 功能吗?
答:金鑫:其实还是要结合具体的 *** 功能。事实上,有许多流式算法可以用很少的内存带来许多状态。基于这种流式算法,可以近似实现存储功能和一些更复杂的 *** 功能。例如,最近的一些工作实际上是研究如何在可编程芯片上为 *** 实现这种按流QoS,其中流算法可以用来以很少的内存保存 *** 状态。
问:可编程性的概念主要是指牌桌阶段的可编程性。交换机上对于管理和调度很重要的模块基本上与传统的交换机调度模块相同。未来的可编程开关有没有可能提供这种功能的进步?
答:金鑫:这是一个非常好的问题。虽然现在市面上已经有了可以支持查表阶段的可编程芯片,但其实通过工业界和学术界的很多研究,人们已经在考虑如何让队列管理和调度可编程。相信未来的芯片也可以支持队列管理和调度模块的功能。
应邀发言者
约翰霍普金斯大学计算机系助理教授金鑫。2011年获得北京大学计算机科学学士学位和经济学学士学位,2016年获得普林斯顿大学计算机科学博士学位,2017年获得加州伯克利大学AMPLab/RISELab博士后研究员。主要从事计算机 *** 与系统研究,重点研究软件定义 *** 、可编程 *** 、软硬件协同设计、人工智能驱动的 *** 与系统设计、低时延大数据分析系统设计。他在计算机 *** 和系统领域做了大量有影响力的工作,发表在计算机 *** 和系统的顶级会议上,包括SIGCOMM、SOSP、OSDI和NSDI。他获得了许多奖项和荣誉,包括NSDI 18年更佳论文奖、脸书通信与 *** 奖、Siebel学者奖、中国 *** 杰出留学生奖、普林斯顿Charlotte Elizabeth Procter荣誉奖等。
以前研讨会的材料:
1.
一个世纪的暗物质探索,人类无法放弃的科学领域。
2.
遥感卫星遇上AI,想象空间可大了。
3.
电池技术从何而来,又将何去何从?