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

CXL 介绍

An Introduction to the Compute Express LinkTM (CXLTM) Interconnect

arXiv Paper

对CXL技术进行介绍,包括CXL 1.0、CXL 2.0、CXL 3.0,对各规范的提升做介绍。整理了现有的CXL实现方法,延迟测试结果,对未来发展进行展望。

How Flexible is CXL’s Memory Protection? Replacing a sledgehammer with a scalpel

Queue 2023 Paper 泛读笔记

CXL提供的是粗力度的内存共享,没有提供细粒度的内存保护功能,作者提出用针对特定领域优化的去中心化能力系统来优化CXL的安全性。

CXL (Compute Express Link) Technology

Journal of Computer and Communications 2023 Paper 阅读笔记

对CXL的一些基础知识进行整理,包括一些对CXL的问题、CXL协议、完整性和数据加密(IDE)、数据速率。

提出一些使用CXL的看法:(1)SSD是块设备(而不是随机访问负载存储设备),不需要CXL控制器。(2)应用程序应该不知道正在使用什么内存,也不知道不同的延迟。操作系统/内核应该负责为应用程序分配正确的内存类型。(3)可以创建一个malloc函数,该函数可以指定它是否可以使用延迟更高的内存池,并由操作系统相应地为其提供服务。可以将现有的类似NUMA的方法应用于CXL。

CXL and the Return of Scale-Up Database Engines

arXiv Paper 泛读笔记

对CXL在数据库领域的使用前景的分析,利用CXL带来的新功能,可以更好的实现内存扩展、分离式内存、近数据处理。文中提出了许多CXL带来的新问题,有待后续进行优化。

Compute Express Link(CXL): An Open Interconnect for Cloud Infrastructure

DAC 2023 Paper 阅读笔记

对CXL技术的介绍,CXL用于解决三个挑战:缓存一致性、内存带宽不足、资源滞留或未充分利用。介绍三代CXL规范的主要创新点:(1)CXL 1.0支持单个节点上直接连接主机处理器和CXL设备,提出三种CXL协议和三种CXL设备;(2)CXL 2.0支持跨节点切换和资源池,利用交换机,支持跨多个域(节点)的设备池、扇出交换机、对持久内存的支持、安全性。(3)CXL 3.0支持织物拓扑的可组合系统,加快传输速率和带宽,提出无序I/O(UIO)支持织物拓扑,提出反向无效(BI)支持主机以非缓存的方式访问其他主机管理的设备内存,支持多级交换机,引入节点间一致共享内存。

CXL 实现

Demystifying CXL Memory with Genuine CXL-Ready Systems and Devices

MICRO 2023 Paper 阅读笔记

使用CXL模拟器和真实CXL硬件,比较其性能。发现不同CXL控制器的设计会显著影响延迟的带宽,使用模拟器相对来说延迟更高带宽更小;使用CXL内存时使用页面迁移策略,需要考虑迁移带来的开销,否则会带来负优化;使用CXL内存会增加延迟,对𝜇s级延迟敏感的内存密集型应用,会显著增加p99延迟,对𝑚s级延迟敏感的复杂应用,增加的延迟可忽略不计;使用CXL内存会增加总带宽,但数据分布不合理时,带宽反而下降,需要有效的设计算法来优化吞吐和带宽。

Direct Access, High-Performance Memory Disaggregation with DirectCXL

ATC 2022 Paper

基于硬件实现了CXL协议,将CXL 2.0引入实际系统并分析支持CXL的分解内存设计。

Memory Pooling With CXL

IEEE Micro 2023 Paper

DirectCXL的完整版,设计基于CXL的内存池,由于传统基于页面或基于对象的内存池。分析了基于CXL各步骤的实现,通过CXL连接主机和内存,运行时的软件堆栈,硬件实现方法。通过CXL优化减少了访问内存池时的网络开销、复制开销、利用CPU cache优化访问。在各种实验下均有良好的性能。

