当前位置: 首页 > news >正文

Alluxio 联手 Solidigm 推出针对 AI 工作负载的高级缓存解决方案

作者:Wayne Gao, Yi Wang, Jie Chen, Sarika Mehta

Alluxio 作为全球领先的 AI 缓存解决方案供应商, 提供针对 GPU 驱动 AI 负载的高速缓存。其可扩展架构支持数万个节点,能显著降低存储带宽的消耗。Alluxio 在解决 AI 存储挑战方面的前沿技术在很大程度上推动了大语言模型( LLM )在全球范围内的成功。

“Solidigm 和 Alluxio 联合推出了高效的分布式 AI 缓存方案。通过将 Solidigm 的 D5-P5336 用作读缓存,D7-PS1010 用于 checkpoint 写入,并搭配 Alluxio 的低操作开销解决方案,我们帮助客户实现了大规模 AI 场景下成本和性能的最佳平衡。优化后的方案充分利用了Solidigm D7-PS1010 Gen5 TLC SSD 的写入带宽和 D5-P5336 Gen4 QLC SSD 的读取带宽,同时将 TLC 和 QLC SSD 的写放大系数保持在 1.02。我们希望与 Alluxio 一道持续为客户提供高效、低成本的AI 解决方案。” - Greg Matson,Solidigm 战略规划与营销高级副总裁。

Alluxio DORA 缓存架构的核心优势

在这里插入图片描述

DORA(Decentralized Object Repository Architecture 的缩写 )是 Alluxio 的新一代架构。

作为分布式缓存存储系统,DORA 具有低延迟、高吞吐量和节省成本的特点,同时旨在为 AI 工作负载提供高性能的数据访问层。

DORA 利用去中心化存储和元数据管理来提供更高的性能和可用性,以及可插拔的数据安全和治理,从而提高大规模数据访问的可扩展性和管理效率。

DORA 的架构目标:

  • 可扩展性:可扩展性是 DORA 的首要目标,旨在支持数百亿个文件,从而满足数据密集型应用(如 AI训练)的需求。
  • 高可用性:DORA的架构设计考虑了高可用性,具有99.99%的正常运行时间,并可以防止在 master 出现单点故障。
  • 性能:性能是 DORA的核心目标,它优先考虑模型训练、模型服务的速度,以及用于 AI 工作负载的GPU 利用率。

DORA 架构包含四个重要组件:服务注册( service registry )、调度器( scheduler )、客户端( client )和 worker。这些组件共同管理服务发现、分布式负载调度和数据存储等任务,同时维持整个系统的最佳性能。

NVMe 存储相关技术亮点

1. 页数据存储能够利用 SSD 的最大性能,并保持最佳的写放大系数(WAF)和耐用性

DORA 使用经严格测试的页存储模块进行缓存存储,从而可以更精细地缓存大文件上的小至中等规模的读取请求。这种可靠的页存储技术已在 Meta、Uber 和 TikTok 等应用中得到验证。DORA 的细粒度缓存使得读放大情况降低到原先的1/150,并使得文件随机读性能提高了 15 倍。

页数据存储通过日志文件系统,将数据分成两级目录,包含固定大小的大文件块。所有写操作都附加到这些文件块中,而当其中的对象文件被标记为删除时,只有在不需要这些文件时才会删除。这种设计确保了即使在使用 PCIe 5.0 TLC SSD 时也能实现最佳性能, 同时也保持 SSD 的写放大系数(WAF)为 1,从而最大限度提高 SSD 的耐用性。

例如, 当使用 QLC SSD 进行 Alluxio 读缓存时,存储引擎会充分利用 QLC 的耐用性,不会导致任何内部写放大或垃圾回收写放大,从而确保 QLC NVMe SSD 的高效运行。
在这里插入图片描述

2. 去中心化的元数据存储

DORA 将元数据传递给每个 worker,确保元数据始终可访问且可用。为了优化元数据访问,DORA 对元数据条目使用两级缓存系统。第一级缓存是内存缓存,它将元数据条目存储在内存中。此缓存具有可配置的最大容量和有效时间 ( TTL ) 设置,可设置过期时限。第二级缓存是持久化缓存,通过RocksDB 将元数据条目存储在磁盘上。持久化缓存具有无限容量,具体取决于可用磁盘空间,并且还使用基于 TTL 的缓存驱逐策略,防止主动同步或主动失效。存储的元数据类似页存储,也是基于完整的 UFS 路径的哈希值来确定分发到哪个 Dora Worker。

