论文阅读:Memtis: Efficient Memory Tiering with Dynamic Page Classification and Page Size Determination

CPU性能优化--基于处理器事件的采样 基于处理器事件的采样processor event based sampling PEBS 是CPU的另一种非常有用的特性,PEBS被用来在每个采样点获取更多的补充数据。这些补充数据有定义好的格式,为PEBS配置性能计数器之后,处理器会保存PEBS缓冲区的内容,并将之转存到内存中。记录的信息包括处理器的架构状态,例如,通用的寄存器,EAX, EBX, ESP等,指令指针寄存器EIP和标志寄存器EFLAGS 等的状态,字节偏移 字段 字节偏移 字段。linux perf工具没像。6.3.3 分析内存访问。 阅读详情
AI摘要

数据中心内存需求增长促使分层内存技术发展,但现有技术存在不足。作者提出分层内存系统Memtis,采用明智决策方法进行页面放置和大小确定,利用访问分布优化热数据集近似,动态确定页面大小。评估显示,其性能比现有系统有显著提升。

来源: SOSP 2023

摘要

数据中心工作负载推动的不断填筑的内存需求是新型内存技术创新的驱动力。而分层内存是一种有前景的解决方案,它利用具有不同容量、延迟和成本特性的多种内存类型,以在满足内存需求的同时降低服务器硬件成本。

以往关于内存分层的研究往往做出次优(通常是有问题的)页面放置决策,因为它们依赖于各种启发式方法和静态阈值,而没有考虑整体内存访问分布。此外,由于大页面内的访问倾斜,决定应用程序的适当页面大小也很困难,因为大页面并不总是有益的。

作者提出了Memtis,这是一个分层内存系统,它采用明智的决策方法来进行页面放置和页面大小确定。Memtis利用已分配页面的访问分布来优化快速层容量的热数据集近似。此外,Memtis通过检测快速层内存的低效使用并在必要时进行分割,动态确定页面大小,使应用程序能够使用大页面同时避免其缺点。

评估显示:Memtis 的性能比最先进的分层系统高出最多 169%,比最好的系统高出最多 33.6%。

正文

背影与介绍

由于DRAM 技术的扩展限制,主内存对应用程序性能与服务器成本有显著的影响。而现有的内存结构无法与当前对内存需求的增长进行匹配。

而非 DRAM 内存技术,比如 NVM 与 CXL 的进步为解决这一问题提供了新的机会。而现有的内存类型分层技术有着较高的访问延迟和大内存应用较高的地址转换成本。这很有可能会显著的降低性能。所以,理想的分层内存系统应该:

  1. 将合适的数据放在合适的位置。
  2. 减轻地址转换成本,从来最大程序的减少高容量分层内存的性能下降。

理想的分层内存系统应将经常访问的热页放在快速层内存(如本地DRAM)中,而将冷页放在容量层内存(如NVM、CXL连接的内存)中。但是,先前系统的最大局限性在于无法在不同内存配置和工作负载中有效地分类页面热度。它们依赖各种启发式方法和/或预先配置的阈值来识别热页。结果,识别出的热页数量往往小于或大于快速层容量,因此无法将最热的页面放置在快速层内存中。

使用大页是减少地址转换开销和增加TLB覆盖范围的标准做法。然而,在分层内存系统中,使用大页可能会浪费宝贵的快速层内存。

作者发现,大页中并非所有子页都同样热。对于某些工作负载,一些子页很少被访问或根本不被访问。如果整个大页由于其几个非常热的子页而被提升到快速层,那么很少或根本不访问的子页所占用的快速层内存空间就会被浪费。在这种情况下,将这种高度倾斜的大页拆分并只将热子页提升到快速层会更有益。在分层内存系统中,没有一刀切的页面大小。

作者提出了 Memtis,这是第一个在有限 CPU 开销内同时实现基于访问分布的页面旋转和基于倾斜度感知的页面大小确定的分层内存系统。

为了最大限度地利用快速层内存,Memtis通过考虑页面的整体访问频率分布,动态确定页面是热、温还是冷。Memtis使用页面访问直方图收集分布信息,CPU开销(❤️%)和内存开销(<0.195%)可以忽略不计。然后,它动态决定热、温和冷页面的阈值,并将页面放置在适当的内存层中。

