我们如何利用我们在图像处理和压缩方面的经验,以建立更好的AI加速器(并在该过程中易于使用)。

我们开发人工智能视觉架构的道路始于一个问题:是否有可能建立一个快速、智能和强大的系统,以最小的努力、高精度和低功耗运行最新的神经网络?

不同的说法:创建专门用于在边缘的低功耗嵌入式系统设计的专用AI加速器需要什么,具有竞争对手的性能 - 甚至超过 - 依赖云的系统的性能?

我们在2015年开始调查。当时,新兴研究表明,面部识别和对象检测可以在嵌入式平台中成功实施,而我们的客户对智能视觉系统越来越感兴趣,而不是传统的相机。

在此之前,Ambarella的核心力量是我们专用的硬件加速器,用于视频压缩,(特别是H.264和H.265)以及图像处理这在各种具有挑战性的照明条件下提供了卓越的图像质量,同时消耗最小的功率。为了构建这些加速器,我们仔细研究了问题并设计了很好地执行关键任务的定制硬件,同时丢弃了提供很少好处或无法有效实施的概念或选项。十多年来,我们使用这些加速器来帮助发射数十个行业定义视频产品无论是在消费市场还是专业市场:GoPro Hero运动相机、Dropcam家庭安防设备和大疆幻影无人机系列等等。

因此,当它来到计算机视觉处理的嵌入式架构时,我们遵循类似的路径,使用之前成功的相同方法,将现有的设计元素与新概念组合起来解决AI的独特挑战。在研究传统计算机视觉中的常见算法之后,卷积神经网络中的新兴技术,以及Vislab开发的自主驾驶算法堆栈(2015年Ambarella收购),我们开发了一个优雅的硬件,瘦,平均值,高度实际称为CVFlow®

新架构的根基。

和大家一样,我们从神经网络开始。它们的优点有很好的证明,包括:(a)只有少数关键操作控制性能,特别是卷积和矩阵操作;(b)所涉及的数学简单明了,具有足够的并行性。最明显的架构方法是部署处理器大军(例如gpu)或大型乘法器阵列(例如TPU),这可以立即提高神经网络的性能。然而,这种方法并不适合我们的客户所设想的低功耗嵌入式设备。

“从一开始,我们的目标是从地下创建一个简化的架构,以获得神经网络处理作为唯一的优先权。”

我们没有依赖于现有的通用解决方案,而是花了数年时间研究基于神经网络的处理的各个方面,专门为嵌入式市场设计了一个优化的引擎,明确的目标是消除gpu或tpu中存在的瓶颈和低效。从一开始,我们的目标就是从头开始创建一个精简的架构,神经网络处理是唯一的优先级。我们的成功需要创造力、对想法的批判性分析、在我们的VLSI、架构和软件团队中对设计权衡的讨论,并最终以共识解决复杂的问题。经过三年的研究、实验和高度集中的合作,CVflow诞生了。

在我的学术职业生涯中,我研究了处理器设计的历史 - 从小型处理器到大型缓存相干多处理器,用于科学研究,VLIW的机器,IA-64,GPU,SIMD机器等。我在那个时候所学到的,是,最着名的架构倾向于以一种相对于当天竞争思想的创新方式解决特定问题。例如,RISC机器被认为是重要的,因为它们的流管线更容易有效,更直接地编程,而不是它们的基于CISC的对应物。我们的CVFlow架构类似地脱颖而出,作为计算机视觉和推理加速的高度优化和创新的解决方案。

但它是用户友好的吗?

任何加速器,无论其目的如何,都可能具有挑战性。知道这一点,自成立以来,我们为CVFOLL培养了直观和无痛的编程模型。我们以前的方法在一块强大的硬件上包装了一个干净的API,以提供一个简单的用户界面 - 不是客户拥有自己的网络的环境中的选项,以及网络迅速更改的地方。此外,管理计算精度对客户来说是一个关键问题,以确保其网络继续在我们的SOC上表现良好。当我们开发CVFlow架构时,这些和其他考虑因素是我们思想的最前沿。

点击放大图像。

让编程为客户尽可能简单,投入了大量的时间和资源来发展我们的CVflow编译器和网络映射工具(CNNGen),构建一个工具堆栈,其读取高级语言规范的网络TensorFlow PyTorch和优化网络硬件上运行,同时提供足够的控制,使用户达到几乎相同的精度水平,作为他们原来的高精度网络。该工具栈建立在我们的CVFlow架构之上,强大到足以提取设备的最佳性能,同时也足够灵活,可以集成到外部服务,如Sagemaker NEO亚马逊网络服务,这允许客户将其体系结构和网络调整到云上的硬件上。

点击放大图像。

通过使用这套强大的工具,我们的内部团队、合作伙伴和客户到目前为止已经将200多个神经网络适应了我们的架构。端口网络解决了广泛的用例,包括2D/3D目标检测、分割和光流,并在极短的时间内(通常在数小时内)达到了合理的准确性。更重要的是,我们将工具开放给全部网络拓扑,而不是将用户限制在一组受限的拓扑中,这些拓扑的设计仅仅是为了让我们看起来更好。

点击放大图像。

随着越来越多的客户使用我们的工具链,我们每天都在增加新的网络。反过来,每一个新的网络都提高了我们的整体质量,因为它们为构建在相同架构之上的工具堆栈增加了新的复杂性和层次。我在这个设计上工作的时间越长,我就越欣赏CVflow适应计算机视觉变化趋势的灵活性,这只会随着时间的推移而加速。现在的神经网络看起来与我们刚开始的时候有很大的不同,但是我们的架构不断地适应,通过合并新的层次和需求来跟上节奏,所有的定制和优化都是为了高性能和低功耗的运行。

要了解有关我们嵌入式低功耗CVFlow架构的更多信息,或者如果您有兴趣使用我们的工具链迅速调整您自己的最先进的网络,请在我们的硬件上运行,请联系我们