英伟达 H100 vs. 苹果M2,大模型训练,哪款性价比更高?

news2024/11/17 6:19:57

DM_20230706101126_001.PNG

M1芯片 | Uitra | AMD | A100

M2芯片 | ARM | A800 | H100

关键词:M2芯片;Ultra;M1芯片;UltraFusion;ULTRAMAN;RTX4090、A800;A100;H100;LLAMA、LM、AIGC、CHATGLM、LLVM、LLM、LLMs、GLM、NLP、ChatGPT、AGI、HPC、GPU、CPU、CPU+GPU、英伟达、Nvidia、英特尔、AMD、高性能计算、高性能服务器、蓝海大脑、多元异构算力、高性能计算、大模型训练、大型语言模型、通用人工智能、GPU服务器、GPU集群、大模型训练GPU集群、大语言模型

摘要:训练和微调大型语言模型对于硬件资源的要求非常高。目前,主流的大模型训练硬件通常采用英特尔的CPU和英伟达的GPU。然而,最近苹果的M2 Ultra芯片和AMD的显卡进展给我们带来了一些新的希望。

苹果的M2 Ultra芯片是一项重要的技术创新,它为苹果设备提供了卓越的性能和能效。与此同时,基于AMD软硬件系统的大模型训练体系也在不断发展,为用户提供了更多选择。尽管英伟达没有推出与苹果相媲美的200G显卡,但他们在显卡领域的竞争仍然激烈。对比苹果芯片与英伟达、英特尔、AMD的最新硬件和生态建设,我们可以看到不同厂商在性价比方面带来了全新的选择。

蓝海大脑为生成式AI应用提供了极具吸引力的算力平台,与英特尔紧密协作,为客户提供强大的大模型训练和推理能力,加速AIGC创新步伐、赋力生成式AI产业创新。

image.png

 

基于英特尔CPU+英伟达GPU大模型训练基础架构

一、深度学习架构大模型的主要优势

当前主流大模型架构都是基于深度学习transformer的架构模型,使用GPU训练深度学习架构的大模型主要有以下优势:

1、高性能计算

深度学习中的大部分计算都是浮点计算,包括矩阵乘法和激活函数的计算。GPU在浮点计算方面表现出色,具有高性能计算能力。

2、并行计算能力

GPU具有高度并行的计算架构,能够同时执行多个计算任务。深度学习模型通常需要执行大量的矩阵乘法和向量运算,这些操作可以高度并行的方式进行,从而提高深度学习模型训练效率。

3、高内存带宽

GPU提供高达几百GB/s的内存带宽,满足深度学习模型对数据大容量访问需求。这种高内存带宽能够加快数据传输速度,提高模型训练的效率。

 

 image.png

二、当前大多数大模型采用英特尔的CPU加英伟达的GPU作为计算基础设施的原因

尽管GPU在训练大模型时发挥着重要作用,但单靠GPU远远不够。除GPU负责并行计算和深度学习模型训练外,CPU在训练过程中也扮演着重要角色,其主要负责数据的预处理、后处理以及管理整个训练过程的任务。通过GPU和CPU之间的协同工作,可以实现高效的大规模模型训练。

1、强大的性能

英特尔最新CPU采用Alder Lake架构,具备出色的通用计算能力。而英伟达最新GPU H100拥有3.35TB/s的显存带宽、80GB的显存大小和900GB/s的显卡间通信速度,对大数据吞吐和并行计算提供友好的支持。

2、广泛的支持和生态系统

基于英特尔CPU提供的AVX2指令集和基于英伟达GPU提供的CUDA并行计算平台和编程模型,构建优秀的底层加速库如PyTorch等上层应用。

    

3、良好的兼容性和互操作性

在硬件和软件设计上考虑彼此配合使用的需求,能够有效地协同工作。这种兼容性和互操作性使得英特尔的CPU和英伟达的GPU成为流行的组合选择,在大规模模型训练中得到广泛应用。

