17、自适应视觉算法内存需求复杂度的优化与内存性能对比分析

自适应视觉算法内存需求复杂度的优化与内存性能对比分析

自适应视觉算法模型数据压缩方案评估

在自适应视觉算法(AVAs)中,更新模型数据所需的巨大带宽需求导致了通信复杂性,这是主要挑战之一。为了解决这个问题,我们可以利用数据分离的思路,对模型数据应用不同的压缩方案,将压缩趋势从流数据转移到模型数据上。

评估指标

在探索过程中,我们使用 MS - SSIM 指标将压缩后的结果与无压缩高斯参数的真实值(MoG)进行质量评估。MS - SSIM 关注两帧之间的结构相似性,更接近人类的感知,其将质量量化为 0 到 1 之间的值,值越高表示与真实值的相似度越高,质量损失越低。

压缩方案
  • MSBSel :这是最简单的压缩方法,即静态选择参数的最高有效位,称为最高有效位选择(MSBSel)。虽然它是有损压缩,但几乎没有计算开销,特别是在硬件实现时。该压缩方案引入了质量 - 带宽权衡,质量和带宽呈非线性关系。在带宽从 160 MB/s 降至约 120 MB/s 时,可以在不损失质量的情况下降低带宽;将带宽降至 50%(即 80 MB/s)时,根据 MS - SSIM 质量指标,质量下降不超过 15%。不过,选择更少的位会导致更高的带宽节省,但也会导致质量下降更多。由于准确的背景减法需要高动态范围或精度,因此需要更复杂/先进的压缩算法来进一步降低更新模型数据的带宽要求。
  • JPEG - 2000 :在 MSBSel 之后应用 JPEG - 2000 作为二级压缩,以评估其是否能在不显著影响质量的情况下降低带宽。JPEG 是联合图像专家组开发的著名图像压缩方法,JPEG - 2000 是其新版本,支持 16 位灰度图像。由于 JPEG 是为压缩图像定制的,我们仅将其压缩应用于参数 Mean,该参数保存像素的背景均值,具有类似图像的视觉结构。

实验结果表明,JPEG - 2000 显著降低了更新 Mean 参数的带宽需求。对于最佳压缩比 0.1(10:1),更新 Mean 参数的带宽节省约为 85%,即压缩后的 Mean 图像大小平均为原始大小的 15%,整体带宽节省约为 29%。然而,实际的带宽节省低于预期值,例如 10:1 压缩比的预期带宽节省为 90%,但实际约为 85%。这是因为 MoG 参数中的视觉失真实际上是算法产生的值,在后续迭代计算中是必需的,消除这些失真会降低 MoG 的质量。

通过 MS - SSIM 质量指标比较应用 JPEG 压缩的 MoG 输出与参考模型,发现在简单场景(物体移动和变化较少)中,最大可实现输出质量约为 0.46;在复杂场景(物体移动和交叉较多)中,最大输出质量仅为 0.22,平均带宽节省仅为 2%。随着压缩率的增加以进一步降低带宽,质量下降会更加明显,甚至导致 MoG 基本无法正常工作。因此,JPEG - 2000 对 MoG 的最终输出质量有严重的降级影响。

  • 无损压缩 :无损压缩算法的主要特点是不影响被压缩数据的质量,因此设计者可以将重点转移到压缩算法的其他特性上,如可实现的压缩比和计算需求。我们探索了五种不同的无损压缩方法:QZIP、LZ4、BZIP、GZIP 和 ZIP。其中 QZIP 和 LZ4 属于高速压缩算法,BZIP、GZIP 和 ZIP 是常规压缩方法。

实验对 4500 个参数图像进行,这些图像是 500 帧原始分辨率为 1024 × 768 的 3 个高斯分量的 MoG 参数,每个分量有 3 个参数(均值、标准差和权重)。所有无损压缩方法都在 MSBSel 之后作为二级压缩应用。为了进一步探索算法操作的源数据粒度,我们将输入帧划分为更小的块,如 40 × 30、80 × 60、160 × 120、320 × 240、640 × 480 和 1024 × 768 分辨率的块。