未来会基于CXL 3.0继续扩展,添加多缓存设备,反向无效窥探,利用多头逻辑设备和动态容量设备支持数据共享和内存动态扩展,结构扩展到更多互联设备。

按照这个实验的结果,L1 cache延迟4ns,L2 cache延迟96ns,本地内存240ns,CXL 1.312us,RDMA 8.108us。CXL比RDMA快8.3倍。

CXLMemSim: A pure software simulated CXL.mem for performance characterization

arXiv Paper

构建模拟器实现CXL.mem,只写了各简单的介绍,没有详细细节。模拟器先在现有软件上执行程序,并跟踪内存操作,将应用程序周期性中断插入三种延迟。https://github.com/SlugLab/CXLMemSim

局限性:目前开来模拟时间还是很长,对于系统调用的模拟时间提升34-141倍,不知道模拟的准不准

SMT: Software-Defined Memory Tiering for Heterogeneous Computing Systems With CXL Memory Expander

IEEE Micro 2023 Paper

提出基于CXL的内存扩展方案。构建了MXP原型,使用CXL控制器增强系统内存容量和带宽。开发了软件套件SMDK,用于在具有MXP的异构内存系统上执行内存分层、管理和智能分配。https://github.com/OpenMPDK/SMDK ,代码的wiki里介绍了一些细节。

文章里没讲具体的实现细节,就大概介绍了一下架构和各种功能,看不懂咋实现的。

按照这个实验的结果,本地内存100-140ns,CXL 420-600ns。但表格里写的平均是145ns,QoS 99.9%以上才和实验结果差不多425ns-567ns。顺序读或写带宽26GB/s,随机读写一起40GB/s,用的PCIe 5.0,理论上双通道时可达到64 GB/s。

Compute Express Link (CXL): Enabling Heterogeneous Data-Centric Computing With Heterogeneous Memory Hierarchy

IEEE Micro 2023 Paper 泛读笔记

对CXL协议的实现,涵盖了CXL 1.0和CXL 2.0的协议和实现方面,使用64.0-GT/s脉冲幅度调制4级电平(PAM-4)信令,将带宽增加一倍。

CXL 应用

Lightweight Frequency-Based Tiering for CXL Memory Systems

arXiv Paper 泛读笔记

针对利用本地内存和CXL内存的分层系统,如何同时提升数据放置准确率;减少内存和运行时间开销。本文提出FreqTier,用于CXL内存的基于频率的分层系统。提出三个创新点:(1)采用了基于频率的分层,使用高性能硬件计数器以页粒度跟踪内存访问。(2)使用计数布隆滤波器(CBF)(一种概率数据结构)跟踪页面访问频率。(3)采用动态方法,根据应用程序内存访问行为调整分层操作的强度,调整页面迁移和访问采样频率。

Improving key-value cache performance with heterogeneous memory tiering: A case study of CXL-based memory expansion

IEEE Micro 2024 Paper 阅读笔记

利用CXL扩展内存,满足超出DRAM的带宽或容量需求。本文开发了一个CXL 2.0内存扩展解决方案,包括:(1)E3.S CXL内存原型;(2)HMSDK,提出新的NUMA内存分配策略,根据用户定义的内存分配比率在NUMA节点之间交错分配内存页。(3)透明分层和数据分层两种内存系统架构,透明分层中DRAM和CXL内存作为统一的内存层共存,数据分层中将DRAM和CXL内存区分为单独的内存层,根据数据类型,将元数据、索引数据存在DRAM中,键值数据存在两种内存中。并将其应用于Meta的缓存系统。

CXL-Enabled Enhanced Memory Functions

IEEE Micro 2023 Paper 阅读笔记

介绍了增强内存功能(EMF)的概念,提供了如何在智能内存控制器(IMC)中实现两个用例(访问热图和内存回滚)的EMF。本质来说是利用近数据处理的思路,在CXL设备端通过IMC获取更多数据,例如访问跟踪、缓存行状态,并响应来自主机的请求,实现更高的性能。