Memtis自动平衡内存访问成本和地址转换成本。为了决定页面大小,Memtis考虑了大页中子页的访问频率。默认情况下,Memtis使用大页来减少地址转换成本。然而,如果大页中只有一小部分子页被频繁访问(即高度倾斜的大页),从而掩盖了快速层的访问优势并浪费宝贵的快速层内存,Memtis会将这样的大页拆分成多个基本页,并只将热子页迁移到快速层。(由于这种大页拆分是一种涉及数据复制和TLB射击的昂贵操作,Memtis会仔细估算最大收益,并仅根据估算的收益拆分最倾斜、最热的大页。)

此外,Memtis可以使用处理器事件采样(Intel PEBS)跟踪细粒度的子页级内存访问。为了避免采样方法的过高CPU开销,作者提出了一种动态调整内存访问采样间隔的技术。

最后,所有Memtis操作 - 内存访问跟踪、页面迁移和大页拆分/合并 - 都在后台异步执行,因此Memtis永远不会减慢关键路径。

贡献

  1. 作者发现:
    1. 热度检测不够理想,导致大部分快速层内存包含非最热页面
    2. 大页内子页的访问频率通常高度倾斜,因此很少访问的子页浪费了宝贵的快速层内存
  2. 提出了 Memtis,这是第一个在有限CPU(❤️%)和内存(<0.195%)开销内解决上述问题的分层内存系统。Memtis利用页面访问分布做出最佳分层决策,并根据大页的子页访问倾斜度动态选择页面大小。
  3. 评估:使用 8 个代表性的应用,将 Memtis 与最先进的 6 个系统进行比较,同时改变快速层和容量层的比例,Memtis 平均优于其他系统 33.6%。同时,通过基于倾斜度动态拆分大页,Memtis 实现了高达 19.9%的性能提升,并将内存膨胀减少了高达 45.4%

分层系统的分析

作者从跟踪内存访问,决定页面放置位置,缓解地址转换开销三个方面,对当时分层系统进行了全面的分析。

并得出以下三个结论:

  1. 使用页面故障跟踪内存访问会在关键路径上产生高延迟。此外,基于页表的方法在空间(即大页面)和时间(即扫描间隔)维度上都是粗粒度的,提供不准确的访问跟踪。另一方面,基于事件的内存访问采样(如Intel PEBS)报告确切的访问地址,但其开销随采样频率的增加而成比例增加。因此,对于允许细粒度访问监控(如子页面访问)并能很好地扩展到大内存大小的分层内存系统来说,高效和准确的内存访问跟踪至关重要。
  2. 为了实现最佳页面放置,分层内存系统应使用准确的热度指标,并根据工作负载特征和内存配置(例如,快速层容量)调整热度标准。此外,它应该在关键路径之外(不在页面故障处理程序中)迁移页面,以最小化额外的延迟。
  3. 单一页面大小无法适用于所有情况。分层内存系统应该根据页面热度和大页面利用率动态决定适当的页面大小。要实现这一点,细粒度的访问跟踪至关重要。

Memtis 的设计

对于细粒度,轻量级的访问跟踪

Memtis 使用 PEBS 对内存访问进行采样。由于其包含精确的内存地址,Memtis 可以支持细粒度的访问跟踪,而不管操作系统页面大小如何。Ksampled 是一个由 Memtis 的内核后台线程,用于处理采样地址并更新两个不同直方图中的内存访问统计数据:页面访问直方图和模拟基本页面直方图。Memtis 可以动态调整内存访问采样频率,以确保其 cpu 开销低于阈值(3%)。

Memtis 维护内存页面的热度,利用率和偏斜度。计算所有页面类型(基本页面,大页面,大页面中的子页面)的热度,相比之下,利用率和偏斜度仅为大页面维护。

热度表示使用页面访问计数的指数移动平均值(EMA)的访问趋势。页面 i 的热度因子 HiH_iHi​ 由页面的访问计数 CiC_iCi​ 和页面类型定义如下:

Hi={Ci,if page i is a huge pageCi×nr_subpages,if page i is a base page H_i = \begin{cases} C_i, & \text{if page } i \text{ is a huge page} \\ C_i \times nr\_subpages, & \text{if page } i \text{ is a base page} \end{cases} Hi​={Ci​,Ci​×nr_subpages,​if page i is a huge pageif page i is a base page​ nr_subpages 是构成大页面的子页面数量。由于大页面比基本页面更可能被访问,所以通过 Ci∗nr_subpagesC_i * nr\_subpagesCi​∗nr_subpages 来补偿基本页面的热度。Ksmapled 对每个 PEBS 样本将页面 i 的 CiC_iCi​ 增加 1。CiC_iCi​ 与 HiH_iHi​ 将在冷却过程中定期减半以计算 EMA。

页面访问直方图默认由 16 个箱组成,每个箱表示特定范围的热度因子 HiH_iHi​,遵循指数尺度;第 n 个箱子的热度因子范围为 [2n,2(n+1)][2^n,2^(n+1)][2n,2(n+1)],最后一个箱没有上限。每个箱的值(y)表示热度范围内不同页面数量(以 4 KB 为单位)。

指数尺度箱紧凑,且指数尺度简化了冷却过程中直方图管理,因为冷却将访问计数减半。此外,它还可以很好匹配了页面访问的非线性特性—热点页面的访问次数比温页或多有几个数量级。使用等分箱设计很难捕捉到这种非线性页面访问频率。

更新页面访问直方图非常高效。当 ksample 更新页面的热度因子 HiH_iHi​ 时,它会检查新热度因子是否落入不同箱中。假设最初 HiH_iHi​ 落入箱 6,而增加了 CiC_iCi​ 后,落入了箱 7,则 ksample 将减少箱 6 中的页面计数并增加箱 7 中的页面计数。

Memtis 管理两个直方图——页面访问直方图和模拟基本页面直方图(或简称基本页面直方图)。Memtis 使用页面访问直方图确定热点页面,并使用基本页面直方图确定页面大小。

基于直方图的热点集分类

Memtis 使用页面访问直方图维护所有分配页面的热度分布。这个直方图表示访问计数落在特定访问计数范围内的不同页面数量(y 轴)与访问计数范围(x 轴)。Memtis 利用访问直方图了解热度分布,从而做出最佳的分层决策,将最热的页面放置在快速层以最小化访问延迟。

Memtis 将热点集大小保持在快速层容量附近,以便快速层可以容纳所有热点页面。而冷页面位于容量层。当迁移开销超过快速层访问延迟的好处时,Memtis 避免迁移温页面。

Memtis 使用专用的每内存节点迁移线程(kmigrated)在后台进行页面提升/降级,以避免延长关键路径和性能下降。Memtis 的整个过程——包括页面访问跟踪、热度分类、提升和降级——都在后台进行,从不延长关键路径。

Memtis 维护热,温,冷阈值,分别表示为 ThotT_{hot}Thot​,TwarmT_{warm}Twarm​,TcoldT_{cold}Tcold​。这些阈值是页面访问直方图的箱索引。令页面 i 的箱索引为 BiB_iBi​,则 Bi>=ThotB_i >= T_{hot}Bi​>=Thot​ 时,它会被放置在快速层。如果 Bi<=TcoldB_i <= T_{cold}Bi​<=Tcold​,它会被移动到容量层。否则,就是温页面,难以决定页面的热度,因此,Memtis 不会迁移此类页面,而是将其留在原地。

ksampled 定期根据直方图中编码的页面访问分布调整阈值。

  • 热点页面大于快速层容量时
    ksampled 尽可能扩展 Thot 以保持热点页面在更高的箱中,直至快速层溢出。识别的热点集大小(s)可能小于快速层容量(MSfast),因为 Memtis 以指数尺度组织直方图箱。如果识别的热点集大小足够接近快速层容量(s>MSfast∗αs > MS_{fast} * \alphas>MSfast​∗α),Memtis 可以充分利用快速层,并将少量未使用的内存保留用于未来页面分配和提升。α\alphaα 经验性的设置为 0.9。只要有空闲的快速层内存,Memtis 就会在其上分配页面。
  • 热点页面不够接近快速层容量时
    Memtis 可能在快速层内存中保留任意冷页面。在这种情况下,一些即将成为热点的页面可能会被降级,但在变热后会很快被提升回快速层。这会产生不必要的迁移流量,并掩盖我们动态页面放置的好处。为解决此问题,我们引入了温阈值 TwarmT_{warm}Twarm​。当 s<=MSfast∗αs <= MS_{fast}*\alphas<=MSfast​∗α 时,TwarmT_{warm}Twarm​ 会被设置为 Thot−1T_{hot}-1Thot​−1。Memtis 使用 TwarmT_{warm}Twarm​ 排除快速层中接近热点阈值的页面作为降级候选。在计算完 TwarmT_{warm}Twarm​ 后,TcoldT_{cold}Tcold​ 会被设置为 Twarm−1T_{warm}-1Twarm​−1。最初,ThotT_{hot}Thot​、TwarmT_{warm}Twarm​ 和 TcoldT_{cold}Tcold​ 分别设置为 1、1 和 0。新分配页面的初始热度设置为当前的热度阈值(ThotT_{hot}Thot​),以防止它们立即被选为降级候选。

当采样页面的总容量与快速层容量相近时启动适应过程。而计算这些的间隔被设置在 100000 个采样事件。即,每 100000 次采样执行一次适应。

由于页面的内存访问趋势可能会随时间变化而变化,所以 Memtis 会衰减旧访问的影响,并对最后访问给予更多权重。所以 Memtis 会定期将每个页面的访问计数 CiC_{i}Ci​ 减半。这个冷却过程实际上是在计算 HiH_iHi​ 的指数移动平均值(EMA),衰减因子为 0.5. 由于以指数方式配置直方图箱,冷却只需要将直方图的每个箱左移一个箱位,然后,kmigrated 扫描页面列表并将每个页面的访问计数减半。对于大页面,kmigrated 还对每个子页面的元数据进行冷却。

Memtis 根据采样内存访问的数量执行冷却。冷却周期必须足够大,因为它决定了反映在直方图中的采样内存访问总数。Memtis 每两百万条记录执行一次冷却,这对于千兆字节级的快速层内存大小来说已经足够大。

Memtis 为每个内存层创建一个 kmigrated 内核线程,并在后台执行所有的提升和降级操作。Memtis 为容量层维护一个提升列表,为快速层维护一个降级列表。提升列表仅包含热点页面,而降级列表则包含温热和冷页面。当ksampled处理内存访问样本时,它会将页面的热度因子(𝐻𝑖)与𝑇ℎ𝑜𝑡进行比较,如果页面是热点,则将其移动到提升列表中。当kmigrated通过将页面访问计数减半来进行冷却时,一些页面可能变得温热或冷,此时kmigrated会将它们移动到降级列表中。

kmigrated 每隔500毫秒被唤醒一次。容量层的 kmigrated 检查容量层中是否有热点页面以及快速层中是否有可用空间。如果有,它会将容量层中的热点页面提升到快速层。当快速层中的可用内存低于空闲空间阈值时,快速层的 kmigrated 开始降级。作者将空闲空间阈值设置为快速层大小的2%,以便未来的页面分配和提升。kmigrated 从快速层的降级列表中选择牺牲页面。它首先将降级列表中的冷页面(Hi ≤ Tcold)降级到容量层。如果在降级冷页面后获得了足够的空闲空间,kmigrated 就会停止。否则,它会将温页面降级到容量层,直到获得足够的空闲空间。因此,Memtis 能够在快速层中保留尽可能多的温页面。

考虑偏斜的页面大小确定

默认使用 Linux 中透明大页面(THP)来减少地址翻译成本,然而,单一大页面并不适用于所有工作负载,如图 3 b 所示。当大页面中只有一小部分子页面被频繁访问时,最好拆分这样的页面并仅将热点子页面迁移到快速层。

Memtis 使用模拟基本页面直方图估算仅使用基本页面时的最大命中率,并将估算的最大命中率与从采样的 PEBS 记录中获得的实际命中率进行比较。这个差距(绿色的部分)近似于大页面拆分的潜在效益。如果潜在效益很大,则 Memtis 选择子页面访问偏斜度高的大页面作为拆分候选。

它在后台拆分大页面,并根据大页面中维护的子页面访问信息将每个拆分的子页面放置在适当的内存层。由于拆分大页面是一个耗时操作,所以 Memtis 在观察长期页面访问趋势后才做出拆分决策。

Memtis 使用两个变量来估计,分别是实际测量命中率(𝑟𝐻𝑅)和估计命中率(𝑒𝐻𝑅)。由于𝑟𝐻𝑅表征了快速层的当前利用率,如果𝑟𝐻𝑅远低于𝑒𝐻𝑅,则可以通过拆分偏斜的巨型页面并用热点基础页面填充快速层内存来提高命中率。

当 ksample 处理一个采样的内存访问时,会检查该地址是否位于快速层中,如果是,ksample 增加 rHRrHRrHR。

而 Memtis 维护一个模拟的基础页面直方图来估计 eHReHReHR。基础页面直方图以 4 KB 页面粒度管理内存访问分布,而不管实际操作系统管理的页面大小。基础页面直方图的更新和冷却方式与常规页面访问直方图相同。使用基础页面直方图,Memtis使用算法1计算其阈值,例如 ThotBPT^{BP}_{hot}ThotBP​。每当 ksampled 更新页面元数据时,它会检查相应的4KB(子或基础)页面是否比 ThotBPT^{BP}_{hot}ThotBP​ 更热。如果是,Memtis增加𝑒𝐻𝑅的命中计数。

当采样记录的数量超过分配页面总数的 14\frac{1}{4}41​ 时(对于 4 GB (220∗4KB2^{20}*4KB220∗4KB)的大小,至少 100 万个记录),Memtis 会计算 eHR,并且只有当潜在收益(eHR-rHR)足够大时,Memtis 才会触发巨型页面拆分程序。

拆分数量的计算公式:
Ns=min((eHR−rHR)×ΔLLfast×nr_samples×βavg_samples_hp,nr_samplesavg_samples_hp) N_s = min((eHR-rHR)\times \frac{\Delta L}{L_{fast}} \times \frac{nr\_samples\times \beta}{avg\_samples\_hp},\frac{nr\_samples}{avg\_samples\_hp}) Ns​=min((eHR−rHR)×Lfast​ΔL​×avg_samples_hpnr_samples×β​,avg_samples_hpnr_samples​)

  • 容量层的延迟为 LcapL_{cap}Lcap​,快速层的延迟为 LfastL_{fast}Lfast​,其差距为 ΔL\Delta LΔL
  • nr_samplenr\_samplenr_sample 为样本总数,avg_samples_hpavg\_samples\_hpavg_samples_hp 为巨页内采样访问的平均值
  • β\betaβ 为缩放因子
  • min 的作用:在拆分的数量不能超过不同巨页的数量

当预期收益更高,两个内存层之间的延迟差距更大,以及访问巨页更多时,Memtis 会更积极的拆分更多巨页。

拆分哪些巨页

Memtis 使用子页访问倾斜度来决定拆分。巨页 i 的倾斜因子定义如下:

Si=∑j=0nr_subpagesHij2Ui2 S_i = \frac{ \sum_{j=0}^{nr\_subpages}H_{ij}^2}{U^2_i} Si​=Ui2​∑j=0nr_subpages​Hij2​​

  • UiU_iUi​ 为利用率因子,表示巨页中热子页(ThotBP<=HijT_{hot}^{BP}<= H_{ij}ThotBP​<=Hij​)的数量
  • HijH_{ij}Hij​ 为巨页 i 的第 j 个子页的热度因子
  • 对 UiU_iUi​ 和 HijH_{ij}Hij​ 进行平方:这种非线性的单调递增变换有助于区分倾斜的访问模式和均匀热的访问模式。

Kmigrated 在每个冷却间隔更新每个大页的倾斜因子,因为冷却扫描整个页面,其周期足够长以捕捉长期访问行为。为了高效选择前 NsN_sNs​ 个高度倾斜的页面,Memtis 在冷却期间构建了一个倾斜因子数组,其中每个条目包含一个倾斜范围内的大页列表。然后从数组中选择前 NsN_sNs​ 个大页

被选中的拆分候选页面随后被移动到拆分队列,kmigrated 对拆分队列中的大页进行分割。具体而言,它使用子页面热度因子 HijH_{ij}Hij​ 将每个拆分候选页面内的子页面分类为热页和冷页。当 Memtis 拆分大页时,它会取消映射并释放全零(从未更新过)的子页面以减少内存使用。最后,它将每个子页面迁移到适当的内存层级。

由于将基本页面合并成大页也是昂贵的操作,所以Memtis 仅在所有组成基本页面都是热页时才进行合并。合并很少发生,因为 Memtis 启用了透明大页(THP)并保守地分割已分配的大页。

评估

显示了详细的基准测试描述,包括内存大小和分配的大页面比例。

显示了使用 NVm 作为容量层时分层内存系统的性能比较。Memtis 在几乎所有情况下表现最佳。作者的实验结果表明,Memtis在各种内存设置和访问模式下表现良好。

各模块的有效性

热点集分类

表明:Memtis 在运行时识别出的热点,暖点,冷点内存的数量。总体而言,识别出的热点集大小非常接近快速层大小(由黑色虚线表示)。

使用暖集减少内存迁移

Memtis 有效地减少了内存迁移流量。由于暖页面可能会变得更冷或更热,Memtis 通过不迁移这些暖页面(如图 10 所示,降低了 2.7% 到 64.8%)可以减少大量的迁移流量。

此外,拆分大页面在一定程度上减少了迁移流量,因为迁移了更小尺寸的页面。

大页面的拆分的影响

显示了 Silo 和 Btree 基准测试随时间的性能。

Btree 的整体性能提高了 10.4%。对于 Btree,由于大页面会导致严重的内存膨胀,Memtis 在接近 800 秒时检测到偏斜的大页面并开始将其拆分。这将吞吐量提高了高达 19.9%(在 2410 秒时)并将 RSS 减少了 28.96%(38.3GB→27.2GB)

比较了三种命中率:

  • eHR:仅使用基页面时的估计命中率
  • rHR:采用巨大页面拆分的实际命中率
  • rHR-ns:不使用巨大页面拆分的 Memtis-ns 的实际命中率

可以看到在大多数情况下,rHR 都对命中率有提升

使用 CXL 内存的性能

使将 Memtis 与 TPP 做比较,如下:

Memtis 在所有评估的基准测试中都优于 TPP,所以作者相信 Memtis 在 CXL 内存最终可用时将是有益的。

Intel x86提供的Branch Trace Store的功能 写给转载者:转载请保留作者信息来源: http://www.csksoft.net/blog作者:陈士凯介绍Branch Trace Store(BTS)是目前广泛被intel CPU所提供的一种硬件辅助调试功能,因为在MSRA项目需要,所以作了一些基于它的应用。虽然Intel的CPU开发手册[1]提供了比较详细的使用方法,但是由于比较笼统,且缺少win32下的相关资料。所以我 阅读详情

相关推荐

基于STM32的宠物智能照护嵌入式系统设计

嵌入式系统是实现物联网终端设备本地化感知、决策与执行的核心技术载体,其关键在于多传感器融合、低功耗执行控制与轻量级云边协同。本文围绕环境监测(温湿度、烟雾、余粮)、机电执行(步进电机食盘、继电器风扇)和可靠通信(MQTT+ESP8266)三大技术主线,深入解析STM32F103在资源约束下的外设调度策略、ADC采样抗干扰设计、DHT11时序精准控制及HX711称重滤波算法等工程实践要点。系统强调本地闭环优先原则,确保离线基础功能可用,同时通过阿里云IoT平台实现远程监控与告警联动,为中小型智能硬件项目提供可

weixin_29155599的博客 296

Memtis: Efficient Memory Tiering with Dynamic Page Classification and Page Size Determination——论文泛读

针对分层内存,现有方法对冷热页面划分不准确、不能动态调整页面大小。本文提出Memtis,可以动态确定页面位置和页面大小。(1)提出内存访问分析器。使用Intel PEBS(Processor Event-Based Sampling)工具实现,对LLC load misses和store指令进行采样,获取物理地址,统计页访问计数,将其表示在页面访问分布直方图中。(2)动态迁移冷热页面。根据页面访问分布直方图动态调整阈值,区分冷热页面,热页面常驻快速层,有额外空间容纳冷页面。

重新开始写博客 1436

YOLOv5+Astra Pro Plus深度相机:手把手教你实现实时目标检测(附ROS配置技巧)

本文详细介绍了如何将YOLOv5目标检测算法与Astra Pro Plus深度相机结合,构建实时目标检测系统。内容涵盖从硬件选型、环境搭建、ROS配置到YOLOv5部署与深度信息融合的完整流程,并分享了性能优化、避障算法等实战技巧,帮助开发者在机器人视觉等场景中快速实现智能感知应用。

weixin_28292761的博客 390

Intel x86_64 LBR & BTS功能

该文主要介绍了intel 处理器得LBR和BTS功能,用来获取CPU产生得跳转指令:call ,jmp(直接跳转),jxx(间接跳转),ret,中断。通过这些指令我们可以分析出系统当前运行的系统流程是否正常,可以用于系统安全领域得对抗,逆向分析,系统调试,系统性能分析等等。......

小立仔 9017

零基础微信理财通基金实操指南(2026版)

先活下来:保证不亏大钱,再想赚钱慢慢变富:年化10%,7年翻倍,这已经很好了开始比完美重要:今天先存100元到零钱通,就是最好的开始现在打开微信,进入理财通,完成第一步风险测评吧!有任何问题可以随时问,我会用最通俗的方式解释。

老韩的Linux云计算架构师进阶之路 1691

C++实现SM4国密算法实战指南

通过以上实现,开发者可以快速在C++项目中集成SM4国密算法,满足金融、政务等领域的安全需求。实际部署时建议通过国家密码管理局的合规性检测,并定期更新密钥管理策略。库(支持国密算法),需提前安装并配置开发环境。

skyksksksksks的博客 1487

第6章 性能分析相关的CPU特性

为什么如此关注分支指令?因为分支控制着程序的控制流。如果我们记录了每个分支的输出,就有可能逐行重建程序的执行路径。这也就是Intel Processor Trace技术所做的。硬件记录每条分支跳转指令的“起点”和“终点”地址以及一些附加的元数据。这些硬件寄存器像环形缓冲区,会被持续地覆写,只提供最近32个分支跳转输出。如果能够采集足够长时间的起始和终点对,就可以展开程序的控制流,类似一个有限深度的调用栈。并不是所有被执行分支跳转指令都能被检查到,通常CPU执行得太快以至于LBR有时并不能正常工作。

weixin_47955824的博客 1385

光猫桥接后网速不升反降?可能是你的路由器在“偷懒”!

本文详细分析了光猫桥接后网速不升反降的常见原因,包括路由器性能不足、MTU/MSS值设置错误等,并提供了四个关键排查步骤和路由器选购指南。通过优化PPPoE拨号设置和硬件配置,帮助用户解决网速下降问题,提升家庭网络性能。

hqmln的博客 618

Paper Read——Memtis: Efficient Memory Tiering with Dynamic Page Classification and Page Size Determi

快速层中实际被访问的页面比例。

bukuishiwoa的博客 788

Unity 面试篇⚠️ | Unity性能优化好,山寨机都能跑~

Unity 面试篇⚠️ | Unity性能优化好,山寨机都能跑~

m0_58523831的博客 1万+

使用Matlab实现海洋监视雷达检测仿真

海洋监视雷达是一项重要的海洋探测技术,可以用于海上船只、飞机、潜艇等目标的探测和监视,具有广泛的应用价值。本篇文章将介绍如何使用Matlab进行海洋监视雷达的检测仿真,并提供相应的源代码。本篇文章提供了利用Matlab进行海洋监视雷达检测仿真的基本思路和代码实现。读者可以根据自己的需求进行修改和优化,以适应不同的应用场景。使用Matlab实现海洋监视雷达检测仿真。

2301_78484069的博客 450

论文阅读笔记整理(持续更新)

阅读论文,整理其目标、挑战、创新点、局限性

重新开始写博客 4756

DeepSeek-OCR安装部署文档和避坑指南,包含大多数人遇到的安装报错问题

DeepSeek-OCR安装部署指南摘要:本文详细介绍高性能OCR工具DeepSeek-OCR的安装流程,支持多语言识别和复杂场景文字提取。系统要求包括Linux/Windows/macOS操作系统,推荐NVIDIA显卡(显存≥6GB)和≥16GB内存。安装步骤涵盖:1)创建conda虚拟环境;2)安装PyTorch等核心依赖;3)解决常见问题如CUDA版本冲突、模型下载慢等。提供GPU内存不足等问题的解决方案,帮助开发者快速部署OCR服务。(149字)

