转载

借助Hexagon SDK 3.1使用C++进行DSP编程

为了简化异构编程,Qualcomm发布了C++11/14编译器和卷积网络库。现在就下载Qualcomm®Hexagon™SDK 3.1开始使用吧。

很多为CPU开发的云端应用都是用C++11/14编写的,而大多数人也已经熟悉了这种环境。与其将算法移植成C语言以适应DSP,不如使用Hexagon SDK 3.1中的C++编译器利用DSP,而且还不用修改源代码。

现在,Hexagon SDK 3.1支持C++11/14,您可以将现有代码解析成可执行模块去运行,然后评估它们在DSP上的性能表现。您可以将代码段合并到CPU-offload例程模板中,然后使用DSP的C++编译器进行编译。在某些情况下,可能需要将整个代码库迁移到DSP。使用C++11/14编译器,您不需要重新编码,在对源代码作最少程度的改变下,在DSP进行重新编译。

如果您是开发计算密集型应用的,如计算机视觉和机器学习,那么这样做会为您提供大量的机遇。您知道异构编程是您获得移动硬件出色表现的关键,但又不希望从舒适的C++环境迁移到C,重新编写算法。

有了Hexagon SDK 3.1,就不必再为此苦恼了。

针对Hexagon DSP的类似CPU编程模型

我们认识到,部分开发人员被异构计算编程模型所困扰。他们不知道如何解析自己程序去适应CPU和DSP之间的算法差异。

Hexagon DSP旨在简化这一过程,因为它更多的是作为CPU的对等体来发挥作用的。

传统上,DSP深度嵌入极小的存储空间,因此不能满足C++的内存需求。但是在即将推出的搭载Qualcomm Snapdragon™835处理器的设备上,该 DSP在设计上不但在L2缓存中拥有内存管理单元(MMU),而且支持全速访问双数据速率(DDR)内存,容纳大型的程序和数据。

这意味CPU-like的编程模型可以拥有多线程和缓存区。最新的Snapdragon SoC DSP可以像CPU那样执行DDR,并解决传统DSP的内存限制问题。Hexagon RTOS还添加了必要的Posix线程规范,以支持C++编程模型。Hexagon还可以在本地存储器中非缓存模式下操作,处理低功率任务,如低级传感器功能。但是,在多功能相机、计算机视觉和机器学习等领域里,执行DDR对于算法和大型数据集作用更大。利用C++11/14编程和编译比将算法移植成C语言程序更易于在DSP上运行。这种方法的好处在于,您可以基于DDR的执行模版并遵循自己的代码规范的同时混入缓存程序执行。

借助Hexagon SDK 3.1使用C++进行DSP编程

将整个框架从CPU迁移到DSP

事实上,在Hexagon SDK 3.1支持C++11/14后,您可以将使用C++的整个框架(如OpenCV、OpenVX、TensorFlow、Caffe、Torch)迁移到DSP,如果系统需要,可以从并发与功耗出发将其与CPU隔离。否则,就只能迁移所选择的高性能代码段,而仍在CPU上执行总体框架代码。

比如Tensorflow——常用于机器学习的开源库,或用于计算机视觉的OpenCV和OpenVX。通常的实现是将隔离库迁移到DSP,然后让CPU上的算法告诉DSP何时运行这些库。这使得CPU不用执行计算密集型任务,从而提升性能;但是,如果您正在开发一款永远在线的应用呢?有新数据进来后,应用就要不断地分析,所以CPU必须保持全时运行,即使在应用不执行分析的时候也难有例外。

对于永远在线的应用,最好是将整个应用和框架都迁移到DSP。支持C++后,像Tensorflow和OpenCV这样的框架就能像后台一样运行在DSP上,而将CPU挂起。如果没有C++支持,部分代码就需要在CPU上活动,这将消耗功率。那么就只能将代码修改为C结构,但代价很大,而且随着时间推移,扩展另外代码分支的难度也更大。

过去,Hexagon只能作为一个加速器;如今,设计成可以在DSP上容纳整个框架。您可以将算法或整个框架迁移到Hexagon DSP上,并在此编译,而不必为异构编程模型花大力气重新编码。

获得先机

现在就下载Hexagon SDK 3.1,看看如何在不重写代码的情况下,将以前运行在CPU上的各种代码迁移到DSP。我们认为这将缩短开发过程并减少您的移植工作。

此外,SDK也给了您领先一步使用Hexagon DSP的机会,2017年下半年,商用设备将会搭载此款Hexagon DSP。您可以利用C++11/14去开发图像处理、计算机视觉和机器学习的算法,而且在还没有获得Snapdragon 820和835设备之前,您还可以在附带的模拟器上运行。

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

原文  http://www.csdn.net/article/a/2017-02-08/15843596
正文到此结束
Loading...