目录
1.FlashMLA
1.1 FlashMLA原理
1.2 FlashMLA性能优势
1.3 FlashMLA的下载地址
2.DeepEP弹性并行计算框架
2.1 DeepEP原理
2.2 DeepEP性能优势
2.3 DeepEP的下载地址
3.DeepGEMM弹性并行计算框架
3.1 DeepGEMM原理
3.2 DeepGEMM性能优势
3.3 DeepGEMM的下载地址
4.优化并行策略
4.1 DualPipe原理
4.1.1 原理
4.1.2 性能
4.1.3下载地址
4.2 EPLB原理
4.2.1 原理
4.2.2 性能
4.2.3下载地址
4.3 profile-data原理
4.3.1 原理
4.3.2 性能
4.3.3下载地址
5.3FS和Smallpond计算框架
5.1 3FS原理
5.1.1 原理
5.1.2 性能
5.1.3下载地址
5.2 Smallpond原理
5.2.1 原理
5.2.2 性能
5.2.3下载地址
1.FlashMLA
FlashMLA是专为英伟达Hopper架构GPU打造的高效推理引擎,全面支持BF16精度的动态长序列处置惩罚。其核心在于创新的分页KV缓存技术,块巨细设定为64。在处置惩罚长序列时,传统的缓存机制容易出现缓存掷中率低、内存访问服从低下等问题。而FlashMLA的分页KV缓存技术将键值对(KV)数据按照64巨细的块进行分页存储和管理。当模子进行推理时,能够快速定位和访问所需的KV数据块,大大减少了内存访问的次数和延迟。同时,针对BF16精度的优化,使得在保证一定计算精度的前提下,能够充分利用GPU的硬件加速能力,提升计算服从。
1.1 FlashMLA原理
在FlashMLA的内存访问优化中,涉及到一些底子的内存管理和数据定位公式。假设内存地址空间为M,分页巨细为P=64(这里P对应块巨细),对于一个给定的逻辑地址A,其对应的物理页号n和页内偏移量o可以通过以下公式计算:
通过这种分页机制,FlashMLA能够高效地在内存中定位和读取数据块,实现快速的数据访问,为模子推理提供支持。其计算过程可以表示为:
在现实性能测试中,FlashMLA在H800 GPU上显现出了卓越的性能。它能够达成3000GB/秒的内存带宽极限,计算峰值高达580万亿次浮点运算 / 秒。这一性能表现使得在处置惩罚大规模的AI推理使命时,如文本生成、图像识别等应用中,能够快速地完成计算,输出结果,极大地提高了推理的服从和及时性。
1.2 FlashMLA性能优势
1.3 FlashMLA的下载地址
GitHub - deepseek-ai/FlashMLA: FlashMLA: Efficient MLA decoding kernels
2.DeepEP弹性并行计算框架
DeepEP是一个专为混合专家(MoE)模子设计的通讯库,旨在优化GPU间的计算分配,降低延迟。在MoE模子中,不同的 “专家”(子网络)负责处置惩罚不同范例或部分的数据。然而,在分布式练习和推理过程中,由于各专家所处置惩罚的数据量可能差异巨大,导致GPU之间的负载不平衡,通讯开销增加。DeepEP通过设计高吞吐量和低延迟的通讯内核来解决这些问题。它采取双内核架构,允许在高吞吐量和低延迟之间机动切换,以顺应不同的应用场景。在数据传输方面,对所有对所有(all-to-all)的GPU通讯进行优化,使得数据能够在多个GPU之间高效地分发和汇总,确保每个GPU都能及时获取到所需的数据进行计算,从而提升整体的练习和推理服从。
2.1 DeepEP原理
在DeepEP的通讯优化中,涉及到数据传输量和传输时间的相关计算。假设在一个有N个GPU 的集群中,每个GPU必要发送和吸收的数据量为D,数据传输速率为R(单元时间内传输的数据量)。在传统的通讯模式下:
2.2 DeepEP性能优势
在现实应用中,DeepEP在处置惩罚复杂的推理请求时,能够在毫秒级别内完成数据传输和计算,极大地降低了延迟。比方,在一个包含多个MoE层的大型模子推理使命中,使用DeepEP能够显着减少推理时间,提高模子的相应速度。与未使用DeepEP的环境相比,推理服从提升了数倍,使得 AI 模子在现实应用中,如及时问答系统、智能客服等场景中,能够更快地相应用户请求,提供更好的用户体验。同时,在练习过程中,DeepEP通过优化计算分配,使得练习时间大幅缩短,提高了模子的练习服从,降低了练习本钱。
2.3 DeepEP的下载地址
https://github.com/deepseek-ai/DeepEP
3.DeepGEMM弹性并行计算框架
DeepGEMM专注于高效的FP8矩阵乘法,支持低精度计算。其设计灵感来源于DeepSeek-V3 项目,主要目标是在NVIDIA Hopper架构的张量核心上实现高效的矩阵运算。传统的矩阵乘法在处置惩罚大规模矩阵时,计算量巨大,且高精度计算会占用大量的内存和计算资源。DeepGEMM采取轻量级的即时编译(JIT)模块,在运行时动态编译所有内核,这种方式简化了安装过程,提升了机动性,能够根据不同的硬件配置和矩阵形状进行针对性的优化。同时,针对FP8张量核心在累加过程中的不精确性,DeepGEMM采取CUDA核心的两级累加(promotion)策略,通过在计算过程中引入更高精度的累加,确保最闭幕果的精确性。
3.1 DeepGEMM原理
3.2 DeepGEMM性能优势
DeepGEMM在性能方面表现卓越,在多种矩阵形状下的计算速度显着提升。比方,在使用 H800 GPU和CUDA 12.8的环境下,对于64x2112x7168的矩阵,DeepGEMM实现了206 TFLOPS 的计算能力,内存带宽为1688 GB/s,速度提升达2.7倍;在64x24576x1536的配置下,性能到达 289 TFLOPS,内存带宽为2455GB/s,速度提升为1.7倍。这些数据表明,DeepGEMM 能够有用利用硬件资源,在低精度计算的环境下,依然能够提供高效的计算能力,大幅提升了矩阵运算的速度和资源利用率,为深度学习模子中的大量矩阵运算提供了有力支持。
3.3 DeepGEMM的下载地址
https://github.com/deepseek-ai/DeepGEMM
4.优化并行策略
优化并行策略包含DualPipe、EPLB和profile-data。
DualPipe: 双向管道并行方法,可能通过重叠计算和通讯减少练习时间。
EPLB: 专家并行负载平衡器,确保 MoE 模子中工作负载的匀称分布。
profile-data: 性能分析工具,用于识别练习过程中的瓶颈,优化系统性能。
4.1 DualPipe原理
DualPipe是一种用于V3和R1练习的双向流水线并行算法,其核心在于实现了计算与通讯过程的完全重叠。在传统的模子练习中,流水线并行技术将模子按层次分割,每个装备负责处置惩罚部分层,然后将结果传递给下一个装备。然而,这种方式存在计算资源空闲等待和数据传输延迟的问题。DualPipe通过创新的双向处置惩罚方式解决了这些困难。在DualPipe的设计中,数据并非单向流动,而是存在两组数据从两头相向流动。在模子练习时,前向计算过程(模子对输入数据进行处置惩罚生成猜测结果)与后向计算过程(模子根据猜测结果与真实标签的误差更新权重)的计算 - 通讯阶段能够同步进行。通过将模子计算块进一步细分为如注意力、all-to-all 分派、MLP等更小的模块,提高了调理的机动性。这种双向设计使得所有装备都能保持较高的活泼度,有用减少了流水线气泡(即装备空闲等待的时间)。
4.1.1 原理
4.1.2 性能
以一个具有8个流水线并行级别和20个微批次的示例来说,DualPipe经心安排两个方向的数据处置惩罚流程,让计算和通讯得以同时开展。与传统的1F1B和 ZB1P算法相比,DualPipe在减少装备空闲时间方面显现出显着优势,尤其是在装备数目较多的场景下,效果更为突出。实验数据表明,使用 DualPipe 能够将练习服从提升200% 左右,同时仅增加了1倍的激活内存峰值,在提升练习服从的同时,对内存资源的增加相对可控,使得在有限的硬件资源下能够更高效地练习大规模模子。
4.1.3下载地址
GitHub - deepseek-ai/DualPipe: A bidirectional pipeline parallelism algorithm for computation-communication overlap in V3/R1 training.
4.2 EPLB原理
EPLB(专家并行负载平衡器)是为V3和R1打造的专家并行负载平衡器,专门针对混合专家(MoE)模子的分布式练习和推理设计。在传统的 MoE 模子中,专家负载的不平衡会导致计算资源的浪费,尤其是在专家并行(EP)的场景下,这种不平衡会进一步加剧通讯开销。EPLB实现了 DeepSeek-V3 论文中所形貌的 “冗余专家” 策略。详细而言,它会复制那些工作量较大的专家,然后通过经心设计的算法,将这些复制后的专家合理地分配到各个GPU上,以此确保负载平衡。EPLB 提供了两种负载平衡策略:层次化负载平衡,当服务器节点数目能够被专家组数目整除时实用。该策略首先将专家组匀称地分配到各个节点,保证不同节点之间的负载平衡;接着在每个节点内部进行专家复制;末了将复制后的专家打包分配给各个GPU,实现每个GPU的负载平衡。这种策略实用于较小专家并行规模的预添补阶段(即模子处置惩罚初始输入的阶段)。全局负载平衡,在其他环境下使用。此策略不考虑专家组的分布环境,直接在全局范围内复制专家,并将其分配到各个 GPU 上。这种策略实用于较大专家并行规模的解码阶段(即模子生成输出的阶段)。得益于 DeepSeek-V3所采取的 “组限制专家路由” 技术,EPLB还能够尽可能地将同一组的专家放置在同一物理服务器节点上,从而有用减少跨节点的数据传输,提高通讯服从。
4.2.1 原理
4.2.2 性能
在现实应用中,EPLB能够有用提高GPU的利用率。通过采取EPLB,在大规模专家并行的应用中,能够将GPU的利用率提升至80%以上,最大限度地减少练习时间。比方,在一个具有大量专家的MoE模子练习使命中,使用EPLB后,练习时间相比未使用时缩短了30% - 50%,大大提高了模子的练习服从,降低了练习本钱,同时也提高了模子在推理阶段的相应速度和性能稳定性。
4.2.3下载地址
https://github.com/deepseek-ai/eplb
4.3 profile-data原理
profile-data 是用于分析 V3/R1 中计算与通讯重叠性能的数据集。这些数据通过PyTorch Profiler 工具捕捉,它能够记录模子练习和推理过程中的各种操纵信息,包括计算操纵的执行时间、通讯操纵的传输时间、不同阶段的资源占用环境等。通过对这些详细数据的分析,开发者可以深入了解计算与通讯如何实现高效重叠,以及底层的详细实现细节。比方,在练习阶段,通过分析数据可以了解到在 DualPipe 中单个前向和后向处置惩罚块对的重叠策略是否有用,哪些部分还存在优化空间;在推理阶段,可以分析预添补阶段和解码阶段中计算与通讯的重叠环境,以及如何调整参数和策略来进一步提高服从。
4.3.1 原理
4.3.2 性能
开发者可以在 Chrome 或 Edge 浏览器的 tracing 页面直接对 profile - data 进行可视化操纵,直观地查看各项操纵的执行时间以及资源占用环境。
4.3.3下载地址
https://github.com/deepseek-ai/profile-data
5.3FS和Smallpond计算框架
5.1 3FS原理
3FS(Fast File System for Flash-based Storage)是一种专门为基于闪存的存储装备设计的高性能文件系统。其核心设计目标是充分利用闪存装备的特性,如随机读写速度快、无机械寻道时间等,来提高文件系统的性能和服从。
传统的文件系统在设计时主要考虑的是机械硬盘的特性,如旋转延迟和寻道时间。因此,它们在处置惩罚随机读写操纵时服从较低。而闪存装备的物理特性与机械硬盘有很大不同,3FS针对这些特性进行了优化。
首先,3FS采取了基于日志结构的设计。在传统文件系统中,文件数据和元数据通常是分散存储在磁盘上的,这使得在进行读写操纵时必要频仍地进行磁盘寻道。而在日志结构的文件系统中,所有的写入操纵都被顺序地追加到日志中,然后再批量地将数据和元数据合并到磁盘上的合适位置。这种设计方式减少了随机写入的开销,提高了写入性能。
其次,3FS引入了闪存转换层(FTL)的优化。FTL 负责将逻辑块地址映射到闪存芯片的物理块地址。3FS通过优化 FTL 的映射算法,减少了映射表的巨细和查找时间,从而提高了读写操纵的服从。别的,3FS还采取了磨损平衡技术,确保闪存芯片的各个物理块被匀称地使用,延伸了闪存装备的使用寿命。
5.1.1 原理
5.1.2 性能
在现实应用中,3FS在基于闪存的存储装备上表现出了显着的性能提升。与传统的文件系统相比,3FS的随机写入性能可以提高数倍乃至数十倍。比方,在对小型文件进行频仍写入的场景下,3FS的写入延迟可以降低 50%以上,吞吐量可以提高 2-3倍。在读取性能方面,3FS也能够充分利用闪存装备的高速随机读取特性,提供快速的文件访问。对于大型文件的顺序读取,3FS可以到达接近闪存装备理论带宽的性能。同时,由于采取了磨损平衡技术,3FS能够有用延伸闪存装备的使用寿命,减少因闪存芯片局部磨损过度而导致的故障。
5.1.3下载地址
https://github.com/deepseek-ai/3FS
5.2 Smallpond原理
Smallpond 是一种高性能的数据访问解决方案,主要用于解决大规模数据存储和访问中的性能瓶颈问题。其核心原理基于分布式存储和数据缓存技术,通过将数据分散存储在多个节点上,并在本地节点设置缓存,来提高数据访问的速度和服从。
在大规模数据存储系统中,数据通常存储在多个存储节点上。当用户必要访问数据时,传统的方法可能必要从远程节点读取数据,这会引入较大的网络延迟。Smallpond 通过在本地节点设置缓存,将经常访问的数据存储在本地,减少了对远程节点的访问次数。
Smallpond 采取了智能的数据缓存策略。它会根据数据的访问频率、访问时间等因素,动态地调整缓存中的数据。比方,对于访问频率高的数据,会优先保留在缓存中;对于长时间未访问的数据,会及时从缓存中移除,以释放缓存空间。
别的,Smallpond 还支持分布式数据存储和并行数据访问。它将数据分散存储在多个节点上,并通过分布式文件系统进行管理。当必要访问大量数据时,Smallpond 可以并行地从多个节点读取数据,从而提高数据访问的吞吐量。
5.2.1 原理
5.2.2 性能
在现实应用中,Smallpond能够显着提高数据访问的性能。在数据访问延迟方面,通过提高缓存掷中率,Smallpond可以将数据访问延迟降低70%以上。比方,在一个大规模数据存储系统中,传统的访问方式可能必要数十毫秒乃至更长时间才气获取数据,而使用Smallpond后,数据访问延迟可以降低到几毫秒以内。
在数据访问吞吐量方面,由于支持并行数据访问,Smallpond 可以将吞吐量提高数倍乃至数十倍。在处置惩罚大规模数据分析使命时,如机器学习模子练习、数据挖掘等,Smallpond能够快速地提供所需的数据,大大缩短了使命的执行时间。同时,Smallpond 的智能缓存策略还能够有用地减少对存储系统的压力,提高整个系统的稳定性和可靠性。
5.2.3下载地址
GitHub - deepseek-ai/smallpond: A lightweight data processing framework built on DuckDB and 3FS.
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |