0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用SLX FPGA优化人脸检测数据中心的OpenCL AI内核?

电子工程师 ? 来源:虹科FPGA团队 ? 作者:虹科FPGA团队 ? 2021-05-08 14:55 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本案例介绍了如何使用Silexica的SLX FPGA优化人脸检测数据中心的OpenCL AI内核。

引言

FPGA正越来越多地被用作数据中心的协处理器。这一转变背后的驱动力是利用FPGA的并行特性的AI应用。Xilinx Alveo系列加速器卡使用PCI Express接口连接到x86处理器,在这个领域非常流行。对于这些加速器卡的编程,你可以使用自上而下的方法,从顶级的C/C++和OpenCL应用程序开始,然后向低级别的内核工作,或者使用自下而上的方法,将内核块编译成Xilinx对象(.xo),然后可以在以后的阶段连接成二进制。

与自顶向下的流相比,自底向上的流程有几个优点。(1) 它允许将内核的设计、验证和优化与主应用程序分开。(2) 它通过将设计分割成更小的组件,为内核的开发和优化提供更快的迭代周期。(3) 它有利于重复使用;一个(.xo)文件的集合可以像库一样被重复使用。

在本应用案例中,我们使用人脸检测应用作为参考设计,展示设计者在使用Vitis自下而上流程时,如何使用SLX FPGA来优化内核。请注意,同样的方法也适用于从头开始设计内核或从Vitis HLS导入现有内核。

开发流程

创建该应用需要使用Silexica和Xilinx的以下开发工具。

● SLX FPGA版本2020.4-sp1● VitisLibraries 2020.2版● Vitis高级合成2020.2版

● Vitis统一软件平台2020.2版

整个端到端流程如图1所示。该流程从创建一个新的SLX项目开始。但是,如果您有一个现有的Vitis HLS项目,SLX FPGA可以直接导入它。

54e32fa6-a9f6-11eb-9728-12bb97331649.png

图1:Vitis自底向上项目的SLX FPGA工作流程

一、创建并配置SLX FPGA项目

54baee24-a9f6-11eb-9728-12bb97331649.png启动SLX FPGA,点击“New SLX project”图标,启动项目创建向导。创建一个新的SLX FPGA项目,如图2所示。下一步是配置这个项目。

5536701c-a9f6-11eb-9728-12bb97331649.png

图2:创建一个新的SLX FPGA项目

当你创建一个新的项目时,配置编辑器会自动出现,但你也可以通过点击橙色的齿轮按钮随时调出它。如图3所示,将你的应用程序源文件拖放到项目的spec文件夹中。在本案例中,我们从Rosette基准1中抽取人脸检测应用。接下来,你需要指定FPGA部件号和构建选项。对于这个应用,我们的目标是Alveo U280 FPGA。在FPGA部件栏,选择xcu280-fsvh2892-2L-e。要设置构建选项,输入clean、build和run命令,如图3所示。对于‘make’项目,如图,请确认makefile没有使用硬编码编译器,而是使用(CC)和(CXX)环境变量来分别引用C和C++编译器。SLX将在不同的分析阶段用其专有的编译器覆盖这些变量。Run命令执行testbench(也包括在基准套件中),以确保功能的正确性,也用于分析应用程序的动态行为。

5560afda-a9f6-11eb-9728-12bb97331649.png

图3:配置一个新的SLX FPGA项目

54baee24-a9f6-11eb-9728-12bb97331649.png这些基本配置完成后,我们可以继续为我们的应用程序选择顶级硬件函数,并设置正确的接口。点击“函数映射”按钮,打开功能映射编辑器。如果你确定顶层硬件函数,检查它的可综合性问题,并使用函数映射编辑器中的右键菜单将其映射到FPGA上。或者,运行自动选择FPGA功能,让SLX自动选择顶层的硬件函数。对于这个人脸识别应用,我们选择face_detect_sw作为我们的顶级硬件函数。一旦正确选择了顶层硬件函数,函数映射编辑器将看起来像图4,所有映射到FPGA的函数将有一个红色边框。

557e236c-a9f6-11eb-9728-12bb97331649.png

图4:SLX FPGA函数映射编辑器

现在我们准备为这个函数选择接口。在函数映射编辑器中选择顶级硬件函数后,点击properties标签,用左侧的菜单打开接口选择,如图5所示。为所有数组和指针接口选择axi_m接口,为标量选择s_axilite接口。这将生成在Alveo加速器卡上使用Xilinx对象所需的接口pragmas。此外,SLX的优化引擎现在意识到了接口限制,并相应地选择了优化原则。

559d341e-a9f6-11eb-9728-12bb97331649.png

图5:SLX FPGA接口选择

在正确选择了所有接口后,我们现在设置使用SLX FPGA优化和生成pragmas。

二、在SLX FPGA中生成HLS pragmas

54baee24-a9f6-11eb-9728-12bb97331649.png

生成HLS pragmas有两个步骤:

1. 在FPGA中查找并并行化循环

2. 生成插入HLS注释的代码