yolo模型训练找我,AI游戏合作找我 2950

Paper Read——FlexMem: Adaptive Page Profiling and Migration for Tiered Memory

温页(Warm Pages):介于冷页与热页之间,具有潜在升温可能但近期访问频率较低的页面。MEMTIS将温页定义为热阈值前一档(静态范围失效:如Silo案例所示,温页的分布可能随时间动态变化。例如:初始阶段:温页集中在低档位(bin_1bin_5中后阶段:温页迁移至高档位(bin_5bin_6过度降级风险:固定温页范围可能导致近期可能升温的页面被错误降级,引发后续回迁开销。

bukuishiwoa的博客 1167

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Intel Processor Trace(一)

Intel Processor Trace简介

小立仔 3704

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

perf uncore PEBS

About perf 从2.6.31版本开始,linux内核开始提供了一个正式接口来管理硬件计数器,这个接口就是通过系统调用“perf_event_open” , 同时内核还提供了一个用户层次的工具来利用这个接口,也就是perf。 perf有两种可用的模式:计数和采样。 计数简单的在整个程序执行的过程中测量发生的事件数目而不会考虑到底是哪些指令或者是哪些函数造成了这些事件的产生。

zgl07的专栏 2071

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Intel处理器Family、Model、Stepping等的学习

本文主要介绍在Linux系统中查看本机CPU信息方法,接着针对intel的x86处理器标识进行概括性描述,包括CPU ID、vendor、Family、Model、Stepping等。这些信息主要来自网络搜索所得,同时参考Intel IA32架构软件开发手册第2卷、第3卷进行修正完善,参见文后附带地址以便了解更多。 一、Linux下查看CPU信息 Linux系统使用lscpu命令可以查看CPU信息,如: latelee@latelee:~$ lscpu Architecture: i6

李迟的专栏 3万+

Linux 性能检测/调优之Perf_Event

引言 Linux性能检测/调优是一个很大的话题,涉及的内容也非常广泛。目前,从硬件层面到系统层面都提供了一系列硬件支持/软件工具给开发者来检测系统性能以针对具体问题进行调优。 本文主要关注其中的利用性能计数器(Performance Counter)进行性能检测的linux工具Perf,介绍了其强大的能力以及部分使用方法。本文主要部分参考了Brendan D. Gregg的博客,在该博客的Pe...

He11o_Liu的专栏 8703

检查机器cpu是否支持 Intel dpdk 1.7

摘要: 今天有人在群里提到了问题,说dpdk 1.7版本在自己的机器上

编码人生——朝阳_tony 1万+

Intel CPU 上使用 pmu-tools 进行 TopDown 分析

title: Intel CPU 上使用 pmu-tools 进行 TopDown 分析 date: 2021-01-24 18:40 author: gatieme tags: - debug - linux - todown categories: - debug thumbnail: blogexcerpt: 这篇文章旨在帮助希望更好地分析其应用程序中性能瓶颈的人们. 有许多现有的方法可以进行性能分析, 但其中没有很多方法既健壮又正式. 而 TOPDOWN 则为大家进行软硬协同分析提供了无限可能. .

OSKernelLAB(gatieme) 5838

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 296

ChatGPT、Perplexity、Gemini 与 AI Overviews 引用对比:谁的引用更可信

AI 引擎的引用机制差异很大:ChatGPT 以行内引用加 Sources 列表呈现来源,Perplexity 几乎逐句可溯源,Gemini 在回答中内嵌相关来源链接,AI Overviews 则把多源聚合答案与来源列表一起放在搜索结果顶部。本文从引用透明度、来源偏好、可干预性 3 个维度对比这 4 个引擎,并给出 GEO 的 3 点启示,帮企业在多引擎环境下提升被引用的概率。

淡然一笑 的专栏 140

AI Agent之核心框架

A: 显式 Thought 有三类价值:可解释性(便于人类审计)、可调试性(定位哪一步选错工具)、学习信号(可做监督微调或评估中间步骤质量)。ReAct 把推理与 可执行行动 绑定,每一步行动后都有 真实 Observation 反馈,从而用工具结果约束生成,降低闭卷幻觉。做完不等于结束——还要 评估做得好不好,把 教训 记下来,下次 带着教训重试,反思作为 记忆,影响后续尝试的策略。工作流程:Action → Evaluation → Reflection → Retry。A: 普通 CoT 只在。

剑雨巍巍的博客 234

【从零理解 Spring AI · 12】MCP 的两种角色:做客户端还是做服务端

上一篇讲了 MCP 的概念:标准协议、三大角色、M+N 替代 M×N。

nice_lcj520的博客 532

AI 应用开发工程师技术实践:大模型接入、通用组件封装与性能优化

本文提出AI应用从PoC到生产的核心挑战:模型调用的持续可用、可控与可优化。通过构建统一LLM网关实现多供应商路由与故障转移,封装对话、工具调用与RAG组件以解耦业务逻辑,结合前缀缓存、批处理与流式背压治理等性能优化手段,形成“接通→接稳→接快”的工程路径,最终以工程化能力决定AI应用的生产可用性。

2301_79189962的博客 586

终端 AI 审计与 “龙虾” 类智能体风险治理:从可见性到闭环溯源

生成式 AI 办公普及之后,数据泄露风险逐步下沉到终端。员工将合同、源代码、客户资料粘贴至公有大模型,以及龙虾(OpenClaw)这类本地开源 AI 智能体的滥用,成为企业安全新挑战。传统网络边界防护存在审计盲区,本文从风险链路拆解、核心能力模型、分级治理策略、落地踩坑点以及技术局限性多角度,分享终端侧 AI 安全治理的实践思路。

2401_86491085的博客 665
上一篇: 论文阅读:OpenSTL: A Comprehensive Benchmark of Spatio-Temporal Predictive Learning
下一篇: 论文阅读:(tpami2024) Probing Synergistic High-Order Interaction for Multi-modal Image Fusion
ghost_him
博客等级 码龄6年 598粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值