如果您选择——大多数团队都会选择——用FPGAs进行概念验证或验证平台,那么从一开始,您就会被同时拉向三个方向,如图1所示。架构师希望您的FPGA实现尽可能接近他们的微架构。对他们来说,关键是看设计如何有效地实现他们的算法。但是,软件团队会督促您针对性能优化FPGA设计。这意味着改变架构以适应所选FPGA芯片的优势和限制。你可以依靠营销来增加这种压力——主要是如果他们的计划包括早期进入FPGAs市场。存在这样一种风险,即概念的证明会像科学怪人一样,有自己的生命。
图1:如果你选择在FPGAs中做一个概念验证或验证平台,你会被拉向三个方向:来自架构师、软件团队和生产需求。
第三,需要将设计移植到ASIC上进行批量生产。这将为您带来竞争力所需的性能、动力和面积。理想情况下,ASIC设计将准确反映最初的理论架构,并针对您选择的ASIC工艺和IP库进行优化。通过转换成熟的FPGA设计,您可以在多大程度上获得ASIC设计,这是一个至关重要的问题。答案将取决于架构师、FPGA和ASIC团队合作的紧密程度。
也许支持这种说法的最好方式是看看一些区分人工智能加速器的架构特征,并在设计过程中遵循它们。
并行处理是人工智能加速器的基础。它可以通过大量小型专用处理核心来实现,如特定算法的GPU。或者它可以以数据流的方式完成:专用处理器的流水线。这两种架构都给FPGA实现带来了挑战。
设计者可以在RTL对处理元件及其互连进行编码,并将RTL交给FPGA设计工具。但是,要获得具有足够设备利用率和性能的设计——获得接近100%的布线——通常至少需要在平面规划和布局方面进行人工干预。
这种规划必须关注FPGA中资源的可用性和位置,而不是加速器的原始架构。例如,该体系结构可能希望计算元素群集在本地组中。然而,FPGA可能要求您将计算元素分散在整个芯片中,甚至将它们分成更小的模块,以确保足够的路由和RAM资源。这可能需要改变互连架构,例如改变总线结构。
还会出现其他选择。例如,深度学习推理加速器的设计师经常使用精度降低的算法——比如8位而不是32位——来提高速度和节省能源。但出于性能和资源的原因,FPGA团队可能希望使用FPGA的32位乘累加硬宏,而不是由逻辑单元构造的8位乘法器。这种选择会使FPGA设计逐渐偏离原始架构,并影响转换过程。
ASIC转换
然后,是时候将实现转移到ASIC上了。在小型、简单的SOC中,FPGA到ASIC的转换意味着一个近乎机械的逐步过程。拿出任何特殊的FPGA功能,如乘法累加模块、高速串行接口、PCIe接口和DRAM控制器。用功能等同的ASIC IP替换它们,并对内部总线或接口进行任何必要的更改以连接它们。为了重新合成逻辑,插入新的时钟网和自测结构,分配功率,并进行验证。
这对于人工智能加速器来说仍然是可行的。在FPGA中工作的任何东西都可以通过这种方式转移到ASIC中。但是,您为优化FPGA设计所做的设计更改呢?由于ASIC中有基本上无限的逻辑和路由资源以及大量的第三方IP库,这些针对FPGA的更改将是不必要的,甚至可能适得其反。
进行转换的团队必须理解最初的设计意图,这样他们才能根据具体情况决定是使用FPGA设计还是恢复最初的架构。这对于确定合成哪个代码和选择如何最好地使用IP是正确的。
再举两个例子可能会有帮助。首先是记忆。由于它们的并行架构,AI加速器通常在处理元件内部或之间采用许多不同形状、大小、类型和速度的小型RAM实例。这种做法完全符合ASIC设计的优势,但它可能会对FPGA造成严重破坏。虽然可以将各组FPGA逻辑单元转换成逻辑结构中的小RAM,但设计人员通常会在FPGA中使用大型硬连线可配置RAM模块。这给FPGA团队留下了两个选择:要么修改原始架构,使用大的共享RAM块,而不是许多较小的块,要么设计一个包装FPGA的大块RAM的包装器,以仿真一组较小的实例,希望不会耗尽块RAM附近的路由资源。
图2:从FPGA迁移到ASIC提供了更多选择。决策取决于对设计意图的清晰理解。
当从FPGA转移到ASIC时,有更多的选择,如图2所示。转换团队应该直接转换FPGA设计吗?经验丰富的转换供应商在ASIC设计中实现FPGA模块RAM的功能不会有任何问题。或者团队应该恢复到具有许多分散的RAM实例的原始架构?更小的ram将更快、更节能,并可能恢复原始架构的数据流,消除可能的内存瓶颈。然而,决策取决于对设计意图的清晰理解。
多合一
还有多个FPGAs的问题。许多加速器设计对于单个FPGA来说太大,必须分布在多个芯片上。这些芯片如何相互通信将影响转换过程。
例如,如果FPGA通过诸如存储器总线的高速并行总线链接,设计者可以将所有FPGA的内容放入ASIC中,通过相同的并行总线排列链接。假设FPGAs通过类似PCIe的东西连接。在这种情况下,设计人员将不得不移除PCI接口,并根据模块间数据流的性质,用直接并行连接或可能的片上网络来取代它们。重要的是要回顾原始架构,看看它是否被修改以适应芯片到芯片接口的插入——例如,通过插入大缓冲存储器或创建消息传递协议——并消除这些修改。
密切的合作
一旦功能设计完成,工作就可以进入时钟架构了。这里,ASIC也不受FPGAs的限制。转换团队可以研究原始架构的工作原理,并利用它为本地时钟区域、门控和频移提供的所有机会,所有这些在ASIC领域都是现成的。
图3:该表列出了FPGA到ASIC转换过程中的每个步骤,并指明了负责执行该步骤的人员。
同样,经验丰富的转换团队可以利用他们对设计意图的理解和对测试供应商能力的了解,利用加速器的并行架构来实施并行内置自测。这种优化超越了ASIC设计,深入到供应链中。做得好的话,它将大幅降低测试成本,显著节约整体单位成本,如图3所示。
我们已经看到,将AI加速器设计从中间FPGAs转换为ASIC几乎是一个机械的过程。但由于人工智能高度并行加速器的性质,理解原始设计意图和架构微妙之处、能够识别FPGA特定优化、拥有人工智能芯片经验、能够在客户和供应商专家之间自由分配任务的转换团队可以实现更好的结果。从一开始,具有出色功率、性能和面积的ASIC就是设计的全部内容。
精彩推荐 至芯科技FPGA就业培训班——助你步入成功之路、11月30号北京中心开课、欢迎咨询! 基于LVDS的高速串行数据传输系统设计 FPGA学习-异步FIFO原型设计与验证扫码加微信邀请您加入FPGA学习交流群
欢迎加入至芯科技FPGA微信学习交流群,这里有一群优秀的FPGA工程师、学生、老师、这里FPGA技术交流学习氛围浓厚、相互分享、相互帮助、叫上小伙伴一起加入吧!
点个在看你最好看
原文标题:为你的AI芯片从FPGA走向ASIC?
文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。
-
FPGA
+关注
关注
1629文章
21729浏览量
602986
原文标题:为你的AI芯片从FPGA走向ASIC?
文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论