在第一步中,SLX的优化引擎搜索可能的解决方案的设计空间,以确定最优的实用程序和参数集。设计空间包括:(1)循环的不同并行化选项,即针对不同展开因子采用流水线或unroll;(2)数组的多维分割和重构选项(完全分割或循环分割);

(3)函数层次结构:内联或阻塞。

对于这个特定的例子,这将导致大约1.32 x e19的设计点,SLX的优化引擎将在70秒内收敛到一个解决方案。

55cd78b8-a9f6-11eb-9728-12bb97331649.png

图6:SLX FPGA提示视图

图6显示了SLX FPGA提示视图。提示视图中的第四列和第五列显示了应用程序中不同函数和循环的CPU总成本和FPGA总成本。FPGA总成本是对特定功能或回路的延迟估计。这对于帮助开发人员集中精力进行优化特别有用。例如,第33行(图6)上的weekClassifier函数在纯软件实现中花费24.4%的CPU时间。然而,它对FPGA实现中的关键路径延迟的贡献仅为3.63%。

相比之下,在纯软件实现中,cascadeClassifier函数的第4行上的循环(图6)花费了79.9%的CPU时间,但贡献了97.2%的FPGA关键路径延迟。提示视图还突出显示了携带依赖关系的关键循环。请注意,SLX FPGA不认为所有的lcd都是相等的,并将可以忽略的lcd(例如,归纳和缩减变量)从关键的lcd中分离出来。这些信息可以帮助开发人员节省时间,使他们能够将精力集中在FPGA实现中真正重要的应用程序部分。

55de6cfe-a9f6-11eb-9728-12bb97331649.png

图7:显示自动编译插入的SLX FPGA代码生成向导单击“Generate HLS Code”按钮 将打开代码转换向导,如图7所示。在这里,用户可以检查生成的代码与原始版本的代码并选择/取消代码生成的pragmas,以便对实现进行微调。

三、在Vitis应用项目中导入Xilinx对象

54baee24-a9f6-11eb-9728-12bb97331649.png在一个SLX FPGA项目的hls文件夹包含一个Vitis hls项目SLX优化的源代码。我们使用VitisHLS打开这个项目,并将RTL导出为Xilinx对象,如图8所示。在导出到Vitis之前,我们需要添加Extern“C”包装器以确保C链接。

55f760b0-a9f6-11eb-9728-12bb97331649.png

图8:从Vitis HLS导出Xilinx对象

在Vitis工作空间中,创建一个新的应用程序,使用一个alveso U280卡作为目标设备,如图9所示。

56066d3a-a9f6-11eb-9728-12bb97331649.png

图9:在Vitis统一平台中创建应用程序项目创建项目之后,我们将.xo文件导入内核的src文件夹,如图10所示。导入.xo文件后,单击“添加硬件功能”按钮,并选择列表face_detect_sw。

562db9bc-a9f6-11eb-9728-12bb97331649.png

图10:在Vitis应用程序项目中导入内核开发人员现在可以利用加速的face_detect_sw内核创建更广泛的应用程序,该应用程序运行在x86主机上。

5655493c-a9f6-11eb-9728-12bb97331649.png

图11:Vitis Analyzer系统图

性能改进

在综合设计的基础上,对SLX优化后的内核与未优化前的内核的性能和资源利用率进行了比较。对于这个特殊的设计,我们允许SLX FPGA使用选定设备上的所有可用资源;但是,如果有必要,还可以添加其他约束。表1显示了结果的摘要。我们发现LUT增加3倍,延迟减少7.8倍,FF增加2.4倍,DSP块增加2.7倍。对于alveso卡来说,这种资源利用率的增加并不是一个大问题,因为所有资源的利用率仍然低于5%。如果需要更高的性能,SLXFPGA中可以提供大量额外的分析功能,以帮助指导设计者更快更有效地重构他们的代码。

结论

本案例展示了如何利用Vitis自下而上的内核流程,将SLX FPGA用于优化针对PCIe连接Alveo卡的内核。在这个例子中,SLX FPGA能够减少一个常用的人工智能内核的延迟,用于人脸检测。该方法可应用于大多数基于赛灵思的数据中心应用,包括亚马逊F1实例。无论是从头开始开发应用,还是重复使用现有的设计并根据需求进行定制,都可以应用这种方法。

原文标题:虹科方案 | 使用HLS优化人脸识OpenCL AI内核

文章出处:【微信公众号:FPGA技术支持】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1646

    文章

    22102

    浏览量

    620902
  • AI
    AI
    +关注

    关注

    88

    文章

    35799

    浏览量

    282659
  • Vitis
    +关注

    关注

    0

    文章

    151

    浏览量

    8006

原文标题:虹科方案 | 使用HLS优化人脸识OpenCL AI内核