提出了EMF设计思路,利用以下一个或多个属性来实现其功能:(1) 接近内存介质本身。(2) 能够在数据平面上插入内存读/写命令。(3) 主机处理器缓存层次结构外部。(4) 独立于主机ISA限制。(5) 与虚拟内存子系统分离。(6) 能够与主机处理器复合体进行交互,以保持数据一致性。

Dynamic Capacity Service for Improving CXL Pooled Memory Efficiency

IEEE Micro 2023 Paper 阅读笔记

针对CXL扩展池内存,从软件和硬件方面实现了动态容量服务(DCS),根据主机的需求动态地从池中分配或释放内存。DCS硬件引擎支持动态容量分配和释放,包括:内存管理单元(MMU)、邮箱、内存段表、内存保护单元(MPU)、安全擦除器。DCS软件框架支持用户使用CXL池内存,包括:CXL池内存检测和管理、DCS引擎驱动程序、支持DCS的Kubernetes。并实现了用于传输请求的API,支持三个命令:获取内存段状态、设置内存段分配、设置内存段释放。最终基于FPGA实现了DCS原型,可以适用于不同孽畜大小的节点组成内存池,并提高系统内存利用率。

Cache in Hand: Expander-Driven CXL Prefetcher for Next Generation CXL-SSDs

HotStorage 2023 Paper 泛读笔记

针对CXL-SSD的预取,现有方法面临硬件逻辑大小限制和不同CXL层延迟不同。本文提出ExPAND,一种扩展器驱动的CXL预取器,将预取卸载到CXL SSD。包括两个关键技术:(1)使用用于地址预测的异构机器学习算法管理跨各种扩展器访问的数据预取,利用CXL.mem的反向失效(BI)确保数据一致。(2)在枚举和设备发现过程中识别底层CXL网络拓扑和设备延迟,技术每个CXL-SSD的精确端到端延迟,并写入每个设备的PCIe配置空间。因此,预取算法可以确定获取数据的最佳时机,减少了SSD后端介质施加的长延迟。

Apta: Fault-tolerant object-granular CXL disaggregated memory for accelerating FaaS

DSN 2023 Paper 泛读笔记

针对云环境的FaaS,如何通过基于CXL的分离式内存进行优化。直接使用CXL会面临部分故障引起的不可用。本文提出Apta,基于CXL的对象粒度内存接口,用于维护FaaS对象。关键创新是新的容错一致性协议,包括两个部分:(1)惰性失效,将无效项移出写入的关键路径,这样当缓存共享程序的服务器出现故障时,写入程序就不会被无限期地阻止。但会导致缓存不一致。(2)一致性感知调度,对FaaS调度器进行了更改,使其只能在无未决失效的服务器上调度功能,从而实现强大的一致性和可用性。

A Case Against CXL Memory Pooling

HotNets 2023 Paper 泛读笔记

针对在数据中心或云中利用CXL扩展内存池的可行性,本文分析结果是目前不可行,使用CXL内存池面临三个问题:成本、复杂性和实用性。(1)CXL池的成本将超过减少RAM所节省的成本。因为使用CXL池有大量的基础设施成本,如与以太网完全并行的网络基础架构。(2)CXL的延迟远远高于主内存,要获得良好的性能,需要重写软件以显式管理CXL内存,将块复制到本地DRAM中,增加了软件的复杂性。(3)CXL内存池化的动机是针对被搁置的内存,即由于没有更多的计算资源来支持虚拟机而无法分配给虚拟机的内存,现在可以被其他服务器集中使用。但现代服务器相对于大多数虚拟机来说都很大,几乎没有内存搁浅。

Accelerating Performance of GPU-based Workloads Using CXL

FlexScience 2023 Paper 泛读笔记

针对基于GPU的HPC工作负载,其通常受到板载系统存储器的数量以及共享存储器资源(例如主存储器)和互连(例如PCIe)的争用的限制。本文提出了一种高效的内存分配方法,结合了多GPU系统的每个插槽上的内存需求进行内存分配。

局限性:整体来看方法比较简单,就是根据各种资源剩余数量和需求量进行分配。实验也是基于模拟,在访问过程增加CXL惩罚,实验不太准。