苹果的M2 Ultra统一内存架构

在WWDC2023开发者大会上苹果推出M2 Ultra芯片,以及搭载该芯片的新款Mac Studio和Mac Pro。这款芯片采用了第二代5nm制程工艺技术,是苹果迄今为止最大且最强大的芯片。

去年3月,苹果展示了一种将两块M1芯片“粘”在一起的设计,发布集成1140亿颗晶体管、20核CPU、最高64核GPU、32核神经网络引擎、2.5TB/s数据传输速率、800GB/s内存带宽、128GB统一内存的“至尊版”芯片M1 Ultra。延续M1 Ultra的设计思路,M2 Ultra芯片通过采用突破性的UltraFusion架构,将两块M2 Max芯片拼接到一起,拥有1340亿个晶体管,比上一代M1 Ultra多出200亿个。

image.png

 

UltraFusion是苹果在定制封装技术方面的领先技术,其使用硅中介层(interposer)将芯片与超过10000个信号连接起来,从而提供超过2.5TB/s的低延迟处理器间带宽。基于这一技术,M2 Ultra芯片在内存方面比M1 Ultra高出了50%,达到192GB的统一内存,并且拥有比M2 Max芯片高两倍的800GB/s内存带宽。以往由于内存不足,即使是最强大的独立GPU也无法处理大型模型。然而,苹果通过将超大内存带宽集成到单个SoC中,实现单台设备可以运行庞大的机器学习工作负载,如大型Transformer模型等。

 

AMD的大模型训练生态

除苹果的M2 Ultra在大模型训练方面取得了显著进展之外,AMD的生态系统也在加速追赶。

据7月3日消息,NVIDIA以其显著的优势在显卡领域获得了公认的地位,无论是在游戏还是计算方面都有着显著的优势,而在AI领域更是几乎垄断。然而,有好消息传来,AMD已经开始发力,其MI250显卡性能已经达到了NVIDIA A100显卡的80%。 AMD在AI领域的落后主要是因为其软件生态无法跟上硬件发展的步伐。尽管AMD的显卡硬件规格很高,但其运算环境与NVIDIA的CUDA相比仍然存在巨大的差距。最近,AMD升级了MI250显卡,使其更好地支持PyTorch框架。

MosaicML的研究结果显示,MI250显卡在优化后的性能提升显著,大语言模型训练速度已达到A100显卡的80%。AMD指出,他们并未为MosaicML进行这项研究提供资助,但表示将继续与初创公司合作,以优化软件支持。 但需要注意的是,NVIDIA A100显卡是在2020年3月发布的,已经是上一代产品,而NVIDIA目前最新的AI加速卡是H100,其AI性能有数倍至数十倍的提升。AMD的MI250显卡也不是最新产品,其在2021年底发布,采用CDNA2架构,6nm工艺,拥有208个计算单元和13312个流处理器核心,各项性能指标比MI250X下降约5.5%,其他规格均未变动。

image.png

AMD体系的特点如下:

一、LLM训练非常稳定

使用AMD MI250和NVIDIA A100在MPT-1B LLM模型上进行训练时,从相同的检查点开始,损失曲线几乎完全相同。

二、性能与现有的A100系统相媲美

MosaicML对MPT模型的1B到13B参数进行了性能分析发现MI250每个GPU的训练吞吐量在80%的范围内与A100-40GB相当,并且与A100-80GB相比在73%的范围内。随着AMD软件的改进,预计这一差距将会缩小。

三、基本无需代码修改

得益于PyTorch对ROCm的良好支持,基本上不需要修改现有代码。

英伟达显卡与苹果M2 Ultra 相比性能如何

 

一、英伟达显卡与M2 Ultra 相比性能如何

在传统英特尔+英伟达独立显卡架构下,CPU与GPU之间的通信通常通过PCIe进行。最强大的H100支持PCIe Gen5,传输速度为128GB/s,而A100和4090则支持PCIe 4,传输速度为64GB/s。

