高级综合(hls)软件协同设计的方法( 四 )


具有讽刺意味的是 , 对于人工智能而言 , 自动化比许多其他任务更容易 。“我们的编译器不仅可以将这些AI模型的软件编译为在芯片内处理器上运行的指令 , 而且我们还可以重新编译为特定领域的架构 。整个硬件设计基于实际模型 , ”赛灵思的Ni说 。“这是真正的软件/硬件协同设计 。这是唯一可能的 , 因为虽然我们有像人工智能这样具有挑战性的问题 , 但它也是一个定义明确的问题 。人们已经发明了AI框架和所有API , 所有插件 。TensorFlow或PyTorch已经定义了如何编写层和类似的东西 。编译器需要处理的事情较少 , 在这些范围内 , 我们可以进行大量优化并调整硬件创建 。”
走到一起
纯粹的硬件优先或软件优先的方法不太可能长期成功 。这需要合作 。“人工智能应用需要一种整体方法 , ”世界语的弗拉纳根说 。“这涵盖了从低功耗电路设计师到硬件设计师、架构师、软件开发人员、数据科学家以及最了解其重要应用的客户的所有人 。”
自动化还不如人类 。“基于人工智能的方法将帮助专家优化算法、编译器和硬件架构 , 但在可预见的未来 , 每个领域的人类专家都将需要‘在循环中’ , ”Kogel说 。“最具竞争力的产品将由团队开发 , 不同学科在开放和高效的环境中进行协作 。”
完全自动化可能需要很长时间 。“这将始终涉及人体工程学方面 , 因为这是一个非常困难的决定 , ”杨说 。“你在哪里定义这条线?如果你犯了一个错误 , 它可能会非常昂贵 。这就是仿真、仿真和原型设计非常重要的原因 , 因为您可以运行‘假设’场景并执行架构权衡分析 。”
有时 , 阻碍的不是技术 。“这需要组织变革 , ”萨哈说 。“你不能让独立的软件和硬件团队从不互相交谈 。必须去除该边界 。我们看到的是 , 虽然许多团队仍然是不同的团队 , 但他们通过相同的层次结构进行报告 , 或者他们有更密切的合作 。我见过硬件组有一个算法人员向同一经理报告的情况 。这有助于确定算法的可实施性 , 并允许他们对软件进行快速迭代 。”
结论
新的应用程序迫使软件编写、硬件定义以及它们如何相互映射的方式发生变化 。定义新软件范式的僵局已经打破 , 我们可以期待看到软硬件组合流程的创新速度加快 。它会扩展回在单个CPU上运行的顺序C空间吗?可能暂时不会 。但归根结底 , 这可能只是问题中非常小的和无关紧要的部分 。