实验结果如下表所示:
| 压缩算法 | 最佳带宽节省(%) | 最佳带宽节省对应块大小 | 最低计算需求对应块大小 |
| ---- | ---- | ---- | ---- |
| QZIP | - | 1024 × 768 | 80 × 60 |
| LZ4 | 17(快速模式) | 1024 × 768 | 320 × 240 |
| BZIP | 38 | 1024 × 768 | 40 × 30 |
| GZIP | - | 1024 × 768 | 40 × 30 |
| ZIP | - | 1024 × 768 | 80 × 60 |

整体而言,使用 1024 × 768 块大小可实现最大带宽节省,减小块大小会使所有算法的带宽降低性能变差,最佳情况下带宽节省也不到 10%。不同算法的计算需求也不同,块大小为 1024 × 768 时计算需求最大。LZ4 在高压缩模式下可提供更好的压缩比,但计算需求更高,是快速模式的约 10 倍。

  • 自定义压缩 :前面研究的无损压缩方法是为压缩任何类型的数据而开发的通用算法。对于像 MoG 这样由统计和非线性处理产生特殊类型模型数据的 AVAs,通用的图像或数据压缩方法可能无法满足设计者的期望性能。因此,需要为 AVAs 定制无损压缩算法。例如,有研究提出了一种基于 DPCM 的压缩算法,用于压缩 MoG 参数。该算法利用不同高斯分量参数之间的互相关性和高斯分量内参数的自相关性,以无损方式用一个压缩参数表示两个参数,将带宽需求降低至 50%。其 FPGA 实现显示,在 Virtex - 5 FPGA 中具有合理的资源利用率,约 2282 个查找表(LUTs)和 1876 个触发器(FFs),且不使用 DSP 块和块 RAM。
实验结论

在实验中,我们评估了几种权衡:
- 有损压缩
- 质量 - 带宽权衡(仅适用于 MSBSel 和 MSBSel + JPEG - 2000) :为了获得更好的质量,需要更高的带宽。
- 带宽 - 压缩比(适用于 MSBSel + JPEG - 2000) :通过改变 JPEG - 2000 中可配置的压缩比,可以实现不同的带宽需求。
- 无损压缩
- 计算需求 - 块大小权衡(适用于所有 5 种无损算法) :不同的块大小会导致不同的计算需求,当块大小等于整个被压缩帧时,计算需求最高。
- 带宽节省 - 块大小权衡(适用于所有 5 种无损算法) :不同的块大小会导致不同的带宽节省,使用最大块大小时可实现最大带宽节省。
- 带宽需求 - 计算需求权衡(适用于所有 5 种无损算法) :为了降低带宽需求或实现最高带宽节省,需要更多的计算。
- LZ4 算法高压缩模式和快速模式的带宽需求 - 计算需求权衡 :使用 LZ4 高压缩模式可以实现更高的带宽节省,但需要更高的计算成本。

总体而言,在 MSBSel 之后应用 BZIP 作为二级压缩方案,可实现约 69% 的总带宽节省;使用自定义压缩器代替 BZIP 时,带宽节省可提高至约 75%。根据 MS - SSIM 指标,这两种情况下的整体输出质量损失均不超过 15%。这些权衡可以帮助 AVAs 的系统架构师根据应用需求选择合适的模型数据压缩算法,设计者可能需要使用或设计针对 AVAs 模型数据的定制算法。

通过数据分离思路并对模型数据应用压缩,可以使 AVAs 的实现更加容易,因为整体系统带宽需求变得可控,从而降低了 AVAs 实现的复杂性。在未来的工作中,我们将考虑功耗问题,因为在嵌入式系统中功耗是一个非常重要的因素,而在本文中我们主要关注无损压缩方案的压缩比和计算需求评估。

