由于设计师面临的越来越多的问题将在云端解决,在边缘AI及视觉联盟(Edge AI and Vision Alliance)创始人Jeff Bier看来,云计算将彻底改变电子设计。
在与EDN编辑顾问委员会的定期电话中,我们问Bier当今的电子设计工程师更关注哪些技术趋势。Bier认为,云是推动全球工程部门变革的首要力量,但是,你可能并不清楚云计算与电子设计有何关联。
Bier说:“可以说云与电子设计的方方面面都密切相关。”他深信,云将大大改变工程师的工作方式。
代码生成
Bier指出,工程师常用的沙箱Matlab十多年前就有一项功能,只需一步即可为嵌入式目标处理器生成代码。但该功能有一个潜在的缺点:在选择一款处理器时,需要考虑Matlab是否能够为该处理器生成代码。
嵌入式DSP工程师以前是从算法工程师那里获取Matlab代码,然后用汇编语言(现在可能是C或C++)重新编写整个代码。若使用Matlab的代码生成功能,则可省去这一步骤,节省了时间和金钱,但是只能用Matlab支持的处理器。
如今,在AI和深度神经网络领域,大多数算法都使用TensorFlow和Pytorch这样的开源架构在云端生成。它们使用各种工具、以多种方式在嵌入式处理器上实现。
“可以预见,未来在选择处理器时的一个重要考虑因素将是,哪种处理器最容易支持从云端到嵌入式设备的实现。”Bier说,“谁的云具有嵌入式实现按钮?支持哪些处理器?这样的云将在竞争中胜出,这样的嵌入式处理器也一样会赢……如果有用,人们就会这么做,因为比起自己编写代码,这容易得多,也快得多。”
图1:云与电子设计几乎每一个方面都相关。
Bier提到了西雅图的深度学习公司Xnor,该公司专注于这一流程,现已被苹果收购。
他说:“他们从苹果得到了一个好价钱,因为苹果知道快速面市的价值。”
Bier看到嵌入式软件正朝着云端发展,例如,现在已经有许多EDA工具上云。
“在云端完成PCB设计的情况也相似。那么,谁有‘明天之前给我制作10个原型’的按钮?”Bier说。
许多人尚未意识到云对于电子设计的重要性,这一变化来得很快,部分原因在于目前的云平台提供商都是大公司。
Bier举例说,FPGA厂商为了使FPGA易于编程,曾经做了多次尝试,这些难题最终由微软和亚马逊解决了,他们目前可在云端提供数据并行代码的FPGA加速。
“你只需提供信用卡号,然后按一下FPGA加速按钮就可以了,”他说,“微软和亚马逊解决了这个难题,因为它们具有相当的规模和同构环境,服务器完全一样,而不是有很多嵌入式系统,每一个却各不相同。他们解决了FPGA厂商无法解决的难题,这是为什么云成为设计和开发的重心的一个原因。”
那么,芯片制造商要怎样做,才能使云平台提供商愿意为他们的处理器开发代码生成功能?
“亚马逊、谷歌和微软并不在乎客户使用谁的芯片,只要使用自己的云就行。芯片制造商才希望自己的芯片最容易实现目标。”Bier说,“所以我认为芯片制造商一方面需要与大型云服务提供商合作,另一方面也必须做好自己的事。”
Bier指出,英特尔提供的DevCloud是一种基于云的环境,开发人员可在其上构建和优化代码。
“下一步是将所有工具和开发板连接到英特尔服务器,”Bier说,“无需等待安装任何设备或收到任何盒子。”
边缘与云
Bier说,边缘计算(指在云外的网络边缘执行的任何计算)是今天的嵌入式开发人员应熟知的另一个概念。随着越来越多的嵌入式设备接入到IoT,什么计算应该在云端完成,什么计算应该在边缘完成,每个系统都必须从成本、速度、隐私等各个方面综合考虑。
“如果我是一名嵌入式系统设计员,为什么要关心这些?好吧,这很重要。”Bier说,“假如有两种嵌入式设备,一种复杂而智能,运行AI算法并将结果(而非原始数据)发送至云端,另一种只是作为一个简单的数据收集器,用来将数据流上传到云端,后者显然无趣得多,价值也低得多。”
Bier举例说,一家婴儿监护仪公司开发了一款智能摄像头,用于监视婴儿的移动、呼吸和心律。那么,应该将智能置于嵌入式设备中还是置于云端?
Bier说:“如果将智能置于云端,当家里的网络连接中断时,婴儿监护仪将无法正常工作。但是,将智能置于云端可以使该产品提前一年面市,因为它只是一款傻傻的Wi-Fi相机……这样的话就无需专门构建一个嵌入式系统了。”
将智能置于云端,婴儿监护仪公司还能快速、轻松地迭代其算法。一旦达到适当的部署水平,便可快速完成A/B测试:为一半客户部署新算法,看哪种算法效果更好,然后再部署到每一个客户。部署新算法只需按几下键即可。
“问题的关键是,端点设备及一些中间节点(如连接到路由器的设备,或者街上运营商的电杆或数据中心里面的设备)有什么样的智能,”Bier说,“但是,目前大多数嵌入式系统人员并没有考虑这个。”
这家婴儿监护仪公司成功发布了其基于云端的监护仪,目前已批量发货。Bier指出,该公司对成本更加敏感,也不需要过多地迭代算法,目前正在研发第二代产品,主要使用边缘处理。
你需要DNN吗?
另一个改变嵌入式系统工作方式的领域是人工智能,其发展迅猛。
边缘AI和视觉联盟进行的调查显示,作为人工智能的基础,深度神经网络(DNN)过去五年中在嵌入式计算机视觉系统中的使用率已从大约20%上升到了大约80%。
“有两件事让人们发愁。”Bier说,“一件是,在他们的应用中使用DNN非常困难;另一件是弄清楚他们究竟应该在哪里使用DNN。”
Bier指出,DNN已成为一种时尚,每个人都想使用它们,但它们并不一定是解决许多问题的最佳方案。对许多人而言,传统技术仍然是更好的选择。
“如何判断一个问题适合用深度神经网络还是其他传统技术来解决?”Bier说,“嵌入式系统设计人员、硬件和软件设计人员确实需要更好地了解这一点,因为运行深度神经网络将对硬件产生很大影响——与传统的手工设计算法相比,DNN对性能和内存的要求高得多。”
(参考原文:Cloud Computing Is Changing Everything About Electronic Design,by Sally Ward-Foxton)