Hexagon DSP 发布SDK 3.3.2,打造全新神经网络库

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

如果您是嵌入式开发者,会发现工具包包含了各种常用的编程工具。如果您是移动应用开发者,也会找到顺利过渡到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处理进行优化。

原文发布于微信公众号 - BestSDK(bestsdk)

原文发表时间:2018-01-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT大咖说

新一代CMDB模型构建指南

摘要 今天我为大家带来的分享主题是新一代CMDB模型的构建指南,主要分为四大部分。 困境:当前CMDB模型面临的普遍困境 很多CMDB建设前期做得风风火火,而后...

5085
来自专栏java一日一条

支撑 Java NIO 与 NodeJS 的底层技术

众所周知在近几个版本的Java中增加了一些对Java NIO、NIO2的支持,与此同时NodeJS技术栈中最为人称道的优势之一就是其高性能IO,那么我们今天要讨...

792
来自专栏流柯技术学院

如何应用性能测试常用计算公式

性能测试中有很多非常重要的概念,如吞吐量、最大并发用户数、最大在线用户数等。有很多读者也非常关心,如何针对自身的系统确定当前系统,在什么情况下就可以满足系统吞吐...

3531
来自专栏Albert陈凯

2018-10-31 网易考拉规则引擎平台架构设计与实践

https://juejin.im/post/5bd69af1e51d453975303cef?utm_source=gold_browser_extensio...

2173
来自专栏腾讯技术工程官方号的专栏

鹅厂上万节点大规模集群的跨城自动迁移(下)

当上百P的数据,上万个节点的集群进行跨城迁移时,如何在有限的带宽下实现自动、高效、稳定地迁移?本文将跟你一一揭晓!

5612
来自专栏Astropeak

软件设计---高层设计(一):共性可变性分析和分析矩阵

1121
来自专栏Android 开发者

app 里的 A/B 测试简介

5213
来自专栏MongoDB中文社区

为什么MongoDB适合深度学习?

当您正在考虑为新的深度学习项目选择何种数据库时,您可以访问这个链接所对应的帖子(https://www.mongodb.com/blog/post/deep-l...

2021
来自专栏BestSDK

Google发布Nearby Connections API 2.0版本,可拓展本地信息和数据分享

关注过 I/O 2017 开发者大会的网友们,或许还记得 Google 提到过的“情境应用体验”(Contextual App Experiences)。这组 ...

3134
来自专栏恰同学骚年

Hadoop学习笔记—20.网站日志分析项目案例(一)项目介绍

  本次要实践的数据日志来源于国内某技术学习论坛,该论坛由某培训机构主办,汇聚了众多技术学习者,每天都有人发帖、回帖,如图1所示。

1562

扫码关注云+社区

领取腾讯云代金券