HMC 和 DDR 内存性能对比

随着嵌入式应用需求的增加,嵌入式系统的架构正变得越来越类似于高性能计算机,通常会应用双倍数据速率(DDR)内存。DDR 系统的发展在保持功耗水平不变的情况下带来了性能提升。而新的混合内存立方体(HMC)在能耗和性能之间的权衡更具吸引力,行业预测 HMC 将比当前内存系统提供更高的性能和更低的能耗。

实验目的

我们旨在了解 HMC 和传统 DDR 3 内存之间的性能差异,并评估它们在不同应用场景下的表现。

实验方法

通过运行 SPEC - CPU2006 和 SPEC - OMP2001 基准测试进行模拟实验。

实验结果
  • 对于内存压力较低的应用,HMC 和 DDR 的表现相似。
  • 对于内存压力高且空间数据局部性低的应用,HMC 的性能优于 DDR。
  • 对于具有流式行为的应用(常见于嵌入式系统领域),当前 HMC 的行缓冲规范无法充分利用这些应用中的空间局部性。

综上所述,在选择内存时,需要根据具体的应用场景来权衡 HMC 和 DDR 的性能。如果应用对内存带宽要求高且数据局部性低,HMC 可能是更好的选择;而对于内存压力较低或具有流式行为的应用,DDR 可能已经能够满足需求。

自适应视觉算法内存需求复杂度的优化与内存性能对比分析

自适应视觉算法压缩方案总结与应用建议

在前面的内容中,我们详细探讨了多种针对自适应视觉算法(AVAs)模型数据的压缩方案,下面对这些方案进行总结,并给出不同场景下的应用建议。

压缩方案 类型 优点 缺点 适用场景
MSBSel 有损压缩 计算开销几乎为零,在一定带宽范围内可降低带宽且质量损失小 选择更少位会导致质量明显下降,需要复杂算法进一步降低带宽 对计算开销敏感,带宽需求可在一定范围内调整,对质量损失容忍度相对较高的场景
JPEG - 2000 有损压缩 能显著降低更新 Mean 参数的带宽需求 对 MoG 最终输出质量有严重降级影响,实际带宽节省低于预期 不太适合对输出质量要求高的 MoG 算法场景
无损压缩(QZIP、LZ4、BZIP、GZIP、ZIP) 无损压缩 不影响数据质量,可关注压缩比和计算需求 不同算法性能差异大,部分算法计算需求高 对数据质量要求严格,可根据计算资源和带宽需求选择合适算法的场景
自定义压缩 无损压缩 针对特定算法定制,可有效降低带宽需求,资源利用率合理 需要针对特定算法设计,通用性差 像 MoG 这类有特殊模型数据的 AVAs 场景

以下是根据不同应用需求选择压缩方案的 mermaid 流程图:

graph TD
    A[应用需求] --> B{对数据质量要求高吗?}
    B -- 是 --> C{计算资源充足吗?}
    C -- 是 --> D[考虑无损压缩或自定义压缩]
    C -- 否 --> E[考虑 MSBSel 并控制位选择]
    B -- 否 --> F{带宽降低需求大吗?}
    F -- 是 --> G[考虑 JPEG - 2000 但需评估质量损失]
    F -- 否 --> H[考虑 MSBSel]
HMC 和 DDR 内存性能深入分析与选择策略

在前面我们了解了 HMC 和 DDR 内存性能对比的基本实验结果,下面我们深入分析其原理,并给出更详细的选择策略。