Evaluating Emerging CXL-enabled Memory Pooling for HPC Systems

MCHPC@SC 2022 Paper 泛读笔记

用仿真器和模拟器评估CXL对HPC应用和图应用的性能影响,将CXL用于内存容量扩展和带宽扩展。

结果显示,在仿真的CXL内存池系统上,CXL内存池占75%的内存使用情况下,七个HPC应用中有五个在仿真CXL系统上几乎没有性能降级。在仿真的高带宽CXL系统上,OpenFOAM和Hypre等带宽敏感性最高的应用程序也保持了性能,突显了CXL启用的内存系统在可扩展、成本效益高带宽系统方面的潜力。对于共享内存服务器上的干扰需要通过系统级的协调来解决,基于对每个作业动态使用情况的理解,以减轻性能降级。

Transactional Indexes on (RDMA or CXL-based) Disaggregated Memory with Repairable Transaction

arXiv Paper 泛读笔记

在分离式内存场景下,如何保证客户端操作的事务性,即故障原子性和隔离性,避免客户端崩溃导致索引数据的损坏。作者提出在事务进行前先记录redo log,如果发生故障则通过redo log来恢复;通过租约锁识别客户端故障,后续客户端如果发现租约锁过期则认为发生故障,并主动通过redo log恢复;保证修复操作时幂等的,实现协调修复操作。

CXL over Ethernet: A Novel FPGA-based Memory Disaggregation Design in Data Centers

FCCM 2023 Paper 泛读笔记

优化分离式内存的访问。利用CXL和RDMA结合的方法,用CXL支持本机内存加载/存储访问;利用RDMA进行跨机架的访问,并通过封装以太网帧减少DMA复制和地址转换;通过缓存远程内存数据和拥塞控制算法减少延迟。

SDM: Sharing-enabled Disaggregated Memory System with Cache Coherent Compute Express Link

PACT 2023 Paper 阅读笔记

利用CXL优化分离式内存,利用CXL特性优化多处理器间的缓存一致性协议(MESI协议)。通过支持共享的控制流(SHA-CF)促进多主机间的共享,本质还是基于嗅探的MESI协议,利用CXL反向失效进行优化;利用CXL.io管理节点资源,不影响CXL.cache和CXL.mem传输;提出推测访问,就是乐观的执行仿存,若权限检查失败在回滚。

局限性:总体来看比较简单,利用CXL的特性来优化MESI协议;实验基于Intel PIN tool构建了模拟器,但没有具体细节,只对比了基础的基于嗅探的MESI协议,没有对比更好的缓存一致性算法。

Computational CXL-Memory Solution for Accelerating Memory-Intensive Applications

IEEE Computer Architecture Letters 2023 Paper 泛读笔记

通过CXL利用分离式内存加速应用计算。在CXL内存设计了计算核心,减少通过CXL传输的数据量;通过交织内存通道,利用MAC运算器隐藏累加器延迟,充分利用内部带宽。

CXL-ANNS: Software-Hardware Collaborative Memory Disaggregation and Computation for Billion-Scale Approximate Nearest Neighbor Search

ATC 2023 Paper

针对十亿规模近似最近邻居搜索(ANNS)问题,通过CXL缓解内存压力。

针对算法细节优化,基于关系感知进行图缓存,利用领域专用加速器(DSA)、EP端计算减少传输开销,调整算法执行顺序隐藏CXL内存池的延迟,对算法执行过程放松依赖进行调度。总体基于CXL实现十亿规模ANNS取得良好性能。

Overcoming the Memory Wall with CXL-Enabled SSDs

ATC 2023 Paper

针对计算资源和存储资源增长速度不匹配导致内存墙问题,本文提出基于CXL的闪存作为内存。

开发了一种新的工具来收集应用程序的物理内存跟踪,同时收集LLC未命中或驱逐引起的内存访问和页故障导致的页表更新,将二者组合成物理内存跟踪。https://github.com/spypaul/MQSim_CXL

