计算机科学
Computer Science
人工智能
Artificial Intelligence
计算与语言
Computation and Language
计算复杂性
Computational Complexity
传统的内存管理受到元数据开销、架构复杂性和稳定性下降的影响,这些问题在云环境中加剧。 现有的软件/硬件优化不足以满足云计算的灵活性和低开销的双重需求。 本文介绍了 Vmem,一种用于生产中的云环境的内存管理架构,通过轻量级保留内存管理实现灵活、高效的云服务器内存利用率。 Vmem是第一个支持在线升级的架构,满足云要求,以实现高稳定性和快速迭代演进。 实验表明,Vmem可将可销售内存速率提高约2%,提供极端弹性和性能,为基于VFIO的虚拟机(VM)实现超过3倍的启动时间,并将DPU加速的VM的网络性能提高了约10%。 Vmem已经大规模部署了七年,在支持数亿虚拟机的30多万台云服务器上展示了效率和稳定性。
本文表明,由于对已配置的缓存的可见性和控制有限,基于缓存的优化在云虚拟机(VM)中通常无效。 在公共云中,CPU缓存可以在VM之间分区或共享,但VM不知道缓存配置详细信息。 此外,VM 无法通过页面放置策略影响缓存使用,因为内存到缓存映射是隐藏的。 本文提出了一种新的解决方案CacheX,它使用驱逐集在VM中探索准确和细粒度的缓存抽象,而无需硬件或虚拟机管理程序支持,并使用两种新技术展示了探询信息的效用:LLC争量感知任务调度和虚拟色彩感知页面缓存管理。 我们对 x86 Linux 内核中 CacheX 的实现进行评估,证明它可以有效地提高公有云虚拟机中各种工作负载的缓存利用率。
异构硬件和动态工作负载加剧了操作系统在可扩展性、适应性和可管理性方面的长期瓶颈。 与此同时,机器学习(ML)、大型语言模型(LLM)和基于代理的方法的进步实现了自动化和自我优化,但目前的努力缺乏统一的观点。 本调查回顾了AI-OS交叉点的技术、架构、应用、挑战和未来方向。 我们绘制了从基于启发式和规则的设计到人工智能增强系统的转变,概述了ML,LLM和整个操作系统堆栈的代理的优势。 我们总结了AI for OS(核心组件和更广泛的生态系统)和OS for AI(短和长上下文推理、分布式训练和边缘推理的组件和架构级支持)的进展。 对于实践,我们整合了评估维度,方法论管道和模式,以平衡实时约束和预测准确性。 我们确定了关键挑战,如复杂性,开销,模型漂移,有限的可解释性以及隐私和安全风险,并建议模块化,AI就绪的内核接口;统一的工具链和基准;混合规则加AI决策与护栏;和可验证的内核内推断。 最后,我们提出了一个三阶段路线图,包括人工智能驱动的人工智能重构和人工智能驱动的操作系统,以连接原型和生产,并实现可扩展的,可靠的人工智能部署。
LLM的广泛采用推动了其部署的指数级增长,对推理集群提出了实质性要求。 这些群集必须处理不同 LLM 下游任务的众多并发查询。 为了处理具有庞大 LLM 参数计数的多任务设置,Low-Rank Adaptation (LoRA) 之类的方法可实现特定任务的微调,同时跨任务共享大部分基本 LLM 模型。 因此,它们允许在内存要求最低的同时处理。 然而,现有的LLM服务系统面临低效率:它们忽略了工作负载异质性,从频繁的适配器加载中强加了高链路带宽,并且在其调度器中受到一线阻塞的影响。 为了应对这些挑战,我们介绍了Chameloon,一种针对许多适配器环境优化的新型LLM服务系统,它依赖于两个核心想法:适配器缓存和适配器感知调度。 首先,Chameloon在GPU内存中缓存流行的适配器,最大限度地减少适配器加载时间。 重要的是,它使用原本闲置的GPU内存,避免了额外的内存成本。 其次,Chameloon使用非抢先多排队调度来有效地考虑工作负载异质性。 通过这种方式,Chameloon同时防止了线头阻塞和饥饿。 我们在最先进的LLM服务平台之上实施Chameloon,并通过真实世界的生产痕迹和开源LLM对其进行评估。 在高负载下,Chameloon将P99和P50 TTFT延迟分别降低了80.7%和48.1%,与最先进的基线相比,吞吐量提高了1.5倍。
用于实时调度的定向循环图(DAG)任务模型在机器人操作系统2(ROS 2)中找到其主要的实际目标。 但是,ROS 2 的发布/订阅 API 使 DAG 优先级约束无法执行:回调可能会发布中执行,多输入回调让开发人员选择主题匹配策略。 因此,保存DAG语义依赖于约定;一旦被违反,模型就会崩溃。 我们提出了 Function-as-Subtask (FasS) API,它表示每个子任务为函数,其参数/返回值是子任务的传入/输出边缘。 通过最小化描述自由度,DAG语义在API而不是程序员学科中得到保证。 我们在基于 Rust 的实验内核上使用 FasS 实现了 DAG 原生调度程序,并评估其语义保真度,我们概述了将 FasS 应用于 Linux Linux sched_ext 的设计指南。
现场编程门阵列(FPGA)因其可配置性、能源效率和加速特定领域工作负载的能力而在云计算中变得至关重要。 随着FPGA的采用,对任务调度和抢占技术的研究已经加强。 然而,该领域缺乏一个标准化的基准框架,无法进行一致和可重复的评价。 许多现有研究提出了创新的调度或抢占机制,但通常依赖于专有或合成基准,限制了可推广性并使比较变得困难。 这种有条不紊的碎片阻碍了多租户FPGA环境中对调度策略和抢占的有效评估。 本文介绍了第一个开源抢占基准套件,用于评估FPGA抢占策略和测试新的调度算法,而无需用户从头开始创建抢占工作负载。 该套件包括27种不同的应用程序,包括密码学,AI / ML,计算密集型工作负载,通信系统和多媒体处理。 每个基准都集成了全面的上下文保存和恢复机制,促进了可重复的研究和一致的比较。 我们的套件不仅简化了测试 FPGA 调度策略,而且还通过在多租户 FPGA 系统中评估调度公平性、资源分配效率和上下文切换性能,最终支持为基于 FPGA 的环境开发更好的操作系统和调度策略,从而有利于操作系统研究。 我们还为添加新基准提供了指导方针,使未来的研究能够扩展和完善FPGA抢占和调度评估。
大型语言模型(LLM)的准确性随着模型尺寸的增加而提高,但模型复杂性的增加也对训练稳定性提出了重大挑战。 定期检查点是故障恢复的关键机制,广泛用于LLM培训。 然而,传统的检查点策略通常会在检查点保存检查点 GPU-CPU 传输过程中暂停或延迟 GPU 计算,从而导致训练中断和训练吞吐量降低。 为了解决这个问题,我们提出了GoCkpt,这是一种将检查点与多个训练步骤相重叠的方法,并恢复CPU上的最终检查点。 我们跨多个步骤传输检查点,每个步骤传输检查点状态的一部分,我们传输用于参数更新的一些梯度数据。 传输完成后,每个部分检查点状态都会更新为 CPU 上的一致版本,从而避免了跨多个步骤转移检查点导致的检查点状态不一致问题。 此外,我们还引入了传输优化策略,以最大限度地提高GPU-CPU带宽利用率和SSD持久吞吐量。 这种双重优化重叠可跨步骤节省,并最大限度地提高 I/O 效率,可显著缩短无效训练时间。 实验结果表明,与行业传统的异步检查点解决方案相比,GoCkpt可以将培训吞吐量提高高达38.4%。 我们还发现,与最先进的检查点传输方法相比,GoCkpt可以将训练中断时间缩短86.7%,从而提高了4.8%的吞吐量。
Partial Cache-Coherence(PCC)模型仅在核心子集内保持硬件缓存一致性,通过Compute Express Link(CXL)等新兴内存互连技术实现大规模内存共享。 然而,PCC放松了全局缓存一致性,损害了现有单机软件的正确性。 本文侧重于在PCC平台上建立一致和高效的索引。 我们提出,为缓存一致性平台设计的现有索引可以在遵循SP准则的PCC平台上保持一致,即我们根据索引的并发控制机制识别同步数据和受保护数据,并相应地同步它们。 然而,使用SP准则进行转换引入了性能开销。 为了减轻开销,我们确定了PCC平台上几个独特的性能瓶颈,并提出了P^3指南(即使用Out-of-Place更新,RePlicated共享变量,SPECative Reading),以提高PCC平台上转换索引的效率。 通过 SP 和 P^3 指南,我们转换和优化了 PCC 平台的两个索引(CLevelHash 和 BwTree)。 评估表明,转换的索引的吞吐量在P^3指南之后提高了16倍,优化的索引比基于消息传递和分类的对应指数高出16×和19×。
代理 LLM 应用程序将 LLM 生成请求与工具调用交错。 这些工具调用通过在LLM请求之间创建暂停来打破工作流程的连续性,为服务系统带来许多挑战,特别是在多转弯场景下。 每次暂停都可能导致KV缓存驱逐和额外的等待时间,然后输入以下LLM请求的连续批次。 由于每次呼叫都会发生这些暂停,因此随着代理程序的转号增长,这个问题变得越来越严重。 以前的工作要么未能包含来自工具调用的信息,驱逐导致重复预填充或加载的KV缓存,要么忽略了多转程序的连续性,在转弯之间创建等待时间,从而增加每次请求的延迟。 我们介绍了Continuum,这是一个服务系统,通过将工具感知KV缓存超时与程序级调度相结合,优化多转代理工作负载的工作完成时间。 通过预测代理工作流程中的工具调用持续时间,Continuum 选择性地将 KV 缓存固定在 GPU 内存中,并根据总转数进行实时值。 当与程序级先到先发服务相结合时,Continuum可防止调度气泡,保持多转连续性,并优化复杂代理工作流程的吞吐量。 通过建模工具调用和代理程序连续性的可变性,Continuum优于最先进的基线。 我们对Llama-3.1 8B/70B模型对实际代理工作负载(SWE-Bench和BFCL)的评估表明,Continuum显着提高了平均作业完成时间,并且在不同的硬件设置和DRAM卸载方案中保持性能。 预览代码可在: https://github.com/Hanchenli/vllm-continuum
本文介绍了针对 Secure ROS 2 (SROS 2) 框架的概念验证供应链攻击,在 Quanser QCar2 自动驾驶汽车平台上演示。 受木马感染的 Debian 软件包修改了核心 ROS 2 安全命令,通过 DNS 将新生成的密钥库凭据在 base64 编码的块中过滤到攻击者控制的名称服务器。 拥有这些凭据使攻击者能够以经过身份验证的参与者的身份重新加入SROS 2网络,并在不触发身份验证失败的情况下发布欺骗控制或感知消息。 我们在使用英特尔 RealSense 相机进行感知的安全 ROS 2 Humble 测试台配置为四站标志导航例程上评估此功能。 实验结果表明,控制主题注射可引起强制制动,持续高速加速和连续转弯环路,而感知-主题欺骗可以诱发幻象停止标志或抑制真实检测。 该攻击推广到使用SROS 2的任何基于数据分发服务(DDS)的机器人系统,突出了供应链完整性控制和运行时语义验证的必要性,以保护自主系统免受内部和冒名顶替的威胁。
组织越来越需要通过在组合数据集上执行计算来协作,同时保持数据相互隐藏。 某些类型的协作,如协作数据分析和人工智能,需要超出当前分布式信任加密技术的性能水平。 这是因为组织在不同的信任域中运行软件,这可能需要它们通过WAN或公共互联网进行通信。 在本文中,我们探讨了如何使用快速数据中心类型的LAN运行此类应用程序。 我们表明,通过仔细重新设计LAN的分布式信任框架,我们可以比使用LAN实现更高的性能。 然后,我们开发分布式但近亲信任(DBPT)的部署模型,允许各方使用LAN,同时保持物理和逻辑上的差异。 这些发展使安全的协作数据分析和人工智能更加实用,并为开发高性能分布式信任的系统和密码理论设定了新的研究方向。
我们描述了一个无服务器计算系统,其中用户,程序和底层平台共享计算的共同表示:确定性过程,在指定数据或其他计算输出的环境中运行。 这种表示外部化了 I/O:网络上的数据移动完全由平台执行。 应用程序可以描述每个阶段所需的精确数据,帮助提供商安排任务和网络传输以减少饥饿。 该设计为外包计算提出了端到端的论点,将服务模式从“付费”转变为“按结果付费”。
现代移动CPU软件对传统的指令缓存替换策略提出了挑战,因为它们复杂的运行时行为导致执行同一指令之间的高重用距离。 移动代码通常遭受CPU前端的大量失速,从而耗尽了其余的CPU资源。 由于电源和区域限制,这些应用程序的复杂性及其代码占用率预计将以比可用的片上内存更快的速度增长,因此传统的以硬件为中心的管理指令缓存的方法不足。 我们提出了一种名为TRRIP(基于温度的重义间隔预测)的新型软件硬件共同设计方法,使编译器能够根据“温度”(热/冷)分析,分类和转换代码,并通过基于使用代码页属性的明确界定的OS接口向硬件提供代码温度信息的摘要。 TRRIP的轻量级硬件扩展使用代码温度属性来优化指令缓存替换策略,从而降低热码的驱逐率。 TRRIP旨在实用且可采用的真实移动系统,这些系统对软件和硬件组件都有严格的功能要求。 TRRIP可以将指令的L2 MPKI降低26.5%,从而降低3.9%的地理均值速度,除了RRIP缓存替换运行已经使用PGO优化的移动代码之外。
在自动驾驶系统(ADS)中,定向循环图(DAG)被广泛用于模拟复杂的数据依赖关系和任务间通信。 然而,现有的DAG调度方法通过假设固定的触发机制来过度简化数据融合任务,未能捕获现实世界ADS软件堆栈中发现的各种融合模式。 在本文中,我们提出了一个系统框架,用于分析ADS中的各种融合模式及其性能影响。 我们的框架模拟了三种不同的融合任务类型:计时器触发、等待和即时融合,它们全面代表了现实世界的融合行为。 我们基于 Integer Linear 编程 (ILP) 的方法能够优化多个实时性能指标,包括反应时间、时间差异、信息年龄和响应时间,同时生成直接适用于真实平台的确定性离线时间表。 使用真实世界的ADS案例研究,Raspberry Pi实现和随机生成的DAG进行评估,表明我们的框架处理超出现有工作范围的各种融合模式,并在可比场景中实现实质性的性能改进。
异构存储器具有单个地址空间,可快速访问某些地址(快速级DRAM),并缓慢访问其他地址(CXL附加内存或NVM的容量层)。 分层内存系统旨在通过快速和容量层之间的页面迁移来最大化对快速层的访问次数。 不幸的是,以前的分层记忆系统可能表现不佳,因为(1)在同一页中分配冷热物体,(2)导致捶打的热度测量突然变化。 本文介绍了Jenga,一个解决这两个问题的分层内存系统。 Jenga 的内存分配器使用基于上下文的新页面分配策略。 Jenga对页面热度的精确测量使其能够及时对内存访问行为变化做出反应,同时避免捶打。 与之前最好的分层内存系统相比,Jenga在10个应用程序中运行内存密集型应用程序的速度提高了28%,当快速分层容量与工作集大小相匹配时,在单个核心的CPU开销<3%和内存开销<0.3%的情况下运行。
基于NVMe-over-Fabrics (NVMe-oF) 的分解式存储已成为现代数据中心的标准解决方案,实现了卓越的性能、资源利用率和能效。同时,机密计算(CC)正在成为事实上的安全范式,为敏感工作负载提供更强的隔离和保护。然而,使用传统CC方法保护最先进的存储系统难以扩展,并且会损害性能或安全性。为了解决这些问题,我们引入了sNVMe-oF,这是一个存储管理系统,它扩展了NVMe-oF协议并遵循CC威胁模型,提供机密性、完整性和新鲜性保证。sNVMe-oF提供了适当的控制路径和新颖概念,如计数器租赁。sNVMe-oF还通过利用NVMe元数据、引入新的分解式Hazel Merkle树(HMT)以及避免冗余的IPSec保护来优化数据路径性能。我们在不修改NVMe-oF协议的情况下实现了这些功能。为了在提供线速的同时防止过度资源使用,sNVMe-oF还利用了支持CC的智能网卡的加速器。我们在NVIDIA BlueField-3上对sNVMe-oF进行了原型实现,并证明它对于合成模式和AI训练仅能实现低至2%的性能下降。
将整个程序作为单个单元或整个程序分析,涉及通过程序的控制流传播大量信息。 对于指针分析尤其如此,除非在分析的精度方面做出重大妥协,否则信息的组合会爆发。 我们在自己的工作中观察到的一个关键问题是,许多重复的数据正在被传播,许多低级数据结构操作被重复了很多次。 我们介绍了我们认为新颖和通用的数据结构LatticeHashForest(LHF),以删除大多数冗余计算和重复数据的方式存储和操作此类信息,这些场景类似于编译器和程序优化中遇到的情景。 LHF不同于这方面的类似工作,如哈希约束,ZDD和BDD,不仅提供了一种在大型聚合结构上有效操作的方法,而且还以可以立即重复的方式修改这些结构的元素。 LHF还提供了一种方法来执行元素的嵌套构造,以便可以在多个级别上重复,从而减少对额外嵌套计算的需求。 我们提供详细的结构描述,以及这个数据结构的抽象模型。 LHF的整个C++实现是作为神器提供的,同时使用示例和基准程序评估LHF。 我们还提供 API 文档和用户手册,供用户制作 LHF 的独立应用程序。 我们在指针分析领域的主要用例显示,内存使用量减少到几乎可以忽略不计的分数,与其他实现相比,输入尺寸的加速超过4倍,接近1000万。
数据中心的内存分层不会充分发挥其潜力,因为热度碎片 - 内存页面中冷热对象的混频。 这种碎片化可以防止基于页面的开垦系统将真正的热页面与包含大多数冷对象的页面区分开来,尽管访问高度倾斜,但从根本上限制了内存效率。 我们引入了地址空间工程:动态重组应用程序虚拟地址空间,以创建任何页面级分层后端可以有效管理的统一热冷区域。 HADES通过编译器运行时系统演示了这种前端/后端方法,该系统根据访问模式跟踪和迁移对象,需要最少的开发人员干预。 十种数据结构的评估实现了高达70%的内存减少,性能开销为3%,这表明地址空间工程使现有的填海系统能够在不性能下降的情况下积极回收内存。
为了促进对消费级分区闪存的软件和硬件设计的理解和高效增强,ConZone被提议作为第一个模拟器,旨在模拟此类系统典型的资源约束和架构特征。 它集成了通常部署在消费级设备中的基本组件,包括逻辑受限到物理映射缓存、受限写入缓冲区和混合闪存媒体管理。 但是,由于缺乏现场更新功能,ConZone无法与文件系统一起安装,这是F2FS的元数据区域所要求的。 为了提高模拟器的可用性,ConZone+扩展了ConZone,支持块接口。 我们还提供了一个脚本来帮助部署,并在原始版本上引入了几个增强功能。 用户可以探索消费级分区闪存的内部架构,并使用ConZone+将其优化与系统软件集成。 我们通过比较消费级分区闪存存储的硬件架构代表并将其与最先进的产品进行比较来验证ConZone+的准确性。 此外,我们使用ConZone+进行几个案例研究,以调查分区存储的设计,并探索当前文件系统的不足之处。
函数即服务(FaaS)范式被设想为下一代云计算系统,通过从云资源管理中抽象出来,减轻了云原生应用程序开发人员的负担。 但是,它不涉及应用程序数据方面。 因此,开发人员必须干预并承担管理应用程序数据的负担,通常是通过单独的云存储服务。 为了进一步简化云原生应用程序开发,在这项工作中,我们提出了一种新的范式,称为对象即服务(OaaS),将应用程序数据和函数封装到云对象抽象中。 OaaS减轻了开发人员的资源和数据管理负担,同时提供了内置的优化功能。 受OOP的启发,OaaS将访问修改器和继承纳入无服务器范式,即:(a)阻止开发人员通过意外访问底层数据来损害系统;(b)在云原生应用程序开发中实现软件重用。 此外,OaaS原生支持数据流语义。 它使开发人员能够定义功能工作流程,同时透明地处理数据导航、同步和并行问题。 为了建立OaaS范式,我们开发了一个名为Oparaca的平台,该平台为结构化和非结构化数据提供状态抽象,并提供一致性和容错保证。 我们在实际应用环境中根据最先进的平台对 Oparaca 进行了评估,这些平台涉及强加的开销、可扩展性和易用性。 结果表明,OaaS提供的对象抽象可以简化灵活和可扩展的云原生应用程序开发,在底层无服务器系统上具有微不足道的开销。
继续滚动加载更多