本文用到的工具(包括clover制作工具,Tesla p4驱动,配套cuda和cudnn)
注意,英伟达提供的最新驱动无法按照本文的方法改动,可以下载我提供的
链接:XXXXXXXXXXXXXXXXXXXXX/s/1mbthtpPwunfhUJSV5UImdg?pwd=gscv
提取码:gscv
本人因为最近研究深度学习,需要安装一个较高性能的计算平台,但是身为学生的身份囊中羞涩,并不能支持我购置顶级的硬件,我便把目光投向了性价比极高的老x79平台,其中遇上了不少坑,也前前后后折腾了一个星期,现在把我遇上的坑总结一下,希望能帮到和我遇上类似问题的人
众所周知,intel x79芯片组并不原生支持从nvme启动(华擎等品牌的翻新x79主板可以支持),但是对于服务器平台来说,安装nvme硬盘则需要另寻蹊径
注意,并非x79不支持nvme硬盘,只是不支持从nvme硬盘boot,nvme硬盘作为数据盘的话则可以直接支持
ps:x79平台一般没有nvme m.2接口(华擎除外)安装nvme硬盘从硬件上来说可以走pcie通道,淘宝上花十几块钱买个下图所示转接卡即可(nvme协议本身就走的pcie通道,所以转接卡甚至不需要主控,价格非常低廉)
目前,主流的x79芯片组从nvme启动主要有两种方式:
1.在bios中添加nvme模块,然后烧写bios(华擎的x79主板就类似这种思路,不过人家是自己就开发了添加nvme模块的bios)
2.使用可以正常引导的介质(如U盘,或者sata硬盘)引导启动grub或者clover之类的软件,然后再引导nvme硬盘中的内容
方法1需要改动bios固件,存在风险,而且我的服务器平台官方已经停止维护,故选择方法2
由于我的服务器具体型号为hp proliant dl360p gen8,不仅不支持nvme硬盘启动而且还不支持uefi,而nvme安装系统必须从uefi环境启动,所以我选择clover作为启动环境
clover是一个广泛用于安装黑苹果的工具,它支持legacy boot并且能虚拟出个uefi环境,并且支持nvme模块
安装clover的方法网上教程很多,这里不再赘述,强调几个点
1.安装了clover的U盘每次开机都要插在电脑上,所以尽量准备一个闲置的U盘直接永久接在电脑上(大小500mb以上就够)
2.安装clover到U盘以后,U盘的\EFI\CLOVER\drivers\off目录下有一个名为NvmExpressDxe.efi的文件,该文件为clover支持nvme硬盘的模块,需要手动复制该文件,如果你是legacy boot,则复制到\EFI\CLOVER\drivers\BIOS目录下,如果是uefi boot,则复制到\EFI\CLOVER\drivers\UEFI目录下,如果你不知道你是何种启动方式,你可以在两个目录下都放一份
如果你是家用平台或者安装了常规独显的服务器平台,那本教程就到此为止,你只需要进入pe将nvme硬盘设置为guid格式然后安装Windows(这里建议安装Windows10,因为win10自带nvme驱动),随后从安装了clover的U盘启动,clover就自动能认出来Windows系统,只需按下回车便可启动
如果你从安装了clover的U盘启动遇上了下图这种情况,那么恭喜你遇上了一个巨坑
先在这里说下本人选择的硬件
平台为惠普dl360p gen8 1u服务器
cpu为两颗志强e5-2689,8c16t ,单核3.6多核3.3,价格只需要70块钱,非常合适
显卡为nvidia tesla p10
重点来了,这颗GPU是nvidia出的专业计算卡,本身并不支持图像输出,没有任何图像输出接口,系统也不会把它认为是一块可以输出图像的显卡,所以,我的显示器是接在主板集成显卡上的
相信不少人使用服务器并不会给服务器配置独立显卡,显示器接在集成显卡上的并不是少数,所以,如果你们使用惠普gen8平台,大概率会和我遇上一样的问题
总之,我一开始以为是引导出了问题,因为本平台是不支持uefi启动的,而我怀疑我的clover版本不支持legacy启动,所以我尝试了数十个版本,但是无一例外都失败了(这里吐槽一下服务器平台,开机自检要整整4分钟,折腾启动问题频繁重启真的是精神污染,而且自检过程中风扇转速极快,声音和机场似的)
最后,我几乎翻遍了全网也没找到和我相似的问题,直到我在github上翻找clover的源码时(对,我到这个时候依然坚信我没有成功以legacy模式启动clover)在issues里发现了这样一篇求助
虽然型号不一样但是同属一代服务器,我如同抓住救命稻草一般点了进去
看来,问题就出在这个集成显卡上,于是,我去借了个亮机卡,接上
出现了clover的启动菜单
老泪纵横啊,折腾了一个星期,走了太多的弯路
但是,问题并没有圆满解决
先给大家看一下此服务器的布局
此服务器riser卡提供两个pcie插槽,一个16x一个8x
其中,红圈为Tesla p4显卡,绿圈为nvme硬盘
我成功在亮机卡的帮助下安装了Windows10以后,我便换上了Tesla显卡,然后开机
此时由于集显无法使用,此电脑没有任何视频输出接口,只能通过Windows远程桌面链接,于是出现的一个新的问题:
系统能成功启动,但是Windows远程桌面无法链接
问题所在比较明显,Tesla显卡并非常规显卡,不支持显示输出功能,也不会被系统认为是一个视频输出设备
所以,这台机器上,没有任何的显卡
换句话说,如果要显示画面,必须再接一个亮机卡,但是仅有的两条pcie插槽都占用了,貌似无路可走了
俗话说天无绝人之路,在研究的过程中,我又发现了一个帖子
此贴看上去似乎与我目前的困境毫无关联,但是嗅觉敏锐的同学已经注意到了游戏二字
不是说特斯拉显卡不支持显示输出吗?如何支持游戏?
研究了一下,原来,Tesla阉割的OpenGL和directx是软件阉割,只需要更改注册表,就可以让Windows把Tesla显卡作为显示输出途径
具体做法:注册表中的:
计算机\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318 中
AdapterType 的值修改为0
EnableMsHybrid 的值修改为1
那么问题来了,此操作需要同时安装硬盘,特斯拉显卡,亮机卡,然后给特斯拉打驱动再更改注册表。。。貌似又是死路一条?
不不不,都到这一步了岂有放弃的道理
最后的解决方案非常暴力:
先插上Tesla显卡和一个常规的sata固态,以传统的legacy模式在sata固态里面安装系统
安装系统后安装Tesla显卡的驱动,然后更改注册表,直到系统把Tesla显卡作为显示输出
插上亮机卡和nvme硬盘,插上sata固态,进入pe,将已经装好系统的nvme硬盘的c盘分区直接格式化(注意不是清空磁盘,efi引导分区千万不能丢)
直接把sata固态里面的c盘所有文件丢到nvme硬盘的c盘分区里面
注意:两次安装系统应该使用完全相同的镜像
等复制完成,拔下sata固态,然后从cloverU盘启动(希望你没有忘记打卡远程桌面链接23333)
随后通过远程桌面连接服务器:
可见,非常完美的运行在了nvme硬盘上,速度也跑满了该硬盘的极限
至于现在此显卡有了一定的游戏性能,也可以跑一下相关的测试
问题较为完美的解决了,此平台一共花了不到2500人民币(甚至还是狂潮中的价格,此显卡我花费1200人民币购入,实际最低值价格大约在800人民币),性能在同价位中绝对算佼佼者了,希望能帮到有类似需求的人
最后,附上我的配置单,想组类似平台的可以直接抄作业23333:
主板:惠普 hp proliant dl360p gen8
处理器:英特尔 Xeon E5-2689@2.60GHZ 八核*2
显卡:英伟达 Tesla P4 8GB
硬盘:Samsung MZVLB256HAHQ-000H1
本文用到的工具(包括clover制作工具,Tesla p4驱动,配套cuda和cudnn)
注意,英伟达提供的最新驱动无法按照本文的方法改动,可以下载我提供的
链接:XXXXXXXXXXXXXXXXXXXXX/s/1mbthtpPwunfhUJSV5UImdg?pwd=gscv
提取码:gscv
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |
200字以内,仅用于支线交流,主线讨论请采用回复功能。