克服了闪存的三个挑战:粒度不匹配、微秒级延迟、持久性有限。通过在闪存前添加DRAM作为缓存,设计未命中状态保持寄存器(MSHR)减少缓存未命中时的流量,设计简单的预取策略进行预取,使68–91%的请求延迟小于1微秒,估计寿命至少为3.1年。

局限性:文章所探讨的CXL闪存的设计没有考虑闪存的内部任务,如垃圾收集和损耗均衡,所考虑的主机系统可能无法完全反映CXL引入的新系统特性。只使用了MQSim模拟器。

Hello Bytes, Bye Blocks: PCIe Storage Meets Compute Express Link for Memory Expansion (CXL-SSD)

HotStorage 2022 Paper

提出了使用CXL-SSD扩展内存的思路,与上一篇思路相近。但没有做更细节的优化,只是简单用硬件实现了CXL-SSD,性能不佳。主要讨论了CXL-SSD的CXL互连和可扩展性潜力。讨论了主机向设备提供提示时的设计思路,通过在CXL消息中添加注释,将不同用户场景通知CXL-SSD,用于缓存预取或汇总数据批量写入。

A Case for CXL-Centric Server Processors

arXiv Paper

针对使用CXL接口替换DDR接口,从而极大增加带宽。

提出使用基于CXL的内存替代基于DDR内存,将内存请求分布在4倍以上的内存通道上,CXL减少了对内存总线的排队影响。由于排队延迟在有负载的内存系统中占主导地位,因此这种减少远远弥补了CXL引入的接口延迟开销。提出了分对称的CXL接口优化,读写接口不设计成1:1,根据读写需求设计,但PCIe标准目前不允许这样做。

局限性:设计过于简单,也没有很多具体场景的优化,实验基于模拟器做的比较简单,没有实际模拟CXL。

TPP: Transparent Page Placement for CXL-Enabled Tiered-Memory

ASPLOS 2023 Paper

对于内存扩展的场景,如何灵活使用本地内存和较慢的CXL内存,目标是将热页面留在本地内存,冷页面卸载到CXL内存。

文章构建Chameleon,轻量级的用户空间工具,用于分析应用程序的内存访问行为,如页面温度、不同类型页面的温度、不同页面类型使用情况。

根据分析结果设计TPP,内核空间下的透明的页放置策略,使用轻量级回收机制将冷页降级到CXL内存,将分配和回收逻辑解耦增加本地内存空闲页空间,基于LRU的页提升机制将热页提升到本地内存,基于页面感知的分配将不同类型页初始分配到不同内存层。

主要使用NUMA架构进行模拟,两个节点,一个有CPU和内存,另一个只有内存。也部署了基于FPGA支持CXL 1.1的硬件但延迟较高。实验结果本地内存利用率更高,吞吐量更高。

Pond: CXL-Based Memory Pooling Systems for Cloud Platforms

ASPLOS 2023 Paper

对生产云集群中观察发现内存滞留和未接触内存,可以通过内存池+CXL内存缓解,用内存池避免内存滞留,将未接触内存分配到廉价的远程内存节省DRA成本。

本文提出Pond,满足云提供商要求的全栈内存池,由硬件、系统软件和分布式系统层组成,用于管理池/CXL内存。提出4个技术:用8-16个套接字之间的池大小即可实现池的大部分优势;通过ML模型预测工作负载的延迟敏感程度、未接触内存大小,根据结果分配内存位置;将未接触内存分配到慢速内存节点不会影响工作负载性能;通过监控系统避免ML预测错误导致的性能下降。

套着CXL壳的云存储下内存分层技术,对云上工作负载分析,发现有节省内存的空间,于是对工作负载要使用的内存做预测,根据预测结果分开申请内存。

Design Tradeoffs in CXL-Based Memory Pools for Public Cloud Platforms

IEEE Micro 2023 Paper