另一个重要的参数是GPU的显存带宽,即GPU芯片与显存之间的读写速度。显存带宽是影响训练速度的关键因素。例如,英伟达4090显卡的显存带宽为1.15TB/s,而A100和H100的显存带宽分别为1.99TB/s和3.35TB/s。

最后一个重要的参数是显存大小,它指的是显卡上的存储容量。目前,4090是消费级显卡的顶级选择,显存大小为24GB,而A100和H100单张显卡的显存大小均为80GB。这个参数对于存储大规模模型和数据集时非常重要。

image.png

M2 Ultra的芯片参数和4090以及A100的对比(CPU采用英特尔最新的i9-13900KS)

从这些参数来看,苹果的M2 Ultra相对于英伟达的4090来说性能稍低,与专业级显卡相比则较为逊色。然而,M2 Ultra最重要的优势在于统一内存,即CPU读写的内存可以直接被显卡用作显存。因此,拥有192GB的显存几乎相当于8个4090或者2.5个A100/H100的显存。这意味着单个M2 Ultra芯片可以容纳非常大的模型。例如,当前开源的LLaMA 65B模型需要120GB的显存才能进行推理。这意味着苹果的M2 Ultra可以直接适用于LLaMA 65B,而目前没有其他芯片能够单独承载如此庞大的模型,甚至包括最新的H100。

image.png

 

从上述参数对比来看,M2 Ultra在其他指标接近4090的情况下,显存大小成为其最大的优势。尽管M2 Ultra并非专为大模型训练而设计,但其架构非常适合进行大模型训练。

在上层生态方面,进展也非常良好。2022年5月18日,PyTorch宣布支持苹果芯片,并开始适配M1 Ultra,利用苹果提供的芯片加速库MPS进行加速Ultra上使用PyTorch进行训练。以文本生成图片为例,它能够一次性生成更多且更高精度的图片。

二、NVIDIA为什么不推出一款200GB显存以上的GPU?

主要原因可以分为以下几点:

1、大语言模型火起来还没多久;

2、显存容量和算力是要匹配的,空有192GB显存,但是算力不足并无意义;

3、苹果大内存,适合在本地进行推理,有希望引爆在端侧部署AI的下一轮热潮。

从2022年11月ChatGPT火起来到现在,时间也不过才半年时间。从项目立项,到确定具体的规格,再到设计产品,并且进行各种测试,最终上市的全流程研发时间至少在一年以上。客观上讲,大语言模型形成全球范围的热潮,一定会带动对于显存容量的需求。英伟达未来显存容量的升级速度一定会提速。

过去之所以消费级显卡的显存容量升级较慢,根本原因是没有应用场景。8GB的消费级显卡用来打游戏足矣,加速一些视频剪辑也绰绰有余。更高的显存容量,只能服务于少量科研人员,而且大多都去买了专业卡专门应用。现在有了大语言模型,可以在本地部署一个开源的模型。有了对于显存的明确需求,未来一定会快速提升显存容量的。

其次,苹果有192GB的统一内存可以用于大语言模型的“训练”。这个认知是完全错误的。AI模型可以分为训练(train)、微调(fine-tune)和推理(inference)。简单来说,训练就是研发人员研发AI模型的过程,推理就是用户部署在设备上来用。从算力消耗上来说,是训练>微调>推理,训练要比推理的算力消耗高至少3个数量级以上。

训练也不纯粹看一个显存容量大小,而是和芯片的算力高度相关的。因为实际训练的过程当中,将海量的数据切块成不同的batch size,然后送入显卡进行训练。显存大,意味着一次可以送进更大的数据块。但是芯片算力如果不足,单个数据块就需要更长的等待时间。

显存和算力,必须要相辅相成。在有限的产品成本内,两者应当是恰好在一个平衡点上。现阶段英伟达的H100能够广泛用于各大厂商的真实模型训练,而不是只存在于几个自媒体玩具级别的视频里面,说明H100能够满足厂商的使用需要。