内存和持久化缓存的组合有助于确保元数据能够随时可用且可访问,同时还可以高效利用系统资源。元数据的去中心化避免了在元数据主要由 master 节点来管理的架构中可能出现的瓶颈。由于每个 DORA worker 节点可存储多达 3000 万至 5000 万个文件, 整个系统便可以支持拥有数百亿文件的大规模数据密集型应用。

经 Solidigm 验证, 内存元数据设计与 RocksDB 的组合提供了最佳的元数据存储解决方案。该设计充分利用了 PCIe 4.0 QLC SSD ( 读取 7GB/s,写入 3GB/s )和 PCIe 5.0 TLC SSD( 读写均为 14.5GB/s )的读写性能。此外,RocksDB 通过跳表( skiplist-based ) 写缓存将许多小的写入合并为较大的2MB 顺序写,这种方式极其高效,有助于将 SSD 写放大系数(WAF)最小化,进一步提升 SSD 的耐用性。

性能测试::Alluxio 搭配 Solidigm™ 的 D7-PS1010 和 D5-P5336

测试配置

在这里插入图片描述
在最近一项实验中( Solidigm D7-PS1010 和 D5-P5336 SSD,搭配 Intel Gen5 BNC 存储服务器 ),Alluxio 展现其在数据快速摄取以及读性能方面的优势,特别是在 GPU 扩容的情况下。部署 Alluxio 后取得的显著成效:

  • 缓存加载效率: Alluxio 缓存引擎在写入 PCIe 5.0 TLC SSD 时,能够有效跑满 UFS QLC 存储的最大读取带宽。
  • Fuse 读取测试: Alluxio 的 FUSE 框架几乎跑满单个 PCIe 5.0 SSD 的读取带宽,显示处理 NVMe SSD缓存命中时的开销极低。

为了能够快速部署,我们设置了一个单节点测试来展示 Alluxio 存储引擎的强大性能。Alluxio 的最大优势在于能够利用主机侧的分布式复制缓存,可随着 GPU 扩展并显著降低南北向存储带宽开销。即使在单节点配置下,Alluxio 也表现出超高的效率,尤其是在搭配高性能 NVMe SSD 时。在此次测试中,我们将缓存配置为使用 PCIe 5.0 TLC 或 PCIe 4.0 QLC,而底层文件存储( UFS )使用了 PCIe 4.0 QLC。
在这里插入图片描述

重要结论

  1. Alluxio 的缓存加载引擎十分高效,能够跑满 UFS QLC 的最大读取带宽,并将数据摄入到 PCIe 5.0 TLC 缓存 SSD中。即使 UFS 支持 10GB/s 的读取带宽,Alluxio 也能轻松地跑满 Solidigm D7-PS1010 9.3GB/s的写入带宽。
  2. Alluxio 的页缓存存储引擎基于 XFS 日志文件系统,并使用 Solidigm Alluxio FIO仿真器进行了严格的使用寿命测试。测试结果表明,无论使用 TLC 还是 QLC SSD,Alluxio 都能实现 1.02 的写放大(WAF )。这种接近理想的 WAF=1的效果能让 SSD 的性能和耐用性最大化,为终端用户提供最佳性能。
    在这里插入图片描述

重要结论

FUSE 的读开销极小。当执行 FUSE 读取,在 SSD 缓存上 100%缓存命中并且绕过 DRAM 页缓存时,FUSE 框架几乎可以跑满单个 PCIe 5.0 SSD 的读带宽,速度达到 14.8 GB/s。
在这里插入图片描述
对于寻求高效缓存方案的客户来说,Solidigm 的 61.44TB QLC 是理想选择。Alluxio 的存储引擎对于写放大十分友好,作为以读取为主的缓存,其写入量极少,使得 QLC 完美适配其读缓存路径。鉴于 Alluxio 的高效设计,我们可以根据 213 PB 的顺序写总量 (PBW)来估算 QLC 缓存设备的耐用性,这也意味着 Solidigm 支持写入高达 213PB 的数据。即使在 5 年周期内以 50% 的使用率(已是较高的阈值)计算,QLC 仍能支持 2900 MB/s 的写带宽,几乎达到其最大值。此外,QLC 每块 SSD 可提供高达 6GB/s 的随机读带宽,实现高性价比的 Alluxio AI 缓存系统。

