新型环境让您能够将代码性能最大化。 作者:Mike Santarini 自从赛灵思在上世纪 80 年代初期开发和推出世界首款 FPGA 后,这些用途丰富的可编程逻辑器件就成为硬件工程师的 MacGyver 万能工具。赛灵思最近发布了SDx系列开发环境(即 SDAccel、SDSoC 和 SDNet),使软件开发人员和系统工程师(非 FPGA设计人员)能够利用赛灵思器件轻松创建自己的定制化软件定义硬件,从而助力更多创意头脑实现非凡的创新技术。 介绍这些新型环境以及赛灵思及其联盟成员提供的其他软件开发资源之前,我们先来思量一下处理架构的演变及其对软件开发的影响。 这是软件问题… 但在 21 世纪初期,半导体行业改变了游戏规则,迫使开发人员根据一套新的规则进行调整。这种转变起始于人们意识到了如果 MPU 产业继续在新的单片 MPU 架构中提高时钟速率,那么鉴于芯片工艺技术的发展路线图以及日趋恶化的晶体管漏电流问题,MPU 将很快达到与太阳相同的功率密度。 正因为如此,MPU 产业快速向同质多处理架构转型;在这种同质多处理架构中,计算任务被分配给多个以较低时钟速率运行的小型内核。新的处理模型让 MPU 和半导体厂商能够继续生产新一代容量更高的器件,并将更多功能集成到单个芯片中以获得更高性能。然而,现有程序无法利用新型分布式架构,因此软件开发人员必须想办法开发出能够跨多个处理器内核高效运行的程序。 同时,后来的几代芯片工艺技术继续使晶体管数量成倍增长,让半导体公司能够采取另一个创新举措,即将不同类型的内核集成到同一颗芯片中,创建出 SoC。这些异构多处理器架构给嵌入式软件开发人员提出了更多挑战,使软件开发人员不得不开发定制软件协议栈,让应用能够在目标系统上实现最佳运行。 SDAccel 环境包括一个快速的架构优化编译器,能高效利用片上 FPGA 资源。 如今,半导体行业又一次改变游戏规则,但这次软件开发人员则对转变持欢迎态度。面对另一个功耗窘境,半导体和系统公司正在将目光转向由 FPGA 加速的异构处理架构。这种架构将 MPU 与 FPGA 紧密配合在一起,能以最小的功耗成本提高系统性能。这种新兴架构最显著的应用是用于新型数据中心处理架构中。在一篇现在著名的论文中,微软研究人员展示了在架构上将 MPU 与 FPGA 组合在一起能实现 90% 的性能提升,同时功耗仅仅增加 10%,在单位功耗性能方面远远优于 MPU 与高功耗 GPU 相结合而实现的架构。 通过 FPGA 加速的异构多处理架构的优势已经超出了数据中心应用范畴。赛灵思 Zynq?-7000 All Programmable SoC 器件在单芯片上完美集成了 ARM 处理器和可编程逻辑,让采用该器件的嵌入式系统受益良多。使用即将推出的 Zynq UltraScale+TM MPSoC 的系统注定将会更加出色。Zynq UltraScale+ MPSoC 在单个器件中集成了多个 ARM? 内核(4 个 CortexTM-A53 应用处理器、2 个 Cortex-R5 实时处理器和 1 个 MaliTM-400MP GPU)、可编程逻辑、多级安全、更高安全性以及高级电源管理模块(如图 1 所示)。 图1 - Zynq UltraScale+ MPSoC 不过,要让这些 FPGA 加速的异构架构适合大规模部署并方便软件开发人员使用,FPGA厂商必须开发新的环境。在这方面,赛灵思提供了三个开发平台:针对数据中心开发人员的 SDAccel、针对嵌入式系统开发人员的 SDSoC,以及针对网络线卡架构师和开发人员的 SDNet。这些赛灵思新环境让开发人员能够轻松将代码的缓慢部分放在可编程逻辑上编程以加速程序,从而创建出最佳系统。 面向 OpenCL、C/C++ 的 SDAccel 通过编程实现 FPGA 加速处理 图 2 - 面向 OpenCL、C 和 C++ 的 SDAccel 开发环境可将单位功耗性能提高 25 倍,利用 FPGA 实现数据中心应用加速。 凭借 SDAccel 环境,开发人员即使先前没有 FPGA 经验也能使用 SDAccel 似曾相识的工作流程来优化他们的应用,并充分发挥 FPGA 平台作用。该 IDE 提供编码模板和软件库,并可用来针对所有开发目标进行编译、调试和特性分析,包括 x86 上的仿真、使用快速仿真进行性能验证,以及 FPGA处理器上本地执行。该开发环境在面向数据中心的FPGA 平台上执行应用,而且能自动插入工具以实现所有开发目标。赛灵思设计的 SDAccel 环境能够让CPU 和 GPU 开发人员轻松将应用迁移到 FPGA 上,同时在熟悉的工作流程中维护和重用 OpenCLTM、C和 C++ 代码。 SDAccel 库对于 SDAccel 环境能实现类似于CPU/GPU 的开发体验起到了重大作用。SDAccel 库包含低级数学库以及生产力更高的库(如 BLAS、OpenCV 和 DSP 库)。这些库用 C++(而非 RTL)编写而成,因此开发人员可在所有开发和调试阶段完全按所编写的内容来使用它们。在项目早期,所有开发工作都在 CPU 主机上完成。因为 SDAccel 库用 C++ 编写,所以它们能够与 CPU 目标(创建一个虚拟原型)的应用代码一起编译,从而允许所有测试、调试和初始特性分析在主机上进行。这个阶段无需 FPGA。 SDSOC 支持 ZYNQ SOC 和 MPSOC 系统的嵌入式开发 图 3 – SDSoC 开发环境提供熟悉的嵌入式 C/C++ 应用开发体验,包括简单易用的 Eclipse IDE和综合而全面的设计环境,以实现异构 Zynq All Programmable SoC 和 MPSoC 部署。 SDSoC 为 ZC702 和 ZC706 等 Zynq All Programmable SoC 开发板,以及包括 ZedBoard、MicroZed、ZYBO 和视频与成像开发套件等在内的第三方和市场专用平台提供板支持包 (BSP)。BSP 包含能够从软件开发人员和系统架构师的代码中将平台抽象出来的元数据,以简化智能异构系统的创建、集成和验证。 SDNET 支持 FPGA 加速线卡的设计和编程 图4 - SDNet 环境使网络架构师能以类似于 C 的语言创建规范。硬件团队完成设计后,开发人员可使用 SDNet 现场为线卡升级或添加协议。 传统的软件定义网络架构采用固定的数据层硬件,通过狭窄的南向 API 连接到控制层,而软定义网络则不然,其基于可编程数据层,具有内容智能功能和宽泛的北向 API 控制层连接。这样能实现多种突破性的功能,包括: 支持独立的线速服务,避免各种协议的复杂性;提供以流程为单位的灵活服务;支持革命性的创新型“无损业务”升级,同时以 100% 的线路速率运行。 这些独特的功能使运营商和多业务系统运营商(MSO) 能够动态提供差异化服务,且不会对现有服务造成任何中断,也不需要硬件质量认证或进行上门服务。该环境的动态服务提供功能使服务提供商能够增加营收并加快服务上市速度,同时降低资本支出和运营支出。网络设备供应商意识到同样能够通过 SDNet 平台获得相同的优势,使他们能够通过部署 SDNet 环境编程的内容感知式数据层硬件,实现更大的差异化。 嵌入式开发环境 赛灵思提供全套开源资源,可用以开发、引导、运行、调试和维护在赛灵思 SoC或仿真平台上运行的 Linux 应用。赛灵思提供实例应用、内核构建、Yocto 方法、多处理与实时解决方案、驱动程序和论坛,以及社区链接。Linux 开源开发人员会找到一个非常舒适的环境,在其中进行学习和开发,并与其他具有相同兴趣和需求的用户互动交流。 不断壮大的强大编程环境联盟 美国国家仪器公司 (NI)(美国德克萨斯州 Austin)提供的硬件开发平台倍受控制和测试系统创新人员青睐。赛灵思的 FPGA 和 Zynq SoC 则为 NI RIO 平台注入动力。NI 的 LabVIEW 开发环境是一款用户友好型图形化程序,可以运行赛灵思的 Vivado Design Suite,这样 NI 的客户就无需知道任何 FPGA 设计细节,有些客户或许都不知道赛灵思器件位于 RIO 平台的核心。但他们可在 LabVIEW 环境中对系统简单编程,并让 NI 的硬件为他们所开发的设计实现进行性能加速。 MathWorks 和赛灵思技术的这种组合帮助公司客户打造出众多创新产品。 MathWorks?(美国马萨诸塞州 Natick)在十多年前就在其 MATLAB?、Simulink?、HDL CoderTM 和 Embedded Coder? 中提供了 FPGA 支持,赛灵思的 ISE? 和 Vivado 工具可在其中全自动运行。这样,用户(主要是数学专业的算法开发人员)就可以在开发算法时简便地在 FPGA 架构上运行算法,并显著提升算法性能。 赛灵思在十多年前为其 ISE 开发环境添加了名为 System Generator 的 FPGA 架构级工具,最近,又将该工具添加到 Vivado Design Suite 中,以便让具有 FPGA 知识背景的团队能够对设计进行调整,以进一步提升算法性能。MathWorks 和赛灵思技术的这种组合帮助公司客户打造出出众多创新产品。 ARM、劳特巴赫有限公司 (Lauterbach)、日本横河数字计算机公司 (Yokogawa Digital Computer Corp) 和京都微机集团 (Kyoto Microcomputer Corp) 等众多赛灵思联盟成员可提供支持 SDx 和 Alliance 环境的开发工具。在 OS 和中间件支持方面,赛灵思以及联盟成员为客户提供多种软件选择,诸如 Linux、RTOS、裸机,甚至包括管理程序和支持 Trust-Zone 内核的解决方案,满足保密性和安全性需求。 如需了解有关 SDx 环境以及赛灵思广泛且不断扩展的开发人员解决方案,敬请访问赛灵思最新的软件开发者园地。 |
|
来自: HomingGuoWei > 《待分类》