要按苹果的显存算法,一块Grace Hopper就超过了啊。一块Grace Hopper的统一内存高达512GB,外加Hopper还有96GB的独立显存,早就超了。

image.png

 

使用NVIDIA H100训练ChatGPT大模型仅用11分钟

AI技术的蓬勃发展使得NVIDIA的显卡成为市场上备受瞩目的热门产品。尤其是高端的H100加速卡,其售价超过25万元,然而市场供不应求。该加速卡的性能也非常惊人,最新的AI测试结果显示,基于GPT-3的大语言模型训练任务刷新了记录,完成时间仅为11分钟。

image.png

 

据了解,机器学习及人工智能领域的开放产业联盟MLCommons发布了最新的MLPerf基准评测。包括8个负载测试,其中就包含基于GPT-3开源模型的LLM大语言模型测试,这对于评估平台的AI性能提出了很高的要求。

参与测试的NVIDIA平台由896个Intel至强8462Y+处理器和3584个H100加速卡组成,是所有参与平台中唯一能够完成所有测试的。并且,NVIDIA平台刷新了记录。在关键的基于GPT-3的大语言模型训练任务中,H100平台仅用了10.94分钟,与之相比,采用96个至强8380处理器和96个Habana Gaudi2 AI芯片构建的Intel平台完成同样测试所需的时间为311.94分钟。

H100平台的性能几乎是Intel平台的30倍,当然,两套平台的规模存在很大差异。但即便只使用768个H100加速卡进行训练,所需时间仍然只有45.6分钟,远远超过采用Intel平台的AI芯片。

H100加速卡采用GH100 GPU核心,定制版台积电4nm工艺制造,拥有800亿个晶体管。它集成了18432个CUDA核心、576个张量核心和60MB的二级缓存,支持6144-bit HBM高带宽内存以及PCIe 5.0接口。

image.png

 

H100计算卡提供SXM和PCIe 5.0两种样式。SXM版本拥有15872个CUDA核心和528个Tensor核心,而PCIe 5.0版本则拥有14952个CUDA核心和456个Tensor核心。该卡的功耗最高可达700W。

就性能而言,H100加速卡在FP64/FP32计算方面能够达到每秒60万亿次的计算能力,而在FP16计算方面达到每秒2000万亿次的计算能力。此外,它还支持TF32计算,每秒可达到1000万亿次,是A100的三倍。而在FP8计算方面,H100加速卡的性能可达每秒4000万亿次,是A100的六倍。

蓝海大脑大模型训练平台

蓝海大脑大模型训练平台提供强大的支持,包括基于开放加速模组高速互联的AI加速器。配置高速内存且支持全互联拓扑,满足大模型训练中张量并行的通信需求。支持高性能I/O扩展,同时可以扩展至万卡AI集群,满足大模型流水线和数据并行的通信需求。强大的液冷系统热插拔及智能电源管理技术,当BMC收到PSU故障或错误警告(如断电、电涌,过热),自动强制系统的CPU进入ULFM(超低频模式,以实现最低功耗)。致力于通过“低碳节能”为客户提供环保绿色的高性能计算解决方案。主要应用于深度学习、学术教育、生物医药、地球勘探、气象海洋、超算中心、AI及大数据等领域。

image.png

 

一、为什么需要大模型?

1、模型效果更优

大模型在各场景上的效果均优于普通模型

2、创造能力更强

大模型能够进行内容生成(AIGC),助力内容规模化生产

3、灵活定制场景

通过举例子的方式,定制大模型海量的应用场景

4、标注数据更少

通过学习少量行业数据,大模型就能够应对特定业务场景的需求

二、平台特点

1、异构计算资源调度

