目前,大模型的发展已经非常火热,关于大模型的训练、微调也是各个公司重点关注方向。但是大模型训练的痛点是模型参数过大,动辄上百亿,如果单靠单个GPU来完成训练基本不可能。所以需要多卡或者分布式训练来完成这项工作。
1.1 目前主流的大模型分布式训练主要包括两种:
?数据并行训练
?模型并行训练
DeepSpeed是由Microsoft提供的分布式训练工具,旨在支持更大规模的模型和提供更多的优化策略和工具。对于更大模型的训练来说,DeepSpeed提供了更多策略,例如:Zero、Offload等。
分布式训练需要掌握分布式环境中的基础配置,包括节点变化、全局进程编号、局部进程编号、全局总进程数、主节点等。这些组件都跟分布式训练紧密相关,同时组件之间也有非常大的联系,例如通信联系等。
既然是分布式训练,那机器之间必须要保持通信,这样才可以传输模型参数,梯度参数等信息。
DeepSpeed提供了mpi、gioo、nccl等通信策略
通信策略 | 通信作用 |
mpi | 它是一种跨界点的通信库,经常用于CPU集群的分布式训练 |
gloo | 它是一种高性能的分布式训练框架,可以支持CPU或者GPU的分布式训练 |
nccl | 它是nvidia提供的GPU专用通信库,广泛用于GPU上的分布式训练 |
我们在使用DeepSpeed进行分布式训练的时候,可以根据自身的情况选择合适的通信库,通常情况下,如果是GPU进行分布式训练,可以选择nccl。
Microsoft开发的Zero可以解决分布式训练过程中数据并行和模型并行的限制。比如: Zero通过在数据并行过程中划分模型状态(优化器、梯度、参数),来解决数据并行成可能出现内存冗余的情况(正常数据并行训练,模型全部参数是复制在各个机器上的);同时可以在训练期间使用动态通信计划,在分布式设备之间共享重要的状态变量,这样保持计算粒度和数据并行的通信量。
Zero是用于大规模模型训练优化的技术,它的主要目的是减少模型的内存占用,让模型可以在显卡上训练,内存占用主要分为Model States和Activation两个部分,Zero主要解决的是Model States的内存占用问题。
Zero将模型参数分成三个部分:
状态 | 作用 |
Optimizer States | 优化器在进行梯度更新的时候需要用到的数据 |
Gradient | 在反向转播过程中产生的数据,其决定参数的更新方向 |
Model Parameter | 模型参数,在模型训练过程中通过数据“学习”的信息 |
Zero的级别如下:
级别 | 作用 |
Zero-0 | 不使用所有类型的分片,仅使用DeepSpeed作为DDP |
Zero-1 | 分割Optimizer States, 减少4倍内存,通信容量和数据并行性相同 |
Zero-2 | 分割Optimizer States和Gradients,减少8倍内存,通信容量和数据并行性相同 |
Zero-3 | 分割Optimizer States、gradients、Parametes,内存减少与数据并行度呈线性关系。例如,在64个GPU(Nd=64)之间进行拆分将产生64倍的内存缩减。通信量有50%的适度增长 |
Zero-Infinity | Zero-Infinity是Zero-3的扩展,它允许通过使用 NVMe 固态硬盘扩展 GPU 和 CPU 内存来训练大型模型 |
相比GPU,CPU就相对比较廉价,所以Zero-Offload思想是将训练阶段的某些模型状态放(offload)到内存以及CPU计算。?
??Zero-Offload不希望为了最小化显存占用而让系统计算效率下降,但如果使用CPU也需要考虑通信和计算的问题(通信:GPU和CPU的通信;计算:CPU占用过多计算就会导致效率降低)。
Zero-Offload想做的是把计算节点和数据节点分布在GPU和CPU上,计算节点落到哪个设备上,哪个设备就执行计算,数据节点落到哪个设备上,哪个设备就负责存储。
Zero-Offload切分思路:
下图中有四个计算类节点:FWD、BWD、Param update和float2half,前两个计算复杂度大致是 O(MB), B是batch size,后两个计算复杂度是 O(M)。为了不降低计算效率,将前两个节点放在GPU,后两个节点不但计算量小还需要和Adam状态打交道,所以放在CPU上,Adam状态自然也放在内存中,为了简化数据图,将前两个节点融合成一个节点FWD-BWD Super Node,将后两个节点融合成一个节点Update Super Node。如下图右边所示,沿着gradient 16和parameter 16两条边切分。?
??Zero-Offload计算思路:
在GPU上面进行前向和后向计算,将梯度传给CPU,进行参数更新,再将更新后的参数传给GPU。为了提高效率,可以将计算和通信并行起来,GPU在反向传播阶段,可以待梯度值填满bucket后,一遍计算新的梯度一遍将bucket传输给CPU,当反向传播结束,CPU基本上已经有最新的梯度值了,同样的,CPU在参数更新时也同步将已经计算好的参数传给GPU,如下图所示。?
?2.5 混合精度:
混合精度训练是指在训练过程中同时使用FP16(半精度浮点数)和FP32(单精度浮点数)两种精度的技术。使用FP16可以大大减少内存占用,从而可以训练更大规模的模型。但是,由于FP16的精度较低,训练过程中可能会出现梯度消失和模型坍塌等问题。
DeepSpeed支持混合精度的训练,可以在config.json配置文件中设置来启动混合精度("fp16.enabled":true)。在训练的过程中,DeepSpeed会自动将一部分操作转化为FP16格式,并根据需要动态调整精度缩放因子,来保证训练的稳定性和精度。
在使用混合精度训练时,需要注意一些问题,例如梯度裁剪(Gradient Clipping)和学习率调整(Learning Rate Schedule)等。梯度裁剪可以防止梯度爆炸,学习率调整可以帮助模型更好地收敛。
DeepSpeed方便了我们在机器有限的情况下来训练、微调大模型,同时它也有很多优秀的性能来使用,后期可以继续挖掘。
目前主流的达模型训练方式: GPU + PyTorch + Megatron-LM + DeepSpeed
优势
1.存储效率:DeepSpeed提供了一种Zero的新型解决方案来减少训练显存的占用,它与传统的数据并行不同,它将模型状态和梯度进行分区来节省大量的显存;
2.可扩展性:DeepSpeed支持高效的数据并行、模型并行、pipeline并行以及它们的组合,这里也称3D并行;
3.易用性: 在训练阶段,只需要修改几行代码就可以使pytorch模型使用DeepSpeed和Zero。
参考:
1. http://wed.xjx100.cn/news/204072.html?action=onClick
2. https://zhuanlan.zhihu.com/p/513571706
作者:京东物流 郑少强
来源:京东云开发者社区 转载请注明来源
看个锚点定位的例子
发现页面唰的一些就到顶部了,快到我们懵逼了。。。
开始解决
CSS属性 scroll-behavior 为一个滚动框指定滚动行为,其他任何的滚动,例如那些由于用户行为而产生的滚动,不受这个属性的影响。在根元素中指定这个属性时,它反而适用于视窗。
scroll-behavior:smooth 写在滚动容器元素上,可以让容器的滚动变得平滑。
在网页默认滚动是在<html>标签上,移动端大多数在<body>标签上。
我们可以这样加:
html, body { scroll-behavior:smooth; }
加了以后的效果如下:
这是录制的GIF图,效果没那么好。 大家可以动手试一下,滑动体验非常不错。
兼容性不够好
当然我们可以通过js来做个类似
DOM元素的scrollIntoView() 方法让当前的元素滚动到浏览器窗口的可视区域内,通过触发滚动容器的定位实现。
DOM元素的scrollIntoView()方法 是原生JS 兼容到IE6,兼容性非常好。
参数如下
{ behavior: "auto" | "instant" | "smooth", // 默认 auto block: "start" | "center" | "end" | "nearest", // 默认 center inline: "start" | "center" | "end" | "nearest", // 默认 nearest }
解释一下这三个参数:
用法:
html:
<div class="wrap"> <div onClick="onScrollIntoView()">点击让黑色块到顶部</div> <ul class="body"> <li>1</li> <li>2</li> <li id="box">我是黑色</li> <li>3</li> <li>4</li> </ul> </div>
js:
function onScrollIntoView () { var element=document.getElementById("box"); element.scrollIntoView({behavior: "smooth"}); }
效果:
这回大家再也不用害怕做锚点定位啦。
最后我们在说一个关于页面滚动问题吧,那就是 返回顶部 功能实现
我们常用定时器 setInterval 来不断减去高度。
如:当前距离顶部 1000, 我们每10毫秒减50,
var timer=setInterval(function() { // 定时器 每10毫秒执行一次 // 顶部距离 document.body.scrollTop=1000 var speed=50 // 返回顶部速度 document.body.scrollTop=document.body.scrollTop - speed if (document.body.scrollTop===0) { // 返回到达顶部后, 销毁定时器 clearInterval(timer) } }, 10)
效果:
大家会发现,页面返回是滚动起来很干。 没10毫秒减50. 很平均,在交互上效果并不好。
借鉴上面 scroll-behavior:smooth 的交互效果。 缓动的返回顶部。
改一下计算方式:1000/2=500, 500/2=250, 250/2=...... 这样滑动起来是不是就平滑了呢?
换算成公式:开始位置=开始位置 + (结束位置 - 开始位置) / 速度
document.body.scrollTop=1000 + (0 - 1000) / 2
公式太烦了还是上代码吧:
var onTop=function (a, b, c, d) { if (a==b || typeof a !='number') { return } b=b || 0 c=c || 2 var speed=function () { a=a + (b - b) / c if (a < 1) { d(b, true) return } d(a, false) requestAnimationFrame(speed) } speed() }
调用:
var target=document.body.scrollTop ? document.body : document.documentElement onTop(target.scrollTop, 0, 4, function (value) { target.scrollTop=value })
效果:
Ps: gif录制效果不好,大家可以动手写一下DEMO
者:黑山老妖LYN
为了争夺入门级SSD的市场份额,从2015年开始很多厂家都先后推出了采用TLC NAND颗粒的SSD产品,价格也不断的创出新低。一直没有推出TLC SSD的intel和浦科特两家一线厂家也都在近期高调发布TLC SSD新品。之前炒得很热门的浦科特第一款TLC SSD产品M7V现在已经正式上市,M7V按照接口的不同又细分为两个型号:SATA接口的为M7VC,M.2接口的为M7VG。零售价格是:SATA接口M7VC中128G定价279元,256G定价459元,512G定价869元。M.2接口的M7VG中128G定价369元,256G定价569元,512G定价1239元。这个定价已经与很多低端MLC SSD持平,那么廉价的入门级SSD应该怎么选?是买高端TLC SSD,还是买低端MLC SSD呢?这次就通过M7V的实测来帮大家分析一下。
浦科特 M7VG 128G M.2 2280固态硬盘
先来看看这次的主角:M.2接口的浦科特M7VG 256G。M7V M.2接口与SATA接口一样都是采用新一代的Marvell 88SS1074主控+东芝原厂15nm eTLC NAND颗粒。
M.2接口的浦科特M7V,在包装上要比SATA接口版本的包装Q很多,透明塑料的包装外壳,包装盒正面按照老惯例标明了具体型号和各个不同容量版本SSD的最大读写速度,M.2接口的具体型号为M7VG,而SATA接口的具体型号为M7VC。M.2版本的外包装上没有和SATA版本那样详细的注明缓存、电压、电流、MTBF等参数,同样也未注明是采用TLC NAND颗粒。
M.2版本的SSD在外观上就肯定没有SATA版本那么花哨了,没有彩色的外壳,只有裸露的PCB加上各种芯片。不过浦科特M7V上贴了很多标签,如果要看清楚各种芯片,就需要把标签撕下来,我个人的做法是用吹风筒的热风轻轻吹一下,就可以揭开各种标签,注意不要整个撕下来,轻轻卷到一边就好,等下用热风再吹一下,就可以卷回去,不影响保修。M.2接口的M7V是2280的规格,绿色PCB的正面是一个主控芯片+一个缓存颗粒+两个NAND颗粒。PCB的背面则是空白一片。
M.2接口也称为NGFF接口,基于PCIE M.2协议。与SATA接口不同,M.2占用的是PCIE通道,因此它可以获得更充裕的带宽和更快的传输速度。目前SATA3接口的理论传输速率最高只有6Gb/s,大概相当于600MB/s的传输速度。面对飞速提升的固态硬盘读写速度,SATA3接口已经成为高速公路上的瓶颈。而M.2接口的理论传输速率可以达到10Gb/s,相当于1G/s的传输速度,部分走PCIE 3.0总线的Ultra M.2甚至号称达到32Gb/s。M.2接口的设计非常灵活,可以通过金手指部分的两个缺口来定义接口模式。小的缺口是B key,单独使用B key时为“Socket2”,此时仅运行在PCI-E 2X传输模式下,速度较低但可以提高对SATA3的兼容性。大的缺口为M key,当B key和M key同时使用时为“Socket3”,此时运行在PCI-E 4X传输模式下,真正发挥M.2接口的速度优势。主板上的M.2接口上一般都有“Socket2”或者“Socket3”的标识。
M.2接口的M7V使用的主控芯片与SATA版本一样,都是Marvell的第五代SATA主控88SS1074B1,这是一款针对15nm NAND Flash推出的四通道主控,最高只能支持512G容量。其特点如下:
支持SATA 6Gb/s接口标准;
采用先进的28nm CMOS制造工艺;
可以支持15nm制程的TLC/MLC/SLC和3D堆栈闪存;
支持DEVSLP休眠模式以实现低功耗;
以400MT/s的速率支持ONFI 3/Toggle 2接口标准;
支持256位AES加密技术。另外还支持Marvell的第三代NANDEdge纠错技术和LDPC低密度奇偶校验技术。
从浦科特官方的宣传资料来看,M.2接口的M7V和SATA版本一样,支持 PlexTurbo 、PlexCompressor、PlexVault 三个浦科特自家的SSD 应用软件。在使用寿命方面,官方说法是最高支持2000PE。与之前浦科特采用MLC NAND的SSD有所不同的是,M7V新增了PlexNitro效能优化缓冲技术,我们知道,之前浦科特采用MLC NAND的SSD都没有采用SLC Cache技术来提高使用体验。而M7V是TLC SSD,所以现在同样也需要使用SLC Cache技术。浦科特官方的资料中也说明了PlexNitro是以“SLC Mode”优化效能表现,并且标明了各个容量版本的SLC Cache空间大小。
128G版本的Cache空间为1.5GB,256G版本的Cache空间为3GB,512G版本(官方图片资料中错标为521GB)的Cache空间为6GB。
缓存由单个南亚的缓存颗粒组成,编号分别为NT5CC256M16DP-DI,为DDR3L 1600颗粒,CL=11,容量为512MB。
NAND颗粒编号TH58TFT0UHLBAEF,从编号上来看,是BGA封装的东芝原厂Toggle NAND,15nm制程,属于企业级的eTLC,单颗容量为128GB,一共两颗组成256G。
一个SSD的性能主要由主控芯片、缓存、NAND颗粒三者共同决定,其中最关键的是主控和NAND。主控除了决定性能外,还确定了SSD在纠错、垃圾回收、压缩算法等方面的特点。NAND除了决定性能外,还关系到SSD的使用寿命等问题。目前最常见的NAND有SLC、MLC、TLC三种。SLC速度快、寿命长,具有约10万次擦写寿命,但是价格昂贵,目前只有少数高端企业级产品在使用;MLC的速度与寿命都逊于SLC,大概5000次擦写寿命,但是因为价格适中,目前被主流SSD广泛使用;TLC速度比MLC更慢、寿命更短,约500—1000次擦写寿命,但是价格更加便宜,目前一般被低端SSD所使用。
为了提高MLC的寿命,很多厂家在生产MLC时会对晶圆进行筛选,选出部分优质的晶圆作为企业级的eMLC颗粒。厂家还通过调整eMLC的内部参数来达到增加P/E的目的,现在eMLC的PE甚至可以达到10000次。目前TLC SSD普及的有利因素是价格,不利因素则是使用寿命问题。很多NAND厂家就通过筛选TLC晶圆来生产eTLC颗粒,即企业级的TLC颗粒,目前东芝eTLC NAND已经号称能够达到2000 PE的水平,虽然达不到MLC的3000-5000 PE,但是比普通的TLC提升了一倍。
下面就来实测M.2接口的浦科特M7V的实际性能究竟怎么样。
测试平台用我新入手的ROG Maximus VIII Formula主板,搭配我托人从TW带回来的特挑威刚XPG Z1 DDR4 3200。M8F主板主打RBG信仰灯,颜值秒杀仲基老公。威刚XPG Z1 DDR4 3200虽然不是灯条,但是默认小参非常喜人,XMP直接上DDR4 3200 16-16-16-36,电压1.35V,海力士SKhynix H5AN4G8NMFR-TFC颗粒,金黄色马甲。默认电压模式时序轻松上DDR4 3466。
首先测SSD的常规五项:AS SSD Benchmark、CrystalDisk Mark、ATTO Disk Benchmark、Anvil’s Storage Utilities、TxBENCH。这五款软件都能够测试SSD的最大持续读写速度,AS SSD Benchmark可以测得SSD在队列深度QD64下的随机4K读写速度,CrystalDisk Mark和TxBENCH可以测得SSD在队列深度QD32下的随机4K读写速度,Anvil’s Storage UtilitiesSSD可以测得队列深度QD4、QD16下的随机4K读写速度。ATTO Disk Benchmark则主要是测SSD的最高持续读写速度。
在AS SSD Benchmark测试中,浦科特M7VG的得分达到了1136分,Anvil’s Storage Utilities的得分为4552.60,这两个分数都与SATA接口的M7VC 512G非常接近,已经超过了大多数的中端MLC SSD,是目前为止我见过的跑分最高的TLC SSD。CrystalDisk Mark测得的持续写入速度达到了535 MB/s。在各个队列深度下的随机4K读写性能也都非常不错。目前TLC SSD最大的短板就是持续写入速度和深队列下的随机4K写入性能。而M7VG的理论性能测试成绩比之前已经算很强的OCZ Trion150系列还要好,这主要是得益于Marvell 88SS1074主控和更先进的SLC Cache机制。
测试成绩汇总对比与结果分析:
在上面几个软件的理论性能测试中,浦科特M7VG 256G的表现基本和SATA接口的M7VC 512G持平,可见基于SATA主控的SSD产品,不管是采用M.2接口还是SATA接口,其性能本质依然是SATA级别的,并不会因为采用了M.2接口就有量的提高。在与其他二十几款SSD的横向对比中,M7V依靠SLC Cache的爆发力,在SSD的常规五项测试中甚至超越了很多MLC SSD,很多测试成绩居然和浦科特3月新发布的M6S+非常接近。而且还有一点就是单队列的随机4K写入性能偏弱,很多测试中速度只有100MB/s左右,这个可能与主板M.2接口走PCH的延时较高有关系。整体来说,M7V的理论测试成绩已经是非常的不错,不仅完胜其他几款TLC SSD,甚至能够跻身中端MLC SSD的性能水平。不过这仅仅是理论性能测试,后面还有实际应用的测试。
接着进行满盘的性能衰减测试,按照惯例使用软件对M7V进行反复的大量数据写入,写满、删除、再写满、再删除。当M7V被反复填满数据后,再删除2GB数据以提供空间给运行CrystalDisk Mark使用。M7V即使在几乎100%空间被占用的情况下,依然能够保持接近空盘时的性能,这个应该得益于更加先进的SLC Cache机制和浦科特的True Speed技术。
由于TLC NAND的写入性能要低于MLC NAND,所以目前几乎所有的TLC SSD都采用了SLC Cache技术来提高测试成绩、改善用户使用体验。SLC Cache技术的原理其实很简单,就是把部分空间模拟SLC颗粒来运作,各个厂家的具体操作方式又各不相同,用于SLC Cache的空间大小设置也不同。
前面已经提到过,浦科特M7V系列中128G版本的SLC Cache空间为1.5GB,256G版本的SLC Cache空间为3GB,512G版本的SLC Cache空间为6GB。下面来对比一下M7V的SLC Cache机制。对比参照物选择的是240G的OCZ Trion150,因为Trion150同样非常强悍,而且SLC Cache空间大小的设置与M7V比较接近。OCZ Trion150采用群联S10主控+东芝原厂15nm制程的 TLC NAND颗粒,240G版本的SLC Cache空间大小约为4.5G。同样用于对比的还有SATA接口的M7V 512G(SLC Cache空间大小约为6G)。
下图是三个盘在测试数据模块分别设置为1GB、2GB、4GB、8GB、16GB时的CrystalDisk Mark测试图,左边为浦科特M7VC 512G(SATA),中间为M7VG 256G(M.2),右边为OCZ Trion150 240G。
在我以前测试过的TLC SSD中,当持续写入的数据模块大于SLC Cache空间大小时,持续写入性能就会出现断层式的下降,下降到TLC NAND的真实写入性能水平。而且此时主控会忙于尽快清理出更多的SLC Cache空间来供给测试使用,主控和缓存资源都被极大的占用,因此会影响到SSD的整体性能,尤其是深队列下的4K随机读写成绩。
当测试数据模块的大小设置为4GB时,虽然未达到OCZ Trion150的4.5GB SLC Cache空间的容量,但是Trion150的QD32持续写入速度和QD32随机4K读写速度已经出现了大幅度的下降。把测试数据模块的大小增加到8GB和16GB之后,Trion150的但单队列持续写入也同样出现了大幅度下降。再来看看M7V的表现,当测试数据模块的大小设置为4GB时,测试数据小于M7VC 512G的6GB SLC Cache,而大于M7VG 256G的3GB SLC Cache,因此M7VG 256G的主控开始要对SLC Cache空间进行清理,因此QD32的随机4K写入性能稍微出现了下降。而M7VC 512G的性能则变化不大。把测试数据模块的大小增加到8GB之后,测试数据模块已经都大于两款M7V的SLC Cache空间大小,但是两款M7V的性能下降幅度也并不大,尤其是M7VC 512G,性能下降非常微弱。而M7VG 256G的单队列持续读写和单队列随机4K读取性能下降的幅度就比M7VC 512G要大,此时SLC Cache空间大小的差距就体现了出来。当测试数据模块的大小设置为16GB时,M7VG 256G在性能上的下降幅度就比M7VC 512G要更明显一些。
通过以上的数据对比,基本上可以得出两个结论,第一是浦科特M7V所采用的Marvell 88SS1074主控在处理SLC Cache空间溢出时效率更高,在SLC Cache空间稍微不够用的情况下,主控通过及时的数据整理能够在很大程度上消除SLC Cache空间数据溢出对性能的影响。而当测试数据模块明显大于SLC Cache空间大小时(例如测试数据模块为16GB时)。Marvell 88SS1074主控表现出了很强的“救火”能力,虽然各项读写速度均有小幅度的下降,但是在QD32队列下的4K随机读写性能下降幅度明显要小于采用群联S10主控的OCZ Trion150。这个特点正好针对以往TLC SSD在遇到SLC Cache空间爆仓时出现深队列下随机4K读写性能暴降的缺点做了积极的弥补。第二则是针对浦科特M7V同系列的SSD,容量越大其SLC Cache空间越大,在应付SLC Cache空间爆仓时的救火能力也就越强,因此如果预算允许的话,还是应该尽量购买更大容量的M7V。
PCMARK8是目前最接近实际使用环境的模拟测试软件,其中存储设备测试部分有游戏、办公、图形处理等几个项目,其测试成绩比前面常规五项的几个软件都更能真实的反映出SSD的实战性能。更确切的说,是在家用、游戏以及普通办公情况下的SSD实际性能。在反复满盘写入、删除后进行PCMARK8测试就更能够反映出一个SSD在长时间使用后的实际性能表现。浦科特M7V 256G M.2的总分为4921。这个得分明显比前面的常规五项更能体现M7V在二十几款SSD中的性能定位。
PCMARK8的测试数据量十分巨大,达到了几十G,远远超过了M7V的SLC Cache空间,其测试强度绝非前面几款软件可以相提并论的。很多在常规五项中表现出色的TLC SSD,一跑PCMARK8就被打回原形。M7V在PCMARK8中的表现也没有在前面的常规五项中那么凶猛,但依然是最强的TLC SSD。在和中低端MLC SSD的对比中,虽然小幅度落后于中端的MLC,但同样可以小幅度领先于低端MLC SSD。对比闪迪加强版这种使用超低端SMI 2246XT主控的廉价MLC SSD,除了在PhotoShop重载测试中稍微落后之外,其他测试项目全部完胜。
从测试结果中可以看出,依靠Marvell全新的88SS1074主控+东芝原厂15nm eTLC NAND颗粒,TLC SSD在性能上已经获得了不小的提高,更先进的SLC Cache机制使得TLC SSD在性能上干掉低端MLC SSD成为现实。
这部分测试主要从平时的实际应用中来测试浦科特M7V的性能表现。Windows系统的启动时间和游戏的加载时间上,M7V已经和很多中端MLC SSD持平。Photoshop的加载测试中,M7V落后于中端MLC SSD的幅度很小,而且依旧领先于TLC SSD和低端MLC SSD。
一个硬件的做工用料好,是物质基础,而如果要用得舒心,那么配套软件也很重要,这就是所谓的软件附加值。软件是用户和硬件之间交互的桥梁。比如我测试平台中的华硕M8F主板,之所以敢卖那么贵,除了主板本身的品质之外,配套的软件也有很高的附加值,非常方便的就可以在系统里使用超频软件对CPU频率、内存频率和时序、风扇转速、各部分电压等各个超频参数进行调整。
现在很多知名品牌的SSD都附带有很好的配套软件。M7V和浦科特的高端产品一样,都能够支持PlexTurbo、PlexCompressor、PlexVault 这三款浦科特自家的SSD 应用软件。浦科特SSD通用的Plextool软件就不用多介绍了,能够监测SSD信息、读取SMART数据、进行Trim优化、SecretErase、固件升级等操作。
PlexTurbo之前只针对浦科特的高端SSD开放,现在M7V也同样能够使用。PlexTurbo以系统内存作为SSD的缓存,从而实现系统加速及减少NAND写入量的目的。PlexTurbo软件可以自由设定用于SSD缓存的系统内存大小和内存数据写入SSD的间隔时间。当交换的数据量小于内存缓存的时候,读写操作其实都是在内存内部进行,只有达到预定的释放时间后数据才会被真正写入SSD中。因此测得的SSD性能非常强劲(其实测的是内存),而且这样能够减少NAND的写入量,延长SSD的寿命。这个功能对于系统内存在16GB以上的用户比较实用,而且用在TLC SSD上我觉得比MLC SSD更有意义。
PlexCompressor是一套智能压缩软件,可以通过压缩文件来变相增加SSD存储空间。这个功能我本人基本用不到,因为我的SSD无论从数量和容量上都绝对够用。PlexVault则是一个加密软件,与之前的很多U盘加密软件原理一样,在SSD上划出一部分空间作为隐藏分区,平时这个分区在电脑里不会显示出来,等到需要访问的时候就按下快捷键,在弹出的对话框中输入正确的密码之后,“我的电脑”里就会出现隐藏分区的盘符。不过有两点需要注意,第一是一定要用浦科特的SSD作为系统盘才能够启用这个功能,第二是容量有限制。
因为Marvell 88SS1074是SATA主控,所以无论M7V是采用M.2接口还是采用SATA接口,其性能都是SATA级别的,只是接口不同而已。SATA接口的M7V具体型号为M7VC,M.2接口的M7V具体型号为M7VG。在性能上,M7VC=M7VG。现在相同容量的M7VG比M7VC稍微贵一点,但是在性能上是没有差别的,唯一的优势就是可以直接安装在主板上,省去走线的麻烦,所以大家应该根据自己的具体需要来购买。
从前面的各项测试中可以看出,浦科特M7V可以称得上是目前为止最强的TLC SSD。整体性能小幅度落后于中端的MLC,但是对比低端MLC SSD和其他TLC SSD有一定的领先优势。依靠Marvell全新的88SS1074主控+东芝原厂15nm eTLC NAND颗粒,TLC SSD在性能上已经获得了不小的提高,更先进的SLC Cache机制使得TLC SSD在性能上干掉低端MLC SSD成为现实。在PCMARK8的存储子项目测试中,对比闪迪加强版这种使用超低端SMI 2246XT主控的廉价MLC SSD,浦科特M7V除了在PhotoShop重载测试中稍微落后之外,其他测试项目全部完胜。这一点也说明TLC SSD的用户群应该是普通的家庭用户,在家用、游戏和小型办公的使用中,M7V已经接近甚至不逊于中端的MLC SSD。不过M7V依然无法完全摆脱TLC SSD在高负载下性能较弱的缺点。
现在像浦科特M7V这样的高端TLC SSD定价其实与低端MLC SSD是基本持平的。那么预算相对较少的用户,应该如何在两者间进行选择?从性能特点上来看,浦科特M7V依靠Marvell 88SS1074主控+更先进的SLC Cache机制在性能上比以往的TLC SSD提升了一个档次,在家用情况下干掉低端MLC SSD已经不是问题。但是使用寿命这个问题依然是TLC SSD最大的硬伤。即使采用了企业级的eTLC NAND,但是PE数也只能提升到2000,比起MLC NAND的3000-5000 PE仍有不小的差距。所以,用户在高端TLC SSD与低端MLC SSD之间的选择,其实就是性能与理论寿命之间的选择。高端TLC SSD性能>低端MLC SSD,高端TLC SSD理论寿命<低端MLC SSD。而现在的低端MLC SSD,为了缩减成本以降低价格,很多都是采用超低端主控+正片NAND(例如某迪加强版),或者低端主控+白片NAND。如果要我选择的话,我自己会选择高端TLC SSD,因为性能的优势是现在马上可以感受到的,而寿命问题,其实还是一个未知数,eTLC NAND在理论上的寿命短于MLC NAND,而在实际使用中需要多少年才能用完2000的PE数?到时又有什么黑科技产品出来替代SSD都还不知道。所以我的建议是,预算充裕的话,绝对是考虑中高端名牌MLC SSD,而在预算比较有限的情况下,考虑大厂高端eTLC SSD比考虑低端MLC SSD要更实际一些。
*请认真填写需求信息,我们会在24小时内与您取得联系。