Solidigm SSD 如何为 Alluxio 提供合适的存储

就读缓存而言,Solidigm D5-P5336 61.44TB QLC 提供了卓越的性能和可扩展性。对于 checkpoint 写入而言,PCIe 5.0 D7-PS1010 提供了一流的写性能。

“我们与 Solidigm 团队紧密合作,验证了将 Alluxio 分布式缓存技术与 Solidigm SSD 和 NVMe 驱动联合用于 AI 模型训练工作负载的性能优势。通过这次合作,我们进一步优化了 Alluxio,通过充分发挥 Solidigm 驱动的优势,将大规模 AI 工作负载的 I/O 吞吐量最大化。” Alluxio 工程副总裁杜璿表示,“我们期待与 Solidigm 继续开展这项重要合作,共同为我们的客户提供高性能、高成本效益的解决方案,帮助客户构建、训练和部署大规模 AI 模型。”

Alluxio 和 Solidigm 的合作成果表明,Solidigm TLC 和 QLC SSD 都能显著提升 Alluxio 的服务,同时降低运营成本。此外,Solidigm 还提高了质量和可靠性标准,并由专门的客户服务团队为 Alluxio 提供出色的支持。

相关文章:

Alluxio 联手 Solidigm 推出针对 AI 工作负载的高级缓存解决方案

作者:Wayne Gao, Yi Wang, Jie Chen, Sarika Mehta Alluxio 作为全球领先的 AI 缓存解决方案供应商, 提供针对 GPU 驱动 AI 负载的高速缓存。其可扩展架构支持数万个节点,能显著降低存储带宽的消耗。Alluxio 在解决 AI 存储挑战方面的前沿技…...

【ComfyUI专栏】ComfyUI 部署Kolors

什么是Kolors?我相信一定会有朋友可能第一次听说这个生图的模型,开始我也很难想象,这竟然是快手推出的可灵AI的项目,我们可以直接利用模型来生成图片和视频。 大家可以通过直接访问可灵AI的网址获取到可灵的项目,但是对于我们来说我们需要基于ComfyUI来生成必要的图片和视…...

HBase的原理

一、什么是HBase HBase是一个分布式,版本化,面向列的数据库,依赖Hadoop和Zookeeper (1)HBase的优点 提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统 (2) HBase 表的特性 Region包含多行 列族包含多…...

Spring Boot中如何实现异步处理

在 Spring Boot 中实现异步处理可以通过使用 Async 注解和 EnableAsync 注解来实现。以下是如何配置和使用异步处理的步骤和示例代码。 步骤: 启用异步支持: 在 Spring Boot 配置类上使用 EnableAsync 注解启用异步处理。使用 Async 注解异步方法&…...

SSM电子商城系统

🍅点赞收藏关注 → 添加文档最下方联系方式咨询本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅 项目视频 电…...

新版IDEA创建数据库表

这是老版本的IDEA创建数据库表,下面可以自己勾选Not null(非空),Auto inc(自增长),Unique(唯一标识)和Primary key(主键) 这是新版的IDEA创建数据库表,Not null和Auto inc可以看得到,但Unique和Primary key…...

二叉树的存储(下)c++

链式存储 我们可以创建两个数组L[N]、r[N]&#xff0c;分别存储i 号结点的左右孩子的编号&#xff0c;这样就可以通过数组下标实现链式访问。 本质上还是孩子表示法&#xff0c;存储的是左右孩子的信息 #include <iostream>using namespace std;const int N 1e6 10; …...

Flutter中PlatformView在鸿蒙中的使用

Flutter中PlatformView在鸿蒙中的使用 概述在Flutter中的处理鸿蒙端创建内嵌的鸿蒙视图创建PlatformView创建PlatformViewFactory创建plugin&#xff0c;注册platformview注册插件 概述 集成平台视图&#xff08;后称为平台视图&#xff09;允许将原生视图嵌入到 Flutter 应用…...

Docker—搭建Harbor和阿里云私有仓库

Harbor概述 Harbor是一个开源的企业级Docker Registry管理项目&#xff0c;由VMware公司开发。‌它的主要用途是帮助用户迅速搭建一个企业级的Docker Registry服务&#xff0c;提供比Docker官方公共镜像仓库更为丰富和安全的功能&#xff0c;特别适合企业环境使用。‌12 Harb…...

一篇博文了解JVM的各个内存区域

​ JVM的内存区域可以细分为程序计数器、虚拟机栈、本地方法栈、堆和方法区 其中&#xff0c;方法区和堆是线程共享的&#xff0c;虚拟机栈、本地方法栈和程序计数器是私有的&#xff1b; 先来说说程序计数器&#xff0c;它也被称为PC寄存器&#xff0c;占据着很小的内存空间…...

无监督学习:聚类、异常检测

聚类 工作原因我对聚类特别熟悉&#xff0c;因此视频课程基本快进看完&#xff0c;不做记录 异常检测 高斯(正态)分布 多特征异常检测 将每个特征作为独立特征&#xff08;实践证明即使不完全独立也影响不大&#xff09;计算高斯分布的参数&#xff0c;然后将待预估样本代入…...

pdf与ofd的区别详细对比

PDF&#xff08;Portable Document Format&#xff09;和OFD&#xff08;Open Fixed-layout Document&#xff09;是两种常见的电子文档格式&#xff0c;它们在设计理念、技术实现、应用场景等方面存在显著差异。以下是对这两种格式的详细对比分析&#xff0c;涵盖其历史背景、…...

DDD架构实战第六讲总结:领域驱动设计中的聚合

云架构师系列课程之DDD架构实战第六讲总结:领域驱动设计中的聚合 聚合提升了对象系统的粒度,保证了业务逻辑的完整性,减少了错误产生的概率 一、引言 本讲将探讨领域驱动设计(DDD)中的重要概念——聚合。聚合是业务完整性的单元,是一个更大力度的封装。在领域驱动设计中…...

CentOS7使用源码安装PHP8教程整理

CentOS7使用源码安装PHP8教程整理 下载安装包解压下载的php tar源码包安装所需的一些依赖扩展库安装前的配置修改配置文件1、进入php8的安装包 配置环境变量开机自启启动服务创建软连接常见问题1、checking for icu-uc > 50.1 icu-io icu-i18n... no2、configure: error: Pa…...

vue3中自定一个组件并且能够用v-model对自定义组件进行数据的双向绑定

1. 基础用法 在 Vue3 中&#xff0c;v-model 在组件上的使用有了更灵活的方式。默认情况下&#xff0c;v-model 使用 modelValue 作为 prop&#xff0c;update:modelValue 作为事件。 1.1 基本示例 <!-- CustomInput.vue --> <template><input:value"mo…...

【win11】解决msrdc.exe窗口启动导致周期性失去焦点

msrdc.exe randomly stealing focus 最近写代码时&#xff0c;经常出现周期性失去焦点的情况非常恼人,不确定是否是Q4的微软更新引起&#xff1f;换了输入法也不行&#xff0c;只能借助工具来查看&#xff1a;大神的工具非常好&#xff1a; 可以发现是remote app 启动了一个UI…...

【2024年终总结】深圳工作生活评测

距离上次写年终总结已经过了一年半了&#xff0c;这一年半中哪怕经历了很多的事情&#xff0c;但是感觉又没发生什么。想写一些骚话&#xff0c;却总觉得自己无法完全表达&#xff0c;便也就这样&#xff0c;静静地记录下这一段时光。 现在是2025年&#xff0c;春节前的时光&am…...

【29】Word:李楠-学术期刊❗

目录 题目​ NO1.2.3.4.5 NO6.7.8 NO9.10.11 NO12.13.14.15 NO16 题目 NO1.2.3.4.5 另存为手动/F12Fn光标来到开头位置处→插入→封面→选择花丝→根据样例图片&#xff0c;对应位置填入对应文字 (手动调整即可&#xff09;复制样式&#xff1a;开始→样式对话框→管理…...

npm常用命令

以往nodejs版本 Node.js — Node.js 版本 CNPM Binaries Mirror 查看当前版本 npm -v 查看node安装在哪里 where node 清除缓存 npm cache clean --force 淘宝镜像&#xff08;只支持下载&#xff0c;不支持上传发布&#xff09; npm config set registry https://reg…...

安装最小化的CentOS7后,执行yum命令报错Could not resolve host mirrorlist.centos.org; 未知的错误

文章目录 安装最小化的CentOS7后&#xff0c;执行yum命令报错"Could not resolve host: mirrorlist.centos.org; 未知的错误"错误解决方案&#xff1a; 安装最小化的CentOS7后&#xff0c;执行yum命令报错"Could not resolve host: mirrorlist.centos.org; 未知…...

现代 JavaScript 的入门教程

现代 JavaScript 的定义 现代 JavaScript 通常指的是自 ECMAScript 2015&#xff08;也称为 ES6&#xff09;以来的一系列语言更新和改进&#xff0c;以及随之而来的开发工具、库和框架的生态系统。这些变化不仅增强了 JavaScript 的功能性和表达能力&#xff0c;还推动了更高…...

linux naive代理设置

naive linux客户端 Release v132.0.6834.79-2 klzgrad/naiveproxy GitHub Client setup Run ./naive with the following config.json to get a SOCKS5 proxy at local port 1080. {"listen": "socks://127.0.0.1:1080","proxy": "htt…...

Java数据结构 (链表反转(LinkedList----Leetcode206))

1. 链表的当前结构 每个方框代表一个节点&#xff0c;每个节点包含两个部分&#xff1a; 左侧的数字&#xff1a;节点存储的值&#xff0c;例如 45、34 等。右侧的地址&#xff08;如 0x90&#xff09;&#xff1a;表示该节点 next 指针指向的下一个节点的内存地址。 例子中&a…...

游戏与硬件深度协同,打造更精细的体验优化

高画质的游戏往往带来手机的发热和卡顿从而影响游戏体验。开发者希望能够获取到手机运行的实时状态&#xff0c;从而能够进行主动的负载调节&#xff0c;将手机发热时游戏体验影响降到最低&#xff1b;同时手机也可以通过游戏传入的关键场景如"正在下载资源"“团战中…...

C++实现设计模式---命令模式 (Command)

命令模式 (Command) 命令模式 是一种行为型设计模式&#xff0c;它将请求封装为一个对象&#xff0c;从而使得可以用不同的请求对客户端进行参数化、对请求排队或记录日志&#xff0c;以及支持可撤销的操作。 意图 将操作的调用者与接收者分离&#xff0c;通过将请求封装为独…...

office 2019 关闭word窗口后卡死未响应

最近关闭word文件总是出现卡死未响应的状态&#xff0c;必须从任务管理器才能杀掉word 进程&#xff0c;然后重新打开word再保存&#xff0c;很是麻烦。&#xff08;#其他特征&#xff0c;在word中打字会特别变慢&#xff0c;敲击键盘半秒才出现字符。&#xff09; office官网…...

flutter入门系列教程<三>:tabbar的高度自适用,支持无限滚动

背景 在之前的文章中&#xff0c;简介了tabbar组件的使用&#xff0c;它通常用于顶部放置tabbar标签页头&#xff0c;内容全部都是TabbarView的全部内容&#xff0c;且内容通常是占满屏幕的&#xff08;尽可能大&#xff09;&#xff0c;如下&#xff1a; 但是有时候我们需要…...

前端三件套详解之 HTML

HTML&#xff1a; 师承b站pink老师【黑马程序员pink老师前端入门教程&#xff0c;零基础必看的h5(html5)css3移动端前端视频教程】 HTML概述 超文本标记语言&#xff08;英语&#xff1a;HyperText Markup Language&#xff0c;简称&#xff1a;HTML&#xff09;是一种用于创…...

【pytorch 】miniconda python3.11 环境安装pytorch

ubuntu24.04 miniconda python3.11 环境安装pytorch 组件:langgraph本身不需要有一些模型是需要的:python3.11环境:报错ModuleNotFoundError: No module named ‘torchaudio’ ModuleNotFoundError: No module named ‘torchaudio’File "/root/miniconda3/envs/05_ep_…...

支持大功率输出高速频闪的图像处理用光源控制器

机器视觉系统中的光源控制器在确保图像质量、提高系统稳定性、降低能耗以及方便系统扩展和升级等方面发挥着重要作用。它可提供稳定光源&#xff0c;调节参数&#xff0c;另外具有操作便捷性。 下面我们来看Gardasoft的光源控制器&#xff0c;Gardasoft拥有作为图像处理用LED光…...

使用 Python 和 Tesseract 实现验证码识别

验证码识别是一个常见且实用的技术需求&#xff0c;尤其是在自动化测试和数据采集场景中。通过开源 OCR&#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;工具 Tesseract&#xff0c;结合 Python 的强大生态&#xff0c;我们可以高效实现验证码识…...

Opencv学习

Long time no see!哈哈&#xff0c;假期终于有时间做一点自己喜欢的东西了 还是想说&#xff0c;每天花一点时间投在自己喜欢的事情上&#xff0c;或者专攻一些平时不学的方向&#xff0c;真的很酷&#xff01; 图片绘制 对于图像绘制&#xff0c;可以分为&#xff1a;图像创…...

数学大模型MAmmoTH:通过混合说明调整建立数学通才模型

向悦和陈文虎是该项目的主要作者。他们这个项目推出 MAmmoTH&#xff0c;这是一系列专为解决一般数学问题而定制的开源大型语言模型 (LLM)。 MAmmoTH 模型在 MathInstruct 上进行训练&#xff0c;MathInstruct 是我们精心策划的指令调整数据集。 MathInstruct 已编译 来自 13 个…...

springboot 配置多数据源以及动态切换数据源

场景 我们springboot项目&#xff0c;通常会有多个数据库&#xff0c;例如mysql,vertica,postgresql等等数据库&#xff0c;通常我们需要动态切换使用我们想要的数据库&#xff0c;这时候就需要配置多数据源了 多数据源特性 支持多数据库类型&#xff1a;例如&#xff0c;同…...

计算机图形学:实验三 光照与阴影

一、程序功能设计 设置了一个3D渲染场景&#xff0c;支持通过键盘和鼠标控制交互&#xff0c;能够动态调整光源位置、物体材质参数等&#xff0c;具有光照、阴影和材质效果的场景渲染。 OpenGL物体渲染和设置 创建3D物体&#xff1a;代码中通过 openGLObject 结构体表示一个…...

idea修改模块名导致程序编译出错

本文简单描述分别用Idea菜单、pom.xml文件管理项目模块module 踩过的坑&#xff1a; 通过idea菜单创建模块&#xff0c;并用idea菜单修改模块名&#xff0c;结构程序编译报错&#xff0c;出错的代码莫名奇妙。双击maven弹窗clean时&#xff0c;还是报错。因为模块是新建的&am…...

Arcgis国产化替代:Bigemap Pro正式发布

在数字化时代&#xff0c;数据如同新时代的石油&#xff0c;蕴含着巨大的价值。从商业决策到科研探索&#xff0c;从城市规划到环境监测&#xff0c;海量数据的高效处理、精准分析与直观可视化&#xff0c;已成为各行业突破发展瓶颈、实现转型升级的关键所在。历经十年精心打磨…...

RNN实现阿尔茨海默症的诊断识别

本文为为&#x1f517;365天深度学习训练营内部文章 原作者&#xff1a;K同学啊 一 导入数据 import torch.nn as nn import torch.nn.functional as F import torchvision,torch from sklearn.preprocessing import StandardScaler from torch.utils.data import TensorDatase…...

大数据学习(36)- Hive和YARN

&&大数据学习&& &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 承认自己的无知&#xff0c;乃是开启智慧的大门 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一下博主哦&#x1f91…...

【以音频软件FFmpeg为例】通过Python脚本将软件路径添加到Windows系统环境变量中的实现与原理分析

在Windows系统中&#xff0c;你可以通过修改环境变量 PATH 来使得 ffmpeg.exe 可在任意路径下直接使用。要通过Python修改环境变量并立即生效&#xff0c;如图&#xff1a; 你可以使用以下代码&#xff1a; import os import winreg as reg# ffmpeg.exe的路径 ffmpeg_path …...

计算机的错误计算(二百二十一)

摘要 利用一个数学解题器化简计算 实验表明&#xff0c;即使是数学解题器&#xff0c;也是一派胡言。 有一读者来信&#xff0c;询问数学大模型的推理事宜。现就前面的案例继续做一讨论。 例1. 化简计算摘要中算式。 下面是与一个数学解题器的对话。 点评&#xff1a; &am…...

小利特惠源码/生活缴费/电话费/油卡燃气/等充值业务类源码附带承兑系统

全新首发小利特惠/生活缴费/电话费/油卡燃气/等充值业务类源码附带U商承兑系统 安装教程如下 图片:...

外部flash烧写算法学习笔记(一)

一&#xff0c;STM32CubeProgrammer STM32下载编程工具 | STM32CubeProg介绍、下载、安装和使用教程 - 知乎 1.使用速览 2.外部烧写 二&#xff0c;QSPI外部烧写算法制作 STM32H7的花式玩转SPI Flash章节也更新了&#xff0c;含MDK下载算法制作和STM32CubeProg下载算法制作 …...

嵌入式MCU面试笔记2

目录 串口通信 概论 原理 配置 HAL库代码 1. 初始化函数 2. 数据发送和接收函数 3. 中断和DMA函数 4. 中断服务函数 串口通信 概论 我们知道&#xff0c;通信桥接了两个设备之间的交流。一个经典的例子就是使用串口通信交换上位机和单片机之间的数据。 比较常见的串…...

差分轮算法-两个轮子计算速度的方法-阿克曼四轮小车计算方法

四轮驱小车的话&#xff1a; 转向角度计算方法&#xff1a;float turning_angle z_angular / x_linear; // 转向角度&#xff0c;单位为弧度 速度的话直接用线速度 两轮驱动小车&#xff1a; 计算公式&#xff1a; leftSpeed x_linear - z_angular * ORIGINBOT_WHEEL_TRACK /…...

解释器模式

在软件开发的诸多场景中&#xff0c;我们有时需要处理特定领域的语言或表达式。例如&#xff0c;在数据库查询中&#xff0c;我们使用 SQL 语句来查询数据&#xff1b;在数学计算软件里&#xff0c;需要解析和计算各种数学表达式。解释器模式&#xff08;Interpreter Pattern&a…...

代码随想录刷题day14(2)|(链表篇)02.07. 链表相交(疑点)

目录 一、链表理论基础 二、链表相交求解思路 三、相关算法题目 四、疑点 一、链表理论基础 代码随想录 二、链表相交求解思路 链表相交时&#xff0c;是结点的位置&#xff0c;也就是指针相同&#xff0c;不是结点的数值相同&#xff1b; 思路&#xff1a;定义两个指针…...

戴尔电脑用u盘重装系统_戴尔电脑用u盘重装win10系统教程

戴尔电脑用u盘重装系统&#xff1f;戴尔电脑这几年默认预装win10家庭版和win11家庭版。有的用户用上了预装win11家庭版的戴尔电脑&#xff0c;使用一段时间依然不习惯&#xff0c;于是想退回win10。但不知道怎么重装win10&#xff0c;这几年的戴尔电脑建议采用U盘方式安装系统比…...

http的请求体各项解析

一、前言 做Java开发的人员都知道&#xff0c;其实我们很多时候不单单在写Java程序。做的各种各样的系统&#xff0c;不管是PC的 还是移动端的&#xff0c;还是为别的系统提供接口。其实都离不开http协议或者https 这些东西。Java作为编程语言&#xff0c;再做业务开发时&#…...

【MARK】Cline配合FreeAPI,再薅亿点点token

说明 自从用了cline&#xff0c;token消耗的速度就开始起飞。各家免费的几百万Token&#xff0c;看起来挺多&#xff0c;实际用起来还是顶不住几天~ FreeAPI是个简单的替代&#xff0c;上下文长度还是不如官方API&#xff0c;所以还是推荐使用官方&#xff0c;这个只是玩具&a…...