一种基于通用服务器和专用硬件的综合解决方案,用于调度和管理多种异构计算资源,包括CPU、GPU等。通过强大的虚拟化管理功能,能够轻松部署底层计算资源,并高效运行各种模型。同时充分发挥不同异构资源的硬件加速能力,以加快模型的运行速度和生成速度。

2、稳定可靠的数据存储

支持多存储类型协议,包括块、文件和对象存储服务。将存储资源池化实现模型和生成数据的自由流通,提高数据的利用率。同时采用多副本、多级故障域和故障自恢复等数据保护机制,确保模型和数据的安全稳定运行。

3、高性能分布式网络

提供算力资源的网络和存储,并通过分布式网络机制进行转发,透传物理网络性能,显著提高模型算力的效率和性能。

4、全方位安全保障

在模型托管方面,采用严格的权限管理机制,确保模型仓库的安全性。在数据存储方面,提供私有化部署和数据磁盘加密等措施,保证数据的安全可控性。同时,在模型分发和运行过程中,提供全面的账号认证和日志审计功能,全方位保障模型和数据的安全性。

三、常用配置

目前大模型训练多常用H100、H800、A800、A100等GPU显卡,其中H100 配备第四代 Tensor Core 和 Transformer 引擎(FP8 精度),与上一代产品相比,可为多专家 (MoE) 模型提供高 9 倍的训练速度。通过结合可提供 900 GB/s GPU 间互连的第四代 NVlink、可跨节点加速每个 GPU 通信的 NVLINK Switch 系统、PCIe 5.0 以及 NVIDIA Magnum IO™ 软件,为小型企业到大规模统一 GPU 集群提供高效的可扩展性。

搭载 H100 的加速服务器可以提供相应的计算能力,并利用 NVLink 和 NVSwitch 每个 GPU 3 TB/s 的显存带宽和可扩展性,凭借高性能应对数据分析以及通过扩展支持庞大的数据集。通过结合使用 NVIDIA Quantum-2 InfiniBand、Magnum IO 软件、GPU 加速的 Spark 3.0 和 NVIDIA RAPIDS™,NVIDIA 数据中心平台能够以出色的性能和效率加速这些大型工作负载。

1、H100工作站常用配置

CPU:英特尔至强Platinum 8468 48C 96T 3.80GHz 105MB 350W *2

内存:动态随机存取存储器64GB DDR5 4800兆赫 *24

存储:固态硬盘3.2TB U.2 PCIe第4代 *4

GPU :Nvidia Vulcan PCIe H100 80GB *8

平台 :HD210 *1

散热 :CPU+GPU液冷一体散热系统 *1

网络 :英伟达IB 400Gb/s单端口适配器 *8

电源:2000W(2+2)冗余高效电源 *1

2、A800工作站常用配置

CPU:Intel 8358P 2.6G 11.2UFI 48M 32C 240W *2

内存:DDR4 3200 64G *32

数据盘:960G 2.5 SATA 6Gb R SSD *2

硬盘:3.84T 2.5-E4x4R SSD *2

网络:双口10G光纤网卡(含模块)*1

           双口25G SFP28无模块光纤网卡(MCX512A-ADAT )*1

GPU:HV HGX A800 8-GPU 8OGB *1

电源:3500W电源模块*4

其他:25G SFP28多模光模块 *2

        单端口200G HDR HCA卡(型号:MCX653105A-HDAT) *4

         2GB SAS 12Gb 8口 RAID卡 *1

         16A电源线缆国标1.8m *4

         托轨 *1

         主板预留PCIE4.0x16接口 *4

         支持2个M.2 *1

         原厂质保3年 *1

3、A100工作站常用配置

CPU:Intel Xeon Platinum 8358P_2.60 GHz_32C 64T_230W *2

RAM:64GB DDR4 RDIMM服务器内存 *16

SSD1:480GB 2.5英寸SATA固态硬盘 *1

SSD2:3.84TB 2.5英寸NVMe固态硬盘 *2

GPU:NVIDIA TESLA A100 80G SXM *8

