[转载]SSD的实用普及知识

原创:James007ss,原文地址: http://bbs.pceva.com.cn/thread-20304-1-1.html

——————————————开始分割——————————————————
本文是给刚涉足SSD,对SSD毫无概念或不甚清楚的朋友观看,如你难以理解那些高深的技术性理论,那看看这篇M记式文章,或许会知道不少有用的东西。

一:SSD的优势与劣势

    SSD的优势最简单的表达方法就是:快,但有不少人对这个优势的理解并不充分,甚至有所误解,很多人认为SSD的快只表现在开、关机及运行程序上,不错,这几个是表现得最明显的现象,但却流于表面。正确的说 SSD的快是表现在对随机数据的读取和写入上,一般用户不需要纠结什么是随机数据,什么不是。只要记住,我们平常对硬盘的读写操作,绝大部分数据都是随机数据就可以了( 这里要区分清楚,文件由数据组成,但数据不单只是文件)。在当今CPU和显卡性能已能完全满足一般应用的情况下, PC系统的最大瓶颈在于硬盘的读写速度(最主要指的就是随机数据读写速度),而普通的HDD(机械硬盘)限于其设计无法突破此瓶颈,SSD就成为现在突破瓶颈的最佳选择了。

    有不少已经用上SSD的用户可能会说,我觉得换SSD后,跟以前用HDD时的速度没快多少啊,最多就快个几秒而已。不错,单就某一个操作的情况确实如此,但可有想过,你每天做的所有事,每件都省几秒,累积下来那等于省了多少时间呢?要注意哦,只要读写操作是涉及SSD的,都必定会节省到时间。比如你运行个PS 当你不爽的时候用HDD打开你会想:‘我嚓,怎么还没打开’ 如果是SSD,很可能你还没想到用什么词来喷,它就已经让你动手开工了。

    说完优势,再说说劣势,SSD的劣势一般用户都知道的有2个:容量及价格,但其实还有一项是大多数用户都没能对其有正确认识的,那就是数据安全性。容量的劣势很明显,SSD目前大多用户能购买的容量都在100G或以下,对比HDD动辄以TB算的容量那是毫无优势可言,价格亦一样,同容量比HDD高得多的售价当然也是劣势。下面来说说为什么数据安全性也是SSD的劣势呢?并不是说SSD的质量不行,发展至今,SSD的质量已经相当可靠,但SSD的数据安全性不及HDD,是天生的,因为SSD采用闪存作为储存媒介,一般用户只需要知道,到目前为止, 闪存恢复数据的难度比HDD要困难得多。即SSD和HDD遇上相同的数据丢失灾难,HDD上的数据更容易被救回来。

二:SSD寿命的误区及正确认识

    看完第一部分应该有用户会问了,那SSD的寿命问题呢?这是很多用户关心的问题,但这里先给大家一个观点: SSD的寿命问题现在根本不是问题。理由如下:首先作为SSD核心储存零件的闪存具有擦写次数的问题,这也是所有用户会担心寿命问题的根源,闪存擦写一次叫作1个P/E,因此闪存的寿命也用P/E作单位,上1代的闪存寿命按官方公布是5000个P/E,而现在最新一代的寿命是3000个P/E,所以很多用户直觉的认为这寿命不是比原来少了2/5?理论上是这样不错,但大家都忽略了一个情况,就是新款的SSD所采用的技术,相比旧款的,能减少更多不必要的写入量。来一个具体的例子:以一款120G的SSD为例,一般用户普通正常使用的情况下,每个月消耗的写入量不会多于35个P/E,大家可以算算3000个P/E能用多少个月,相信到那时候,这SSD早就被替换掉了。

    其实对于SSD来说,在厂商承保时间内,一般固件出问题而导致需要申请保修的情况比因为颗粒损坏而要保修多得多。因为固件是否优秀不单直接影响SSD的性能,更决定了SSD在遇上突发状况时能否正确处理而不出错。