在Pond基础上继续研究,Pond提出要使用更大的CXL内存池(50%),来节省DRAM的成本,本文分析发现使用CXL池会引入其他基础设施开销,反而使用较小的内存池(25%)综合来看节省更多成本。提出使用CXL多头设备(MHD)进行池的连接,相比于CXL交换机可以进一步减少传输延迟。

整体来看论文内容偏简单,绝大多数篇幅都是重述了Pond中的发现,最后分析了一下使用CXL内存池引入其他成本。

BEACON: Scalable Near-Data-Processing Accelerators for Genome Analysis near Memory Pool with the CXL Support

MICRO 2022 Paper

对生物领域的基因组分析问题优化,其中许多应用是内存绑定的,现有方法在通信带宽上和内存扩展方面有瓶颈,作者想设计基于CXL的设计,利用内存池中丰富的内存和CXL提供的高通信带宽。

提出BEACON,优化内存访问和通信。通过添加PE进行计算,添加内存控制器和地址转换器优化内存访问,添加总线控制器和数据打包器优化通信,添加原子引擎优化内存访问,通过数据迁移方法利用数据局部性优化内存访问,针对特定算法设计多芯片合并优化通信。相比与现有方法提升了大量性能但也提升了少量能耗

多数是基于硬件的修改,在CXl架构下针对基因组分析添加硬件解决内存访问和通信的问题。或许可以将这些硬件功能通过软件实现用于其他问题的优化。

Design and Analysis of CXL Performance Models for Tightly-Coupled Heterogeneous Computing

ExHET@PPoPP 2022 Paper

尝试使用CXL优化紧耦合的异构计算,本文用FPGA和GPU的通信作为例子,程序先通过FPGA计算,随后将计算结果传入GPU继续计算。

感觉没有真正实现,只是通过数学公式直接计算,模拟CXL惩罚参数为60%-90%的结果。大多数模拟太理想化了,也没有针对问题做细节上的优化,整体偏简单。只能算是个尝试,用CXL有优化异构计算的空间,但文章没有做很细节的实现。

Failure Tolerant Training With Persistent Memory Disaggregation Over CXL

IEEE Micro 2023 Paper

针对大规模推荐系统,通过CXL实现低开销容错性。使用type-2设备,将PMEM和GPU连接到CXL系统中,通过硬件间相互cache减少数据移动的开销(将整体一次性移动改为了多次小移动,会不会反而增加传输数据量,可能最后结果只有10,但中间计算结果有20)。通过批处理感知调整记录检查点时间,利用PMEM空闲时间记录检查点。将推荐训练的顺序放松,重新调度避免RAW开销,减少检查点记录。

整体思路创新性挺好,实验时因为没有硬件用GPU上计算时间替代CXL系统下的计算时间。第一个优化点利用CXL设备间相互cache,协议里没具体写可以这样实现,属于是自己猜测的功能。

Partial Failure Resilient Memory Management System for (CXL-based) Distributed Shared Memory

SOSP 2023 Paper

分布式共享内存,因为使用CXL技术,可能存在部分故障。例如两个计算节点引用相同内存,其中部分计算节点故障时不影响其他计算节点。基于重做日志无法精确定位故障位置;使用锁无法满足部分故障,获取锁的部分可能发生故障。
本文基于引用计数的内存管理方法,避免不同计算节点间故障后无法恢复的问题,实现CXL系统下的故障恢复。https://github.com/madsys-dev/sosp-paper19-ae

CXL Memory as Persistent Memory for Disaggregated HPC: A Practical Approach

arXiv Paper

将CXL内存用于高性能计算领域,作者展示了从传统PM编程模型可以轻易过度到CXL上,使用CXL可以表现出和PM近似的能力,优势是有更高的带宽。

Enabling CXL Memory Expansion for In-Memory Database Management Systems

DaMoN 2022 Paper

直接用CXL type 3扩展IMDBMS内存,将CXL内存设备仅用于主存储器。增量存储器和操作数据存储在主机DRAM中。当顺序访问主存储器时,预取方案可以有效地隐藏CXL设备的较长延迟。

Performance Evaluation on CXL-enabled Hybrid Memory Pool

NAS 2022 Paper