网卡1:100G 双口网卡IB 迈络思 *2

网卡2:25G CX5双口网卡 *1

4、H800工作站常用配置

CPU:Intel Xeon Platinum 8468 Processor,48C64T,105M Cache 2.1GHz,350W *2

内存 :64GB 3200MHz RECC DDR4 DIMM *32

系统硬盘: intel D7-P5620 3.2T NVMe PCle4.0x4 3DTLCU.2 15mm 3DWPD *4

GPU: NVIDIA Tesla H800 -80GB HBM2 *8

GPU网络: NVIDIA 900-9x766-003-SQO PCle 1-Port IB 400 OSFP Gen5 *8

存储网络 :双端口 200GbE IB *1

网卡 :25G网络接口卡 双端口 *1

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

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

相关文章

C语言每日一题之整数求二进制1的个数

今天分享一道题目&#xff0c;用三种方法来求解 二进制1的个数 方法1 我们的十进制除10和取余数就可以得到我们每一位的数字&#xff0c;那我们的二进制也可 以 #include<stdio.h> int num_find_1(unsigned int n) {int count 0;while (n){if (1 n % 2){count;}n / 2…

python实现某品牌数据采集

某品牌数据采集 采集需求 地址&#xff1a;http://www.winshangdata.com/brandList 需求&#xff1a;用scrapy框架采集本站数据&#xff0c;至少抓取5个分类&#xff0c;数据量要求5000以上 采集字段&#xff1a;标题、创建时间、开店方式、合作期限、面积要求 网页分析 …

JSP 配置环境的搭建快速入门

JSP搭建环境 创建一个maven的 web 项目&#xff0c;项目结构如下&#xff1a; pom.xml 文件内容如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http:/…

第一百一十七天学习记录:高等数学:向量代数与空间解析几何(上)(宋浩板书)

在数学中&#xff0c;向量是一组按特定顺序排列的数&#xff0c;也可以是其他类型的元素&#xff0c;例如复数或矩阵。向量通常用加粗的小写字母表示&#xff0c;例如 v \mathbf{v} v&#xff0c;其中每个数值或元素称为向量的分量。向量可以表示空间中的方向和大小&#xff0…

【触觉智能Purple Pi OH开发板体验】开箱体验:开源主板Purple Pi RK3566 上手指北

前言 前段时间收到来自【电子发烧友】的一款开发板&#xff0c;名叫&#xff1a;PurplePi&#xff0c;216G售价仅249元。它使用的芯片是rk3566&#xff0c;适配的OpenHarmony版本为3.2 Release 是目前最便宜的OpenHarmony标准系统开源开发板&#xff0c;并且软硬件全部开源&am…

VMPWN的入门级别题目详解(二)

实验四 VMPWN4 题目简介 这道题应该算是虚拟机保护的一个变种&#xff0c;是一个解释器类型的程序&#xff0c;何为解释器&#xff1f;解释器是一种计算机程序&#xff0c;用于解释和执行源代码。解释器可以理解源代码中的语法和语义&#xff0c;并将其转换为计算机可以执行的…

数据结构:线索二叉树

线索二叉树 通过前面对二叉树的学习&#xff0c;了解到二叉树本身是一种非线性结构&#xff0c;采用任何一种遍历二叉树的方法&#xff0c;都可以得到树中所有结点的一个线性序列。在这个序列中&#xff0c;除第一个结点外&#xff0c;每个结点都有自己的直接前趋&#xff1b;…

MySql忘记密码如何修改

前言 好久没用数据库的软件了&#xff0c;要用的时候突然发现密码已经忘记了&#xff0c;怎么试都不对&#xff0c;心态直接爆炸&#xff0c;上一次用还是22年6月份&#xff0c;也记不得当时用数据库干什么了&#xff0c;这份爆炸浮躁的心态值得这样记录一下&#xff0c;警示自…

国内常见的16款低代码开发平台介绍