性能差异原理分析
  • 内存压力低的应用 :这类应用对内存带宽的需求较小,HMC 和 DDR 的高带宽优势都无法充分体现,因此表现相似。例如一些简单的文本处理程序,其主要操作是对少量数据的顺序读写,内存访问频率低,HMC 的高速带宽和 DDR 的常规带宽都能轻松满足需求。
  • 内存压力高且空间数据局部性低的应用 :HMC 具有高带宽和低延迟的特点,能够快速响应大量随机的内存访问请求。而 DDR 在处理这种高频率、随机的内存访问时,由于其架构限制,会出现较多的等待时间,导致性能下降。例如一些复杂的数据库查询操作,需要频繁地随机访问内存中的不同数据块,HMC 就能更好地应对。
  • 具有流式行为的应用 :流式应用通常具有较高的空间局部性,即数据是连续存储和访问的。DDR 的行缓冲机制能够很好地利用这种空间局部性,在连续访问同一行数据时可以快速响应。而当前 HMC 的行缓冲规范在处理这种连续数据访问时,没有充分发挥其优势,导致性能不如 DDR。例如视频播放应用,数据是以连续的帧形式存储和访问的,DDR 能够更高效地处理。
选择策略

根据不同应用场景的特点,我们可以制定以下选择策略:
1. 评估内存压力 :通过性能分析工具或经验判断应用的内存压力。如果应用在运行过程中频繁出现内存等待或卡顿现象,说明内存压力较高。
2. 分析数据局部性 :观察数据的访问模式,如果数据是随机访问的,说明空间数据局部性低;如果数据是连续访问的,说明空间数据局部性高。
3. 结合成本因素 :HMC 的价格通常比 DDR 高,如果应用对成本敏感,在性能差异不大的情况下,优先选择 DDR。

以下是选择 HMC 或 DDR 内存的决策列表:
1. 若应用内存压力低,无论数据局部性如何,优先考虑成本因素,DDR 通常是更经济的选择。
2. 若应用内存压力高且空间数据局部性低,HMC 能提供更好的性能,不必过多考虑成本时可选择 HMC。
3. 若应用具有流式行为,即空间数据局部性高,且内存压力不是极高,DDR 更适合。

未来展望

在自适应视觉算法的研究中,虽然我们通过数据分离和压缩方案在一定程度上解决了带宽需求问题,但功耗问题仍未得到充分关注。在未来的工作中,我们可以进一步探索低功耗的压缩算法和内存架构,以满足嵌入式系统对功耗的严格要求。

对于 HMC 和 DDR 内存,随着技术的不断发展,HMC 的行缓冲规范可能会得到优化,从而更好地适应具有流式行为的应用。同时,也可能会出现新的内存技术,为嵌入式系统提供更优的性能和能耗平衡。我们需要持续关注这些技术的发展,并进行深入的研究和评估,以适应不断变化的应用需求。

总之,自适应视觉算法和内存技术的研究是一个不断发展的领域,我们需要不断探索和创新,以解决实际应用中遇到的各种问题。

根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
本系统采用微信小程序作为前端交互界面,结合Spring BootVue.js框架实现后端服务及管理后台的构建,形成一套完整的电子商务解决方案。该系统架构支持单一商户独立运营,亦兼容多商户入驻的平台模式,具备高度的灵活性扩展性。 在技术实现上,后端以Java语言为核心,依托Spring Boot框架提供稳定的业务逻辑处理数据接口服务;管理后台采用Vue.js进行开发,实现了直观高效的操作界面;前端微信小程序则为用户提供了便捷的移动端购物体验。整套系统各模块间紧密协作,功能链路完整闭环,已通过严格测试优化,符合商业应用的标准要求。 系统设计注重业务场景的全面覆盖,不仅包含商品展示、交易流程、订单处理等核心电商功能,还集成了会员管理、营销工具、数据统计等辅助模块,能够满足不同规模商户的日常运营需求。其多店铺支持机制允许平台方对入驻商户进行统一管理,同时保障各店铺在品牌展示、商品销售及客户服务方面的独立运作空间。 该解决方案强调代码结构的规范性可维护性,遵循企业级开发标准,确保了系统的长期稳定运行后续功能迭代的可行性。整体而言,这是一套技术选型成熟、架构清晰、功能完备且可直接投入商用的电商平台系统。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值