文章出处:【微信号:HK-FPGA_Dep,微信公众号:FPGA技术支持】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    睿海光电以高效交付与广泛兼容助力AI数据中心800G光模块升级

    引领AI时代网络变革:睿海光电的核心竞争力 在AI时代,数据中心正经历从传统架构向AI工厂与AI云的转型。
    发表于 08-13 19:01

    华为面向拉美地区发布全新星河AI数据中心网络方案

    在华为数据通信创新峰会2025拉美站期间,以“星河AI数据中心网络,赋AI时代新动能”为主题的分论坛上,华为面向拉美地区发布全新升级的星河AI
    的头像 发表于 08-11 10:42 ?1015次阅读

    PCIe协议分析仪在数据中心中有何作用?

    数据中心的整体可靠性。以下是其核心作用及具体应用场景的详细分析:一、性能优化:突破带宽瓶颈,提升计算效率 链路带宽利用率分析 场景:在AI训练集群中,GPU通过PCIe与CPU交换数据
    发表于 07-29 15:02

    是德科技推出用于大规模AI数据中心的系列解决方案

    ·?为AI基础设施提供商提供从物理层到应用层数据中心模拟和优化解决方案 ·?验证和优化系统级性能,确保AI
    的头像 发表于 04-10 08:51 ?316次阅读
    是德科技推出用于大规模<b class='flag-5'>AI</b><b class='flag-5'>数据中心</b>的系列解决方案

    是德科技推出AI数据中心构建器以验证和优化网络架构和主机设计

    : KEYS )推出Keysight AI (KAI)数据中心构建器,这是一款先进的软件套件,通过模拟真实工作负载来评估新算法、组件和协议对AI训练性能的影响。KAI数据中心构建器的工
    的头像 发表于 04-10 08:50 ?332次阅读

    适用于数据中心AI时代的800G网络

    随着人工智能(AI)技术的迅猛发展,数据中心面临着前所未有的计算和网络压力。从大语言模型(LLM)训练到生成式AI应用,海量数据处理需求推动了网络带宽的快速增长。在此背景下,800G网
    发表于 03-25 17:35

    华为全新升级星河AI数据中心网络

    在华为中国合作伙伴大会2025期间,以 “星河AI数据中心网络,赋AI时代新动能”为主题的数据中心网络分论坛圆满落幕。本次论坛汇聚了来自全国的300多位客户和伙伴,共同探讨
    的头像 发表于 03-24 14:46 ?579次阅读

    优化800G数据中心:高速线缆、有源光缆和光纤跳线解决方案

    一种经济高效的方式,实现更大的带宽传输。 800G有源光缆 800G有源光缆通过增加带宽、降低延迟并减少功耗来优化性能,非常适合去中心数据中心和云环境。此外,VCSEL与PAM4 DSP技术
    发表于 03-24 14:20

    Cadence颠覆AI数据中心设计

    日前举办的英伟达 GTC 2025 开发者大会汇聚了众多行业精英,共同探讨人工智能的未来。而人工智能正在重塑全球数据中心的格局。据预测,未来将有 1 万亿美元用于 AI 驱动的数据中心升级。然而
    的头像 发表于 03-21 15:43 ?523次阅读

    FPGA+AI王炸组合如何重塑未来世界:看看DeepSeek东方神秘力量如何预测......

    制程、异构计算、高带宽内存和可重构架构展开,应用领域涵盖 AI、5G、数据中心、自动驾驶和工业物联网。通过优化生态系统、制定有效市场策略、应对挑战,FPGA 将在多个领域继续发挥关键作
    发表于 03-03 11:21

    韩国将建全球最大AI数据中心

    据最新报道,韩国即将启动一项雄心勃勃的计划——建设全球最大的人工智能(AI)数据中心。该数据中心不仅在规模上令人瞩目,更在技术和投资上展现了韩国的强大实力。 据悉,该数据中心的电力容量
    的头像 发表于 02-20 09:24 ?641次阅读

    当我问DeepSeek AI爆发时代的FPGA是否重要?答案是......

    ,这为AI的持续创新提供了有力支持。 6.数据中心与云计算加速 ? 在云计算和数据中心中,FPGA被用作AI计算加速器,尤其是针对深度学习工
    发表于 02-19 13:55

    数据中心中的FPGA硬件加速器

    ? 再来看一篇FPGA的综述,我们都知道微软包括国内的云厂商其实都在数据中心的服务器中部署了FPGA,所以这篇论文就以数据中心的视角,来看下FPGA
    的头像 发表于 01-14 10:29 ?782次阅读
    <b class='flag-5'>数据中心</b>中的<b class='flag-5'>FPGA</b>硬件加速器

    亚马逊云科技发布全新数据中心组件

    设计等多个方面进行深度优化和创新,成功构建了一个更加高效节能的数据中心。这些创新不仅提升了数据中心的运行效率,更为客户在AI等领域的进一步创新提供了坚实的基础。 据悉,亚马逊云科技将在
    的头像 发表于 12-24 15:05 ?601次阅读

    怎样保障数据中心不间断电源不断电 提供可靠安全的供配电#数据中心

    数据中心配电系统
    安科瑞王金晶
    发布于 :2024年08月29日 14:51:36