三:如何选择适合自己的SSD

    很多初次接触SSD的用户跟任何刚接触DIY产品时一样,被各种厂商的广告、宣传数据晃的眼花缭乱,不知道该如何选择。这里我也先说个固定的观念: 厂商的广告都是忽悠的,请无视。有人会问,不看厂商的数据,看什么呢?其实说真的,我也不知道该叫大家看什么,因为即使是国内网上的媒体,也鲜有能正确评价SSD真正实力及各款SSD间具体差异的文章出现。那大家又该依靠什么来选择呢?我先说个情况,现在市面上的SSD,除了那些特别垃圾的型号,其它SSD的实际性能差距,对用户使用上的影响都极微。也就是说,只要你选择购买SSD, 性能数据方面没有需要过分关注。不关注性能要关注什么呢?从前两部分的说明,聪明的大家应该已经注意到了, 要关注的是稳定性。

    关于SSD的稳定性,我引用royalk 评测M4中的一句话:‘ 因此P/E值虽然有所下降,但是也不会对使用寿命造成太大影响,但是,这也从一方面告诉我们,采用原厂颗粒是非常重要的!’现在主要生产SSD用闪存的企业基本就3家三星、东芝和INTEL/镁光的合资厂,所以他们自家出的SSD,用的闪存质量自然可靠(自己生产的嘛)。除了闪存外,还有就是固件,即使SSD采用同样的主控方案, 固件好坏对稳定性(包括兼容性、使用状态等)的影响也很大。

    罗嗦了大堆,说点实际的,现在国内比较方便买到,稳定性也好的SSD,其实就是INTEL和镁光的了。前者最新的320系列已经升级5年保修(保修服务也算无话可说的,电话沟通好有人上门取件),后者的产品在世界范围内的返修率是最低的。至于购买多大容量的产品,个人建议不要小于64G,若预算足够,120G等级的是最具性价比的。当然你若是米人,资金充足自然可按需选择容量更大的产品。

    再补充些数据说明来让大家更好的理解为什么不需要在意测试成绩。现在最新推出的PC MARK 7整机性能评测软件,可说是我们唯一能用到在测试中模拟出最接近实际使用情况的测试软件,大家不妨留意下各款SSD在不同情况下它的磁盘测试成绩,从出厂态到我说的稳定态,在PCM7的测试中,磁盘成绩的差距基本都在20%以内,而一般用户使用情况甚至没有PCM7厉害,差距理所当然更少。而很多其它测试软件都突出SSD的多QD(多任务)性能,但这方面对我们来说也是浮云,除非我们在家里搭建服务器,否则即使开再多的程序,它们依然是1个个排着队工作而非好几个一起干活的。不过若你是跑分党,喜爱看到自己的硬件跑出过人成绩,可以直接无视我以上这段话。

四:SSD使用注意事项及优化要点

    SSD买来后如何使用呢?相当不少的用户对SSD的抗拒感来源于使用SSD比HDD要麻烦,觉得这样不行、那样不行,甚至还会有性能下降的问题。 记得上面我说不要看厂商的广告了吗?原因就是厂商公布的性能数据,都是在SSD无写入任何数据为全新的空盘时所测试获得的,这种状态的SSD,在专业术语上叫作出厂态,而当SSD开始使用后,随着使用时间的增长,性能会慢慢下降,直到达到某个程度后就不会再降,这时的状态术语叫稳定态,而此时性能数据,其实才是SSD的真实性能数据。但随着主控及固件越来越先进,一般用户越来越难把SSD用到出现稳定态,表象就是相同使用时间内性能下降的幅度越来越小。因此我们只要选择对产品,性能下降的问题其实也不是问题。但使用SSD确实有几个地方需要注意:

1: 注意分区对齐,使用WIN7系统的用户,只要使用原版WIN7引导安装,安装时使用WIN7自带的分区工具进行分区就会自行对齐,不需要用户干预。若不是使用WIN7,现在也有很多第3方工具提供分区对齐的功能,用它们分好区再安装系统就好。

