订阅业界RSS CSDN首页> 业界

Hexagon DSP SDK 3.3.2——从5个方面入手,为您提供更多功能、更高灵活性和可用性

发表于2018-01-04 13:53| 次阅读| 来源未知| 0 条评论| 作者csdn

摘要:将推理、场景分类、图像处理和视频回放增强之类的工作负载放到边缘设备的CPU和GPU进行处理,会耗尽运行周期并缩短电池使用寿命。DSP编程越方便,您的应用就能更快地以更高性能和更低功耗运行类似的工作负载。

我们的任务是为您简化Qualcomm® Hexagon™ DSP编程。

将推理、场景分类、图像处理和视频回放增强之类的工作负载放到边缘设备(如智能手机)的CPU和GPU进行处理,会耗尽运行周期并缩短电池使用寿命。DSP编程越方便,您的应用就能更快地以更高性能和更低功耗运行类似的工作负载。

因此,我们新发布的Hexagon DSP SDK 3.3.2到处都体现了“可用性”。

如果您是嵌入式开发者,会发现工具包包含了各种常用的编程工具。如果您是移动应用开发者,也会找到顺利过渡到DSP编程所需的一切。坦白说,这些工具对部分人员来说可能觉得难以应付,但其实大可不必有这种想法。

本文将一一介绍SDK中包含的更高可用性方法。

1. 不用从头开始DSP编程。我们为您提供了大量的示例代码。

为显示我们对可用性的认真态度,我们添加了SDK示例代码和文档。您可以找到Hexagon Vector eXtensions(HVX)基准示例代码,和在Hexagon上使用Halide的示例代码。另外,还更新了入门指南和分析器、模拟器和调试器文档。我们制作了QuRT(运行在Hexagon上的实时操作系统)和DSP Compute用户指南,并更新了HVX上下文保存/恢复功能。

2. 不用重写C++算法。我们已经在DSP上提供了相关支持。

很多开发者受到高性能和低功耗的双重诱惑,而从嵌入式领域转向DSP编程。之前他们花了多年时间完善运行在CPU上的C或C++算法,例如低光视频捕捉、图像稳定或卷积神经网络。如果不能确定是否能够实现承诺得好处,不会有多少人愿意再重新为DSP写代码并进行优化。

从去年1月份开始,我们提供了一个编译器和库,利用Hexagon SDK在DSP编程时使用C++语言。现在,在SDK 3.3.2中,我们更新了编译器工具链,允许在Hexagon DSP上执行以C++ 11/14编写的框架和算法。

这就意味着无需重新编写这些算法,就可以直接为DSP重新编译,并在Hexagon上运行。这是第一个巨大的进步,您会看到性能提升和耗能减少。大多数情况下,我们希望您作进一步优化。

3. 不用编写自己的编程工具。我们已经提供了编程工具。

Hexagon包含DSP逻辑以及类似于CPU的功能和特性,因此可以将其视为嵌入式处理器。在Hexagon SDK 3.3.2中,我们补充了用于编写、调试和分析的工具集,确保您的应用从底层硬件中获得最大收益:

•完整的工具箱——在SDK中,您可以找到完整的LLVM工具链(编译器、链接器、汇编器)、诊断日志记录、性能监视器、动态链接器和加载器以及支持协同仿真和虚拟平台的仿真器。

•调试器——我们增加了LLDB支持,意味着能更好地支持C和C++代码。现在,当您通过USB连接开发工作站和参考板或设备时,可以在IDE中执行常见的调试操作,例如单步执行调试代码,使用断点,检查寄存器或内存内容。

•IDE插件——SDK包含Eclipse IDE插件,以便更好地与开发环境集成。

•Profiler——在DSP分析器sysMon中,我们完善并允许您访问相关功能,方便您更深入地了解算法性能。为帮助您了解代码在Hexagon上的执行情况,sysMon收集并显示性能、缓存和其他相关指标。

有了这一功能强大的补充,您会发现SDK更加易用。

4. 不用构建自己的图像处理语言。我们为您提供了Halide工具。

如果您开发相机和图像项目,可能听说过或使用过Halide,实现高性能视觉和成像算法。我们认为Halide和Hexagon是绝佳搭配,所以我们联合Google一起为HVX构建了一个Halide工具集。以下是我们为您提供的工具:

•Halide编译器——作为Hexagon SDK 3.3.2和Hexagon LLVM工具集的一部分,Halide工具集提供了一个针对Hexagon DSP和HVX的Halide编译器。这意味着,如果您熟悉C++语言结构,就不需要深入了解底层处理器架构,就可以开始编写Halide程序。相反,您可以把精力集中在从DSP为图像算法获得尽可能多的性能。

•Halide运行环境——利用此运行环境,您可以通过添加一个简单的.hexagon()指令,轻松地将内核函数透明分派到Hexagon。这在异构计算中十分方便。

•Halide简洁性——我们自己在Qualcomm骁龙835和845移动平台设备上进行的图像处理测试中,首先从一个大约有175行汇编代码的高效算法开始。然后把它重写成一个C例程,大约有100行代码,性能略有下降。最后,我们使用Halide重写,不到二十几行代码,获得和汇编代码相同的性能。 当然了实现情况因人而异,但如果您喜欢编码紧凑,Halide也许是您的菜。

5. 不用编写自己的神经网络库。我们为您提供了一个。

越来越多的人谈论设备端处理如何给AI应用带来优势,以及如何在云端训练神经网络模型,然后在设备端运行推理。大多数公司都试图在CPU或GPU上优化AI处理,但在 Qualcomm Technologies,Inc.(QTI) ,过去数年时间我们一直在对DSP上的AI处理进行优化。

下一步:下载SDK

虽然Hexagon是骁龙异构计算模型的一部分,但Hexagon DSP SDK 3.3.2本身看起来就像是个嵌入式开发平台。它支持搭载骁龙SDM630、SDM660、SDM820、SDM835、SDM845和SDM670的设备。

•现在就下载SDK,看看它能在性能和功耗方面给您带来哪些优势。

•下载Halide,更方便地编写高性能图像处理代码。

 


更多Qualcomm开发内容请详见:Qualcomm开发社区

0
0