使用NUMA架构模拟CXL架构,使用SSD作为分层内存的第二层,测试典型工作负载的性能。就是NUMA架构,跟CXL没啥关系。

CXL架构

  • 硬件保证了主机和分配的CXL device间的一致性;主机也可以访问其他主机的CXL device,但不保证cache一致性,可以通过禁用缓存或软件负责一致性的方法来访问;主机和主机间通过GIM相互访问,也不支持cache一致性,GIM延迟暂时不知道,假设和主机访问CXL device的延迟相同。

  • 多头CXL.mem设备(MHD)连接到多个主机,可以同时将相同的物理内存区域映射到其所有HPA中。

在这里插入图片描述

各层级延迟情况

在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

三分钟带你读懂面向对象的三大特征:封装,继承,多态

很多小伙伴在学面向对象的时候觉得非常抽象,尤其是对于面向对象的三大特征:封装,继承,多态不理解,那这期文章呢,九九就给大家安排,三分种带你迅速掌握封装,继承,多态。 …

17.基础乐理-调式、自然大调式(C大调、D大调。。。)

调式: 若干个音,按照某种规则排列起来,就是调式,调式是一个非常大,非常抽象的概念,调式这两个字是一个统称,当明确了 若干个音 到底有几个音,某种规则到底是什么规则之后&#xff0c…

刚拿到的《HarmonyOS应用开发者高级认证》,全网整理的题目,将近300题,100%通过

刚拿到《HarmonyOS应用开发者高级认证》,现在把题目和答案分享一下,这些题目是我根据其他网站整理的,宁滥勿缺,有个别题目是重复的,抽半天时间看一下,应该是稳过的。当然建议还是先跟着文档学一下鸿蒙或者看…

【UE5.1】使用MySQL and MariaDB Integration插件——(4)修改、插入、删除数据

目录 效果 步骤 一、修改 二、插入、删除 在上一篇博客(【UE5.1】使用MySQL and MariaDB Integration插件——(3)表格形式显示数据)基础上继续实现修改、插入和删除数据库数据的功能 效果 修改数据: 插入数据&…

【YOLO系列PR、F1绘图】更改v5、v7、v8(附v8训练、验证方式),实现调用val.py或者test.py后生成pr.csv,然后再整合绘制到一张图上(使用matplotlib绘制)

目录 1. 前提 效果图2. 更改步骤2.1 得到PR_curve.csv和F1_curve.csv2.1.1 YOLOv7的更改2.1.1.1 得到PR_curve.csv2.2.1.2 得到F1_curve.csv 2.1.2 YOLOv5的更改(v6.1版本)2.1.3 YOLOv8的更改(附训练、验证方式) 2.2 绘制PR曲线 …

在CSDN创作了6个月,我收获了什么?文末送书~

作者主页:阿玥的小东东主页! 正在学习:python和C/C 期待大家的关注哦 目录 一次很好的机会,让我开始了CSDN之旅 首先来看看我的几位领路人 创作动力 1W粉丝 在CSDN我收获了什么? 很高的展现量 认证创作者身份 社…

Linux 网络操作命令FTP

FTP命令 引言 文件传输协议(FTP)是一种用于在网络上进行文件传输的协议。在Linux系统中,FTP可以作为一个非常有用的工具来上传、下载和管理文件。本文将介绍如何在Linux系统中安装FTP服务器,以及如何使用FTP客户端进行文件传输。…

RabbitMQ进阶学习

在之前的练习作业中,我们改造了余额支付功能,在支付成功后利用RabbitMQ通知交易服务,更新业务订单状态为已支付。 但是大家思考一下,如果这里MQ通知失败,支付服务中支付流水显示支付成功,而交易服务中的订…

充电器进阶,原边恒流,单片机控制小电流(预充电)的方案

前言 很多充电器,为了能控制电流输出,也就是充电时需要有小电流、大电流的情况,都会用副边及单片机进行控制,但因为是副边控制,需要一个比较器、一个二极管、若干电阻、若干电容,整体BOM成本可能多了三毛钱…