2: 开启AHCI模式,使用SSD,必须记得在主板BIOS内开启AHCI模式,因为AHCI中的NCQ特性对SSD至关重要,若你的PC太旧没有AHCI模式的话,我个人建议你不如等攒到足够的钱,整个平台更换更好。

3: 开启TRIM支持,开启TRIM一般需要SSD、主板芯片驱动、系统同时支持才可以,现在的SSD和最新的驱动基本都支持,但系统方面,有些用户说我不用WIN7,不支持怎么办呢?那也不怕,最新的O&O Defrag 14版支持发送TRIM命令,系统不支持发送TRIM的用户可以用它来进行手动TRIM操作。

4: 对WIN7进行简单的优化,这里我偷懒一下,提供由neeyuese修改的绿色版INTEL TOOLBOX给大家,只要运行后选择SSD打开第1个功能,选择运行里面的第2项,就会帮你把系统优化好。

下载地址:(在卡顿问题说明文章里有下载)

另外建议大家额外关闭WIN7的搜索服务(Windows Search),那关闭这个后用什么搜索呢?个人推荐使用Everything这个软件来替代。

5: 关于部分SSD的卡顿问题,这个问题其实不是SSD引起的,而是现在主板的节能功能引起的兼容性问题,关闭相关的节能功能就能解决,是否会遇到也因人而异。下面neeyuese的这篇文章详细说明了此问题的成因及解决方法:

https://www.chiphell.com/thread-213802-1-1.html

6: 平时使用的注意点,其实没有,就正常使用好了,什么移走临时文件啦、虚拟内存也要搬啊等杂七杂八的要求,你愿意可以跟着做,不愿意不做也行,最多我多口说句,你总不会在1个才100G左右,又装了系统、软件、游戏的盘里下BT吧?直接下到你放数据当仓库的HDD上才对!另外就是鉴于我前面说过的数据安全性, 重要数据自己记得备份,否则脸丑时出了事,那就只得怨自己咯。

7: 如何备份系统,用WIN7的备份还原功能就可以,喜欢用GHOST的只要用 11.5.1以后的版本,就不用担心分区对齐的问题。

8: 部分SSD突发状况注意事项,有部分SSD(例如C300、M4),在出现 突发状况如突然蓝屏、认不到盘等后,有的用户可能会有经验,以为盘挂了,但通着电放一段时间,再重启后又复活了,其实这是因为这些SSD内部自带了修复功能,通电期间SSD会自行检测纠错。 所以大家遇到突发状况时,先不要急着重启,若SSD正在纠错,你重启只会令恢复的机会更小(因为人为又掉多次电了),会有人问那时硬盘灯没亮啊,这是因为SSD内部工作时根本没有数据对外传输,灯当然不会亮了。 必须记住:硬盘灯不亮不等于SSD没在工作,出状况时先冷静,通电放一会(一般30分钟够了)再重启看看。

    以上是本人自行总结的一些实用方面的SSD普及知识,鉴于本人知识有限,未免偏颇及有遗漏之处,欢迎大家拍砖讨论指点。