本文给大家讲解3种不同方向的低代码/无代码开发平台。 第一种&#xff1a;企业级低代码开发平台&#xff0c;企业级这一概念是指&#xff1a;能把企业方方面面的业务需求全都能覆盖到&#xff0c;&#xff08;包括很多定制化且高度复杂的核心应用系统&#xff0c;如ERP、MES、…

浅析嵌入式GUI框架-LVGL

LVGL是什么&#xff1f; LVGL (Light and Versatile Graphics Library) 是最流行的免费开源嵌入式图形库&#xff0c;可为任何 MCU、MPU 和显示类型创建漂亮的 UI。 嵌入式GUI框架对比 Features/框架LVGLFlutter-elinuxArkUI(鸿蒙OS)AWTKQTMIniGUIemWinuC/GUI柿饼UI跨平台…

神经数据库:用于使用 ChatGPT 构建专用 AI 代理的下一代上下文检索系统 — (第 2/3 部分)

书接上回理解构建LLM驱动的聊天机器人时的向量数据库检索的局限性 - &#xff08;第1/3部分&#xff09;_阿尔法旺旺的博客-CSDN博客 其中我们强调了&#xff08;1&#xff09;嵌入生成&#xff0c;然后&#xff08;2&#xff09;使用近似近邻&#xff08;ANN&#xff09;搜索…

Reinforcement Learning with Code 【Chapter 8. Value Funtion Approximation】

Reinforcement Learning with Code This note records how the author begin to learn RL. Both theoretical understanding and code practice are presented. Many material are referenced such as ZhaoShiyu’s Mathematical Foundation of Reinforcement Learning, . 文章…

2.9 线性表的划分

划分规则: 以某个元素为标准, 把顺序表中的元素分为左右两个部分, 标准元素称为枢轴. 考研中划分有三种题型(划分策略). 题型一 要求: 给一个顺序表, 以第一个元素为枢轴, 将该顺序表划分为左右两部分, 使得左边的所有元素都小于枢轴, 右边的所有元素都大于枢轴. 并且枢轴要…

基于Java+SpringBoot+vue前后端分离大学生就业招聘系统设计实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

【雕爷学编程】Arduino动手做(174)---Sensor Shield V5.0传感器扩展板

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

c++学习(位图)[22]

位图 位图&#xff08;Bitmap&#xff09;是一种数据结构&#xff0c;用于表示一个固定范围的布尔值&#xff08;通常是0或1&#xff09;。它使用一个二进制位来表示一个布尔值&#xff0c;其中每个位的值表示对应位置的元素是否存在或满足某种条件。 位图可以用于解决一些特…

下级平台级联安防视频汇聚融合EasyCVR平台,层级显示不正确是什么原因?

视频汇聚平台安防监控EasyCVR可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有GB28181、RTSP/Onvif、RTMP等&#xff0c;以及厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等&#xff0c;能对外分发RTSP、RTMP、FLV、HLS、WebRTC等…

粘包处理的方式

为什么出现粘包&#xff1a; 发送端在发送的时候由于 Nagel 算法的存在会将字节数较小的数据整合到一起发送&#xff0c;导致粘包&#xff1b;接收端不知道发送端数据的长度&#xff0c;导致接收时无法区分数据&#xff1b; 粘包处理的方式&#xff1a; 通过在数据前面加上报…

OpenLayers入门,OpenLayers如何加载GeoJson多边形、线段、点和区域范围等数据并叠加到OpenLayers矢量图层上

专栏目录: OpenLayers入门教程汇总目录 前言 前面两章已经讲了OpenLayers如何加载GeoJson数据到矢量图层和webgl图层上,前面两章也是可以支持多边形、线段、点和区域范围灯数据加载的,只是没有设置样式,所以只能看到点,本章就相当于完整版本,可以将所有图形都详细展示出…

使用Wps减小PDF文件的大小

第一步、打开左上角的文件 第二步、点击打印选项 第三步、点击打印按钮