VUE 项目 自动按需导入

你是否有这样的苦恼,每个.vue都需要导入所需的vue各个方法 unplugin-auto-import 库 Vite、Webpack和Rollup的按需自动导入API 本章提供Vite、Webpack中使用说明 1. 安装 npm i -D unplugin-auto-import 2. config.js 配置文件内追加配置 2.1 Vite // vite.conf…

用Nest实现对数据库的增删改查~

概述 为了与 SQL和 NoSQL 数据库集成,Nest 提供了 nestjs/typeorm 包。Nest 使用TypeORM是因为它是 TypeScript 中最成熟的对象关系映射器( ORM )。因为它是用 TypeScript 编写的,所以可以很好地与 Nest 框架集成。 TypeORM 提供了对许多关系数据库的支…

问题总结笔记

1.向量旋转 问题: 将一个向量旋转90 方法:旋转矩阵 FVector FrontDir EndMousePoint - Point; FrontDir.Normalize(); FVector Left FVector(-FrontDir.Y, FrontDir.X, 0); Verties.Add(Point Left * (WallWedith / 2)); Verties.Add(FVector(Vertie…

C语言 | Leetcode C语言题解之第35题搜索插入位置

题目&#xff1a; 题解&#xff1a; int searchInsert(int* nums, int numsSize, int target) {int left 0, right numsSize - 1, ans numsSize;while (left < right) {int mid ((right - left) >> 1) left;if (target < nums[mid]) {ans mid;right mid - …

Ubuntu Server 20.04 LTS 64bit安装ftp服务

1.安装vsftpd sudo apt install vsftpd2.配置vsftpd sudo vim /etc/vsftpd.conf write_enableYES # 启用任何形式的FTP写入命令&#xff0c;即可以修改文件local_umask022 # 本地用户创建文件的 umask 值&#xff0c;默认是被注释的connect_from_port_20YES # 针对 PORT 类型…

01_Nginx

文章目录 NginxNginx的核心功能Nginx的优势Nginx常用指令Nginx配置文件Nginx的核心功能&#xff1a;反向代理 Nginx Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器&#xff0c;同时也提供了IMAP/POP3/SMTP服务。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子…

《大话西游2》本人收集的十二个单机版游戏,有详细的视频架设教程,云盘下载

《大话西游2》是一款经典的大型多人在线角色扮演游戏&#xff0c;也是一款国风经典的游戏。 有能力的可以架设个外网&#xff0c;让大家一起玩。 《大话西游2》本人收集的十二个单机版游戏&#xff0c;有详细的视频架设教程&#xff0c;值得收藏 下载地址&#xff1a; 链接&…

色彩空间转换在AI去衣技术中的应用与探索

在人工智能&#xff08;AI&#xff09;的广阔领域中&#xff0c;图像处理和计算机视觉技术一直占据着举足轻重的地位。其中&#xff0c;AI去衣技术作为一种新兴的图像处理技术&#xff0c;近年来受到了广泛关注。在AI去衣的实现过程中&#xff0c;色彩空间转换技术发挥着至关重…

信息系统项目管理师0057:运维管理(4信息系统管理—4.2管理要点—4.2.2运维管理)

点击查看专栏目录 文章目录 4.2.2运维管理1.能力模型2.智能运维4.2.2运维管理 IT运维是组织IT服务中关键的一种类型。随着组织IT建设的不断深入和完善,信息系统运维已经成为了各行各业各组织管理者和IT团队普遍关注的问题。IT运维是指采用IT手段及方法,依据服务对象提出的服务…

visionpro_对比工具_CogPatInspectTool

CogPatInspectTool CogPatInspectTool工具使用PatMax检测缺陷(缺陷被定义为运行期间图像中超出正常预期的图像差别的任何变化)&#xff0c;缺陷可能是物体遗失&#xff08;阻塞&#xff09;或者多余&#xff08;杂乱&#xff09;, 原理是通过PMAlign工具实现,用训练图片和当前…

Github账号注册

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…