从 Vectorless 到 SAIF 再到板级实测:HLS Kernel 功耗估计全流程实战

news2026/4/4 15:53:47
从 Vectorless 到 SAIF 再到板级实测HLS Kernel 功耗估计全流程实战很多人在做 FPGA 或 SoC 上的 HLS kernel 时第一次接触功耗分析往往是从 Vivado 里的report_power开始的。点一下按钮工具很快就会给出一个总功耗数字再附带一个Confidence Level: Medium。这时候最容易产生两个误解第一以为这个数字已经足够准确第二以为Medium的意思是“功耗中等”。实际上这两种理解通常都不对。Vivado 默认的report_power很多时候跑的是vectorless功耗分析也就是在缺少真实仿真激励的情况下由工具根据时钟、逻辑结构和默认活动率去推断切换活动。它很方便也很适合设计早期做方向判断但离“真实工作负载下的最终功耗”还隔着几层。尤其对 HLS kernel 来说这个差距往往更明显因为 HLS 设计普遍具有下面几个特点数据通路宽数据相关性强。接口行为复杂存在 AXI handshaking、burst、back-pressure、stall。kernel 常常包含 pipeline、dataflow、unroll、array partition、stream 等高层优化导致内部活动并不均匀。真正的动态功耗不只与“用了多少资源”有关更与“这些资源在真实 workload 下如何翻转”有关。所以如果你真正关心的是我的 HLS kernel 在真实业务输入下大概耗多少功耗我现在做的 pipeline/unroll/dataflow 优化对功耗到底是好是坏Vivado 报告和上板测出来差很多到底差在哪那么你需要的不是单一数字而是一条完整的方法链Vectorless report_power → HLS RTL cosim SAIF → Vivado post-route sim SAIF → 板级实测校准。这篇文章就按这个顺序把 HLS kernel 的功耗估计流程从浅到深讲透并给出一套可以实际落地的工程方法。一、为什么 HLS kernel 的功耗估计比想象中难先说一个本质问题功耗不是单一“结构属性”而是“结构 活动”的共同结果。从公式直觉上看动态功耗和下面几件事强相关电容负载电压时钟频率翻转活动率glitch 行为布线资源和扇出对 RTL 设计来说这已经不简单对 HLS 设计来说还要再叠加一层“高层综合的不确定性”。1. HLS 阶段看到的资源和时延本身就不完全等于最终实现HLS 报告可以告诉你某个 loop 的 II、latency、resource estimate看起来非常具体但本质上它还是建立在综合模型和调度假设上的估计。尤其当你使用了#pragma HLS PIPELINE#pragma HLS DATAFLOW#pragma HLS UNROLL#pragma HLS ARRAY_PARTITIONm_axi、axis、ap_ctrl_hs等接口最终落地到 RTL 以后控制逻辑、FIFO、握手、仲裁、存储器映射、RAM 推断和时钟使能行为都可能让真实活动模式与 HLS 阶段的想象不一致。2. 同样的资源数不代表同样的功耗两个 kernel 最后都用了 200 个 DSP、150 个 BRAM、3 万个 LUT不代表功耗就接近。原因包括一个 kernel 的 DSP 几乎每拍都在工作另一个大量空转。一个 kernel 的 BRAM 是高频读写另一个只是偶发访问。一个 kernel 的 AXI stream 长时间满载另一个经常被 back-pressure 堵住。一个 kernel 的控制路径大量 glitch另一个时钟使能做得很好。换句话说资源决定了“可能消耗多少”活动决定了“实际消耗多少”。3. 功耗估计是分阶段逼近真实值的工程上功耗估计一般不是一次完成而是逐步逼近HLS/综合前期快速做方向判断。综合后开始有真实逻辑结构但还没有最终布线。布局布线后逻辑和 routing 基本固定模型更接近真实芯片。带真实 workload 的仿真活动开始真正反映业务输入下的动态行为。上板测量得到最终真实值并反过来校准前面的分析链路。真正成熟的做法不是迷信某一个阶段而是让这几层信息互相印证。二、第一层Vivado 默认的 vectorlessreport_power这是大多数人最先接触到的方式也是最容易被误解的方式。1. 什么是 vectorless power analysis所谓vectorless就是没有完整仿真激励向量的功耗分析。工具不会直接从真实波形里读取每根信号的翻转情况而是根据以下信息推断设计网表结构时钟定义已知输入活动率默认的切换概率与静态概率内部活动传播模型它的优点非常明显快不需要准备复杂 testbench适合设计早期快速比较多个版本可以很方便地做 what-if 分析它的缺点也同样明显对输入活动的假设很粗对控制/握手信号往往不准很难反映真实 burst、stall、空闲、峰值等工作模式没有真实 gate-level glitch 信息2. 为什么默认结果常常只有Confidence Level: Medium很多人看到Medium会误以为是“中等功耗”。其实这里的意思通常是当前这份功耗报告所依赖的输入数据完整性和准确性一般置信度中等。换句话说工具在告诉你我能给你一个估计但我缺少足够多的真实活动信息所以别把这个数字当成最终答案。在 vectorless 模式下很多内部节点并不是由用户显式指定活动率也不是由仿真生成而是工具推断出来的。因此置信度通常不会特别高。3. 默认假设为什么会把 HLS kernel 带偏Vivado 对主输入会使用默认活动率和静态概率。这对普通数据口有时还能凑合但对 HLS kernel 常见的以下信号会非常危险ap_startap_doneap_idleap_readyTVALIDTREADYTLASTAWVALID/WREADYARVALID/RREADYWSTRB各种 clock enable 和 reset这些信号的活动不是“平均随机翻转”而是强烈依赖协议和 workload。例如TVALID可能连续高很多拍也可能长时间为低。TREADY可能因为下游堵塞而出现规律性停顿。ap_start可能每几千拍才拉高一次。reset 大多数时间根本不会翻转。如果这些信号按默认假设处理动态功耗会偏很多。4. vectorless 适合回答什么问题尽管如此vectorless 依然非常有用。它适合回答的问题是改了一个 pragma 之后资源和功耗大概是涨还是跌同一个 kernel 的几个结构版本哪个方向更省电时钟频率从 200 MHz 提到 300 MHz大致会带来多大动态功耗变化当前设计里哪类资源、哪个 hierarchy 看起来最耗电也就是说它适合做趋势判断不适合做最终签核。5. vectorless 阶段怎么尽量把结果做得更靠谱哪怕还没上 SAIF也有几件事值得认真做1时钟一定要定义正确没有时钟约束功耗分析几乎必然失真。时钟频率是动态功耗的核心输入。2尽量给主要输入指定活动信息尤其是关键数据输入握手信号低占空比控制信号reset / clock enable3把环境参数配准包括电压温度工艺角散热条件4关注分解视图不只看总功耗不要只盯着 “Total On-Chip Power”而要看时钟网络占多少BRAM/URAM 占多少DSP 占多少Logic 占多少哪个 hierarchy 最显著这样即便总数不准也能帮助你发现热点。三、第二层HLS RTL cosim SAIF如果说 vectorless 是“没有真实活动的结构估计”那么HLS RTL cosim SAIF就是第一次把“真实 workload 下的动态活动”带进来。这是很多 HLS 项目里性价比非常高的一步。1. 它到底解决了什么问题HLS C 仿真只能验证算法功能看不到最终 RTL 内部到底怎么翻转而 HLS 的C/RTL co-simulation可以让工具生成的 RTL 在仿真器里跑起来并使用你已有的 C/C testbench 驱动它。这样带来的价值有三层验证 HLS 生成 RTL 的功能正确性。观察 pipeline、FIFO、handshake、stall 的真实行为。导出 SAIF把真实切换活动喂给后续功耗分析。2. 为什么这一步对 HLS kernel 很关键因为 HLS kernel 最难估的恰恰不是“有没有这块逻辑”而是loop pipeline 进入 steady-state 后每拍到底哪些寄存器在动dataflow 下多个 process 是并行平稳流动还是频繁堵塞stream/FIFO 是持续吞吐还是出现背压AXI master 是大 burst还是碎片化访问控制器是否因为边界条件频繁切换状态。这些信息只有 RTL cosim 才能把它们以接近真实结构的形式表现出来。3. HLS RTL cosim SAIF 的基本流程一个典型流程如下完成 HLS C 仿真确认 testbench 和算法行为正确。跑 HLS 综合得到 RTL。运行 C/RTL cosim。在仿真器中记录切换活动导出 SAIF。用 SAIF 驱动功耗分析。从方法上说这一步的关键并不在“导出 SAIF”本身而在于你拿来做 cosim 的 testbench是否真的代表未来硬件上的实际工作负载。4. 什么样的 testbench 才算“对功耗有意义”很多人 testbench 写得只够做功能验证数据量很短只覆盖最简单路径没有 burst没有 back-pressure没有空闲段没有边界条件这样的 testbench 即便导出了 SAIF也很可能没有功耗参考价值。功耗导向的 testbench 至少要覆盖以下三类情况1空闲场景用于估计 kernel 在挂载系统中但没有执行任务时的活动水平。很多控制逻辑和时钟网络在空闲时仍然会消耗功耗。2典型场景这是最重要的一类要尽量贴近你的真实业务数据分布和调用节奏。最终系统平均功耗大多取决于这一类场景。3峰值场景比如连续满带宽输入最长 burst最密集写回最坏情况下的所有计算单元全开它对应的是热设计和电源预算中更关注的上界。5. HLS cosim 阶段功耗分析的优点这一步的优点很明显基于 HLS 生成的真实 RTL而不是纯高层估计。可以复用已有 C/C testbench门槛相对低。很适合比较不同 HLS pragma、不同架构变体。比纯 vectorless 更能反映真实工作行为。6. 这一步的局限也必须看清HLS RTL cosim 仍然不是最终答案因为它通常还缺少下面这些因素最终实现后的真实布线post-route 延时与 glitch顶层系统互连开销时钟树和全局资源的最终分布与其他 IP 或子系统共同运行时的耦合活动所以这一步通常适合回答某个 HLS kernel 版本之间的相对比较。某些 pragma 导致的活动变化趋势。估计真实动态行为大概落在哪个区间。但如果你要问“最终上板大概多少瓦”还需要继续往下走。7. 工程上如何用好这一层建议你把 HLS RTL cosim SAIF 主要用于架构探索阶段。比如比较 unroll factor 从 2、4、8 到 16 的收益与功耗代价。比较PIPELINE II1与II2对吞吐和功耗的影响。比较 stream/dataflow 版本与非 dataflow 版本。比较不同缓存/partition 策略对 BRAM 活动的影响。在这个阶段你不一定要求数字和板级结果只差几个百分点但要尽量保证测试 workload 真实比较版本时 testbench 完全一致除目标变量外其他条件保持不变。这样你就能把这一步变成“可靠的架构决策工具”。四、第三层Vivado post-route simulation SAIF这是软件估计链路里最接近真实板级测量的一层也是最值得认真做的一层。1. 为什么 post-route 比 HLS cosim 更接近真实因为到了post-route阶段设计的以下信息已经基本确定逻辑映射结果物理布局布线资源占用时钟树分布实际扇出网延迟而这些因素都会直接影响动态功耗。HLS cosim 看见的是“功能上成立的 RTL 行为”Vivado post-route sim 看见的则是“实现后这个设计真的怎样在芯片上翻转”。2. post-route sim SAIF 为什么常被认为是板测前最准确的软件估计原因就在于它同时具备两件事结构准实现后的逻辑和布线都是真实的。活动准来自真实仿真波形而非默认推断。尤其重要的一点是post-route 仿真能够带入门级与布线延时因此更容易反映真实时序下的翻转分布可以看到一部分 glitch 带来的额外活动对大扇出控制网、复杂组合路径的功耗估计更可信。3. 典型流程一个典型的工程流程可以写成从 HLS 导出 RTL集成进 Vivado 工程。完成综合、布局布线。生成 implemented design 或 post-route netlist。用接近系统真实行为的 testbench 做 post-route 仿真。导出 SAIF。回到实现后的设计read_saif。执行report_power生成功耗报告。4. 这一层最容易踩的坑1仿真路径和真实设计路径不一致比如仿真时直接给 kernel 顶层喂理想数据实际上板时前面还有 DMA、interconnect、packetizer仿真时没有 back-pressure实际系统中经常会有上游/下游阻塞。这样导出的 SAIF 只能代表“理想化子系统”不是系统真实状态。2仿真时间太短功耗不是某几个周期的瞬时现象。很多 HLS kernel 有启动、填充、稳态、排空几个阶段pipeline 刚启动时活动模式与稳态不同dataflow 系统中 FIFO 填充前后行为不同burst 传输中头尾活动和中间也不同。如果你只仿真短短一小段得到的平均活动率很可能失真。3只仿真峰值不仿真典型峰值对散热、电源峰值预算很重要但平均功耗通常由典型 workload 决定。工程上最好分三份报告idletypicalworst-case4SAIF 路径映射不正确经常有人导出了 SAIF但read_saif时层级对不上结果大量节点没标注活动最后还是退化成部分推断。这样功耗数字表面上像“基于 SAIF”实际上信息覆盖率很差。5只看总功耗不看增量来源post-route SAIF 的真正价值不只是给你一个更准的总数还包括告诉你clock network 到底占了多少DSP/BRAM/logic 各自贡献多少哪个 hierarchy 因为 dataflow、FIFO 或 AXI 控制而变成热点哪些控制信号或高扇出网络活动异常。5. 示例 Tcl 流程下面给一个非常常见的 Tcl 片段用来说明 post-route SAIF 的核心动作open_checkpoint impl.dcp read_saif -strip_path tb/dut run.saif report_power -file power_postroute_saif.rpt report_switching_activity -file switching_activity.rpt如果 SAIF 覆盖不到某些端口还可以手动补活动set_switching_activity -static_probability 0.01 -toggle_rate 1 [get_ports ap_start] set_switching_activity -static_probability 0.50 -toggle_rate 50 [get_ports s_axis_tvalid] set_switching_activity -static_probability 0.50 -toggle_rate 50 [get_ports s_axis_tdata[*]]真正工程里重点不是背命令而是做好三件事SAIF 和当前网表层级严格匹配仿真 workload 有代表性分场景输出多份报告而不是只保留一个数字。6. 这一层最适合做什么决策这一步适合做tape-out / 定板前的软件功耗收敛散热器与电源预算评估对比多个最终候选实现版本判断功耗热点究竟来自计算、存储、时钟还是互连在上板前预测平均功耗与峰值功耗区间。如果前面 HLS cosim 阶段已经筛掉了一批不合适的架构那么 post-route SAIF 应该成为你的最终软件估计主结论。五、第四层板级实测——最终真值从哪里来无论前面软件分析做得多漂亮最终真正能拍板的仍然是板级实测。1. 为什么板测不可替代因为现实系统里还存在大量软件模型没有完全覆盖的因素电源转换损耗板级噪声与供电纹波多电压轨耦合温度变化带来的静态功耗变化实际软件驱动下的调用间隔、突发模式和系统交互其他板上器件与 FPGA 同时工作时的耦合影响所以严格来说软件功耗分析回答的是在当前模型和活动输入下芯片内部大概会消耗多少。而板级实测回答的是真实系统跑起来之后整个平台实际消耗了多少以及 FPGA 自身占了多少。2. 板级实测的几种常见方式1分电源轨测量这是最推荐的方式。对于 FPGA 来说常见需要关心的包括core 电压轨BRAM/辅助轨I/O 电压轨transceiver 相关电压轨若有如果板子设计时这些电源轨是分离的那么你可以更清晰地区分静态功耗动态 core 功耗I/O 功耗2电流采样电阻在稳压器输出与器件供电轨之间串一个小的 current sense resistor通过测压降换算电流再乘以电压得到功耗。这是非常经典、也非常可靠的方法。3板载 PMBus / 电源监控芯片很多开发板或量产板会集成数字电源控制器或监控芯片可以直接读到各路电压、电流和功率。这种方法使用方便但精度和采样率要根据具体器件确认。4片上监控可以借助 XADC / SYSMON 读温度、电压等信息辅助理解运行状态但通常不能完全替代外部高精度电源测量。3. 板测时最容易忽略的问题温度稳定功耗测量不是只看电流表一眼就结束。尤其静态功耗和温度耦合很强所以测量前要让系统进入稳定热状态。如果你的流程是一上电就马上测workload 只跑几秒温度还没稳定就记录结果那么结果可能偏差很大。正确做法通常是让板子在目标 workload 下运行到温度趋稳分别记录 idle、typical、worst-case同时记录环境温度与结温明确测的是芯片功耗、板级功耗还是整机功耗。4. 板级实测如何反哺前面的软件分析板测最重要的意义不只是给出一个最终数字还在于帮助你建立“仿真到真实”的映射关系。例如post-route SAIF 比板测低 8%而且多次 workload 都类似那么以后你就知道工具结果有一个稳定偏差某个 kernel 在软件估计里不高但板测偏高说明可能有 I/O、DDR、互连或系统级活动没被覆盖空闲功耗板测显著高于估计可能代表时钟门控、复位释放或系统待机策略没有处理好。真正成熟的团队会把板测当成“校准软件模型”的最后一环。六、四种方法的对比到底该在什么时候用哪一种下面给出一个工程上很实用的定位1. Vectorlessreport_power适合阶段设计早期、快速探索。优点快、门槛低、适合比较趋势。缺点活动信息粗糙对握手与控制路径误差较大。适合回答“这个版本大致更省电还是更耗电”2. HLS RTL cosim SAIF适合阶段HLS 架构迭代阶段。优点能反映 HLS 生成 RTL 的真实活动行为适合比较 pragma 和架构变体。缺点还没有最终布局布线和系统级实现信息。适合回答“这个 kernel 版本在真实 workload 下活动模式如何变化”3. Vivado post-route sim SAIF适合阶段实现收敛、最终软件评估阶段。优点结构和活动都最接近真实板级情况是板测前最准确的软件方法。缺点成本高、仿真慢、流程复杂。适合回答“最终上板前这个设计大概会落在哪个功耗区间”4. 板级实测适合阶段最终验收、模型校准。优点真实可信是最终真值。缺点需要硬件平台、测量手段和稳定环境。适合回答“真实系统到底耗多少功耗”七、一套推荐的 HLS kernel 功耗估计工作流如果让我给出一套实践里比较稳妥、性价比也不错的流程我会推荐下面这条线。阶段 1HLS 架构探索目标是快速筛选结构方向。做法先跑 HLS 综合。用 vectorlessreport_power做粗比较。同时关注资源、时序、II、latency。对明显不合理的版本直接淘汰。输出2 到 4 个值得深入分析的候选架构。阶段 2HLS cosim 驱动的活动分析目标是让比较进入真实 workload 层面。做法为候选架构准备统一 testbench。覆盖 idle、typical、worst-case。跑 RTL cosim导出 SAIF。比较不同版本在真实活动下的功耗趋势。输出1 到 2 个最优候选版本。阶段 3Vivado 实现后精细分析目标是得到板测前最可信的软件估计。做法将候选 kernel 放进接近最终系统的 top 中。跑 synthesis、place、route。做 post-route sim导出 SAIF。用read_saif report_power生成多场景报告。分析按 hierarchy、resource、clock domain 的功耗热点。输出最终软件功耗预算。热点定位结果。平均功耗与峰值功耗区间。阶段 4板级测量与模型校准目标是闭环。做法在目标板上分别测 idle、typical、worst-case。记录结温、环境温度、电压轨功率。与 post-route SAIF 报告对比。建立偏差模型和经验修正系数。输出最终签核结论。后续项目可复用的校准经验。九、写在最后不要追求“一次算准”而要建立“逐层收敛”的方法论HLS kernel 的功耗估计从来不是点一下report_power就能结束的事情。真正可靠的方法不是试图在设计最早期就得到一个绝对准确的数字而是建立一条逐层收敛的分析链用vectorless快速判断方向用HLS RTL cosim SAIF看真实活动趋势用Vivado post-route sim SAIF做板测前最准确的软件估计用板级实测给出最终真值并反过来校准前面的模型。对于 HLS kernel 来说最重要的思维转变是功耗不只是资源问题更是活动问题不只是 RTL 问题更是系统问题不只是工具报告问题更是 workload 问题。当你接受这个前提之后就不会再纠结“为什么 Vivado 默认只给了个 Medium”而会把它看作一个很正常的起点它告诉你真正准确的功耗分析下一步该去拿真实活动了。如果只用一句话概括整篇文章那就是HLS 阶段看趋势post-route SAIF 看收敛板级实测看真相。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2482708.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…