知识蒸馏(Knowledge Distillation)是一种迁移学习的方法,它可以将一个复杂模型的知识迁移到一个简单的模型中,从而提高简单模型的性能。在目标检测任务中,我们可以将一个复杂的目标检测模型的知识迁移到一个简单的模型中,从而提高简单模型的检测性能。 在以下代码实现中,我们将使用SSD(Single Shot MultiBox Detector)和MobileNetV2作为基础模型。我们将使用COCO数据集进行训练。我们首先在COCO数据集上训练一个SSD模型,然后我们将使用该模型的输出作为知识,将其迁移到MobileNetV2模型中。 我们将使用PyTorch深度学习框架来实现这个目标检测知识蒸馏示例。以下是代码实现的步骤: 1. 导入必要的库 ```python import os import torch import torch.nn as nn import torch.optim as optim import torch.utils.data as data import torchvision.transforms as transforms from torch.autograd import Variable from torch.utils.data import DataLoader from pycocotools.coco import COCO from ssd import SSD300, MultiBoxLoss from mobilenetv2 import MobileNetV2 ``` 2. 设置超参数 ```python batch_size = 32 num_epochs = 10 learning_rate = 0.001 weight_decay = 0.0005 alpha = 0.5 temperature = 8 ``` 3. 加载COCO数据集 ```python # 设置训练集和验证集的路径 train_data_dir = '/path/to/train/data' val_data_dir = '/path/to/validation/data' # 加载COCO数据集 train_dataset = COCO(train_data_dir) val_dataset = COCO(val_data_dir) # 定义数据预处理器 train_transform = transforms.Compose([ transforms.Resize((300, 300)), transforms.RandomHorizontalFlip(), transforms.ToTensor(), transforms.Normalize((0.485, 0.456, 0.406), (0.229, 0.224, 0.225)) ]) val_transform = transforms.Compose([ transforms.Resize((300, 300)), transforms.ToTensor(), transforms.Normalize((0.485, 0.456, 0.406), (0.229, 0.224, 0.225)) ]) # 定义数据加载器 train_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True) val_loader = DataLoader(val_dataset, batch_size=batch_size) ``` 4. 加载SSD模型 ```python ssd_model = SSD300(num_classes=81) ssd_model.load_state_dict(torch.load('/path/to/ssd_model.pth')) ssd_model.eval() ``` 5. 加载MobileNetV2模型 ```python mobilenetv2_model = MobileNetV2(num_classes=81) ``` 6. 定义知识蒸馏损失函数 ```python class DistillationLoss(nn.Module): def __init__(self, alpha, temperature): super(DistillationLoss, self).__init__() self.alpha = alpha self.temperature = temperature self.mse_loss = nn.MSELoss() self.ce_loss = nn.CrossEntropyLoss() def forward(self, outputs, labels, teacher_outputs): ce_loss = self.ce_loss(outputs, labels) mse_loss = self.mse_loss(outputs / self.temperature, teacher_outputs / self.temperature) loss = self.alpha * ce_loss + (1 - self.alpha) * mse_loss * self.temperature ** 2 return loss ``` 7. 训练MobileNetV2模型 ```python # 定义优化器和损失函数 optimizer = optim.Adam(mobilenetv2_model.parameters(), lr=learning_rate, weight_decay=weight_decay) criterion = DistillationLoss(alpha, temperature) # 训练模型 for epoch in range(num_epochs): mobilenetv2_model.train() train_loss = 0 for i, (images, labels) in enumerate(train_loader): # 将输入数据和标签转化为变量 images = Variable(images) labels = Variable(labels) # 计算SSD模型的输出作为知识 with torch.no_grad(): outputs = ssd_model(images) # 将SSD模型的输出作为知识,并将其转化为变量 teacher_outputs = Variable(outputs.data) # 将输入数据和标签转化为变量 images = Variable(images) labels = Variable(labels) # 前向传播 outputs = mobilenetv2_model(images) # 计算损失函数 loss = criterion(outputs, labels, teacher_outputs) # 反向传播和优化 optimizer.zero_grad() loss.backward() optimizer.step() train_loss += loss.item() # 计算验证集上的损失和精度 mobilenetv2_model.eval() val_loss = 0 correct = 0 total = 0 with torch.no_grad(): for images, labels in val_loader: # 将输入数据和标签转化为变量 images = Variable(images) labels = Variable(labels) # 前向传播 outputs = mobilenetv2_model(images) # 计算损失函数 loss = criterion(outputs, labels, teacher_outputs) # 统计验证集上的损失和精度 val_loss += loss.item() _, predicted = torch.max(outputs.data, 1) total += labels.size(0) correct += (predicted == labels).sum().item() # 输出训练日志 print('Epoch [{}/{}], Train Loss: {:.4f}, Val Loss: {:.4f}, Val Acc: {:.2f}%'.format( epoch + 1, num_epochs, train_loss / len(train_loader), val_loss / len(val_loader), 100 * correct / total)) ``` 8. 保存MobileNetV2模型 ```python torch.save(mobilenetv2_model.state_dict(), '/path/to/mobilenetv2_model.pth') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值