高通cDSP介绍汇总

news/2024/10/30 17:59:03/

Qualcomm Hexagon Compute DSP (cDSP)是高通平台上专门用来做通用计算的硬件加速单元,与主机 CPU 相比,DSP 通常以较低的时钟速度运行,并提供更多的并行指令级。 这使得 DSP 在功耗方面成为 CPU 的更好替代品。 因此,将尽可能多的大型计算密集型任务移植到 DSP 上,可以降低设备的整体功耗。

 cDSP主要用途有:

摄像头、视频的图像增强相关处理计算机视觉、增强、虚拟现实处理深度学习硬件加速

cDSP在SOC架构中位于下图红色框内。

cDSP硬件架构&芯片结构

 Hexagon Scalar Core

        Hexagon 标量核心包含4个或更多的DSP 硬件线程,每个 DSP 硬件线程都可以访问 Hexagon 标量单元,这些单元对单个或成对 32 位寄存器执行定点和浮点运算。每个硬件线程包含4个通用寄存器(R0-R31)、4个预测判断寄存器(P0-P3)及4个执行单元(S0-S3)。

        Qualcomm Hexagon Vector eXtensions-HVX(“Hexagon矢量扩展”,Hexagon-六边形、Vector-矢量、Extensions-扩展)是Hexagon 680 DSP的典型特性,能够在执行图像处理应用中的计算负载当中发挥重要作用,比如虚拟现实、增强现实、图像处理、视频处理、计算视觉等。此前这些任务均是由CPU或GPU来执行,如今交给Hexagon 680 DSP,能够达到更加高效、功耗更低的效果。

  HVX之所以这么重要是因为它能比CPU处理像素的速度更快,CPU只能在同一时间处理1个或2个像素。但有了HVX,能够在同一时间处理超过100个像素,这种并行算法结合先进的HVX指令体系,创造了一种在处理相机图片时,比CPU更加快速高效的效率及更低的功耗。根据高通数据,Hexagon 680 DSP相比于以前只有NEON优化的情况下,性能可提升1到3倍,而功耗可降低到原来的1/18到1/4。而支持HVX的Hexagon 680 DSP能够比直接通过CPU处理,达到更快的处理速度——其能够完成原本需要CPU来完成的工作,并且无需唤醒,全时间待命,更高效、效果更好。

  通过集成HVX,Hexagon 680 DSP中添加了对于视频即时处理的支持,搭载骁龙820和骁龙821处理器的手机拍摄视频时,也能运用自适应增量功能,视频中过暗的部分可以自动进行增亮。当DSP察觉到画面较暗的区域,会自动将这些区域调亮,搭载Hexagon 680 DSP的骁龙820和骁龙821在处理这些内容时,处理速度相比上一代技术快3倍,而功耗却仅有此前的10%。

内存

cDSP软件架构:

HVX的优势:

更强的数据并行处理能力(1024b 指令位宽,且有多个线程可并行,线程里面每个packet可同时并行执行四条指令)
1、更低的功耗
2、更高的运行稳定性
3、HVX以其优越的特性,能完美支持多个领域,比如虚拟现实、增强现实、图像处理、视频处理、计算视觉等等。

 FastRPC

#Skel动态库HAPQuRTcDSP开发以Example/calculator_c++为例#编译Hexgon DSP SDK V4.5支持用CMake编译。build_cmake hexagon BUILD=Debug DSP_ARCH=v66build_cmake android BUILD=Debug

【运行】

【直接在模拟器运行】

$DEFAULT_HEXAGON_TOOLS_ROOT/Tools/bin/hexagon-sim -mv66 --simulated_returnval --usefs hexagon_Debug_toolv85_v66 --pmu_statsfile hexagon_Debug_toolv85_v66/pmu_stats.txt --cosim_file hexagon_Debug_toolv85_v66/q6ss.cfg --l2tcm_base 0xd800 --rtos hexagon_Debug_toolv85_v66/osam.cfg ~/Qualcomm/Hexagon_SDK/4.5.0.3/rtos/qurt/computev66/sdksim_bin/runelf.pbn -- ~/Qualcomm/Hexagon_SDK/4.5.0.3/libs/run_main_on_hexagon/ship/hexagon_toolv85_v66/run_main_on_hexagon_sim -- ./hexagon_Debug_toolv85_v66/ship/libcalculator_plus_q.so

在设备上运行:

#建立运行环境adb rootadb remount#push android libsadb shell mkdir -p /vendor/bin/adb push android_Debug_aarch64/ship/calculator_plus /vendor/bin/adb shell chmod 777 /vendor/bin/calculator_plusadb push android_Debug_aarch64/ship/libcalculator_plus.so /vendor/lib64/#把DSP库push到设备adb shell mkdir -p /vendor/lib/rfsa/dsp/sdkadb push hexagon_Debug_toolv85_v66/ship/libcalculator_plus_skel.so /vendor/lib/rfsa/dsp/sdk/adb push hexagon_Debug_toolv85_v66/libc++.so.1 /vendor/lib/rfsa/dsp/sdk/adb push hexagon_Debug_toolv85_v66/libc++abi.so.1 /vendor/lib/rfsa/dsp/sdk/#运行export LD_LIBRARY_PATH=/vendor/lib64/export DSP_LIBRARY_PATH=/vendor/lib/rfsa/dsp/sdkcalculator_plus -m sum -i 100#调试#调试Log输出

在代码中加入FARF log打印:

#includeFARF(LOW, "something happened: %s", (const char*)string);设置Log输出级别,通过logcat查看adb shell echo "0x1f > /vendor/lib/rfsa/dsp/sdk/calculator_plus.farf"adb logcat -s adsprpc#cDSP性能调优Profiling

在DSP上可用的profile方法如下:

HAP perf 需要在代码上加入性能统计API,统计代码运行的性能开销。

Hexagon Trace Analyzer可以在模拟器上运行并生成性能分析报告,目前在XR2上还不支持在设备上运行,可能在高版本上支持。

sysMon支持在设备上运行,通过sysMon可以监控DSP运行的性能数据,如频率、指令数、核心状态等。

编译优化

DSP编译Debug版本没有做性能优化,Release做了比较多的优化,性能要比Debug版本好10倍以上,所以在测试性能时,必须要在Release版本上进行。


http://www.ppmy.cn/news/516166.html

相关文章

CorelDRAW2023最新工作室Win版矢量图形编辑与排版工具软件

CorelDRAW简称CDR,是一款专业的平面设计软件,专注于矢量图形编辑与排版。ps和cdr是常用的两款平面设计软件,一直以来深受广大设计师的喜爱,但仍然有很多小伙伴不知道它们之间的区别。那初学者先学ps还是cdr,初学者cdr哪个版本好?我…

B站视频封面图片获取_CodingPark编程公园

B站视频封面图片获取 第一步 点击进入这个视频 第二步 右键页面,显示网页源代码 第三步 第四步

Python处理图片时,A=图片,B=A,处理A,B同时改变

python小白使用opencv时遇到的问题 浅复制与深复制的差别 引入copy模块解决 import copy Acv2.imread() Bcopy.deepcopy(A) 解决问题

bmp图片生成

前言 调试新的UI引擎&#xff0c;搞个截图 代码 #include <stdio.h> #include <stdlib.h> #include <stdint.h>/* javascript:void(0) 按小端字节序来存储&#xff0c;且宽度数据必须成4字节对齐。 图像数据区也不例外&#xff0c;按每行图像的数据字节&a…

如何实现类似b站banner图片效果,景深透视图。

效果图&#xff1a; 景深透视图 html代码&#xff1a; <div class"container"><!-- 这里使用的图片均为png格式&#xff0c;因为png格式带有alpha通道&#xff0c;也就是透明图层 --><!-- html渲染是从上到下的&#xff0c;所以最上层的图片需要放在最…

只需两分钟,如何下载b站高清封面图片

关于某站&#xff0c;我们已经很熟悉了。或许已经成为某些小伙伴的生活必须品了。每天泡一泡&#xff0c;感觉生活很美好。今天来教一下大家怎么下载某站中的封面图片&#xff0c;终于不用进去就说&#xff1a;“交封不杀”了。 我们演示的是pc(仅电脑端教程)&#xff1a; 1.我…

A|B

链接&#xff1a;https://ac.nowcoder.com/acm/contest/10746/A 来源&#xff1a;牛客网题目描述 给定两个正整数a,x&#xff0c;统计满足以下条件的bb的个数&#xff1a;1 \le b\le x1≤b≤x a|baba∣bab 输入描述: 第一行给出一个 t, 1\le t \le 10^5t,1≤t≤10 5接下来 t 行…

用超级鹰来识别B站图片验证

用超级鹰来识别B站图片验证 """ 1.登录 2.图片验证码&#xff08; 截取当前页面的图片并且保存下来,裁剪出验证码的区域 使用超级鹰将验证码图片识别 返回汉字对应的坐标点 按照顺序来模拟点击完成每个坐标点&#xff09; """ import random im…