解决什么问题?
如果你是一个有机器学习或其他视频处理的需求,并且习惯了用Mac或其他笔记本来工作的人,那么本文章也许对你有一点点用。我就是这样的人,这篇文章大致记录下我是如何解决这个问题的。
整体解决方案描述
考虑因素
为了解决问题,首先我必须要梳理出解决这个问题必须具备的前置条件。需要的前置条件如下:
- 一张能够支持进行机器学习的显卡;
- 能够方便试错的环境;
- 能够在不同操作系统平台下进行学习验证。
一张能够支持进行机器学习的显卡是必须的硬件,否则运行很多模型都无法完成。能够方便试错的环境是针对初学者,学习的过程一定是一个试错的过程,包括环境构建错误,接口版本错误,编译环境错误等等一系列错误。能够在不同操作系统平台下进行学习验证主要为了应对不同平台例子的考虑,有些作者会偏好某个平台,并且例子需要在某个特定操作系统版本进行编译。
除了最必须的前置条件外,还有一些其他值得考虑的因素。 - 能够远程访问;
- 最好能够应用于其他目的,例如其他编程语言学习。
解决方案
基于以上考虑因素,我最终的解决方案如下:
上图中有三个部分:EXSi服务器,路由器,Mac Air。我先对方案进行描述,然后再简单补充说明方案思考的演化过程。
EXSi服务器:是本方案的核心,将家里所有的环境都放到这个服务器中。在进行机器学习的VM中,使用显卡直通技术,将显卡分配给虚拟机。
路由器:负责将EXSi服务器暴露给内网其他电脑,以及外网其他电脑。为了简单,我只是对服务器的https接口进行了端口映射,这样在外网就可以通过网页以及vmware远程客户端进行访问,足以满足大部分场景需要。
Mac Air:是我的工作电脑,主要负责工作中的开发工作,以及链接EXSi服务器,进入远程电脑。
方案演化史
在最初的方案中,服务器运行的是一个Windows Server服务器操作系统,使用中也没有太大问题,但我心里觉得特别难受,原因是老感觉服务器资源被无缘无故的消耗了(其实并不多)。所以,我坚信一定存在某个方案,构建一个非常轻量级的管理层,对硬件进行抽象管理,再在这一管理层上进行各种操作系统的管理。经过各种搜索,终于发现EXSi就是我想要的,它对资源消耗非常低,几乎将所有硬件资源都能分配给虚拟机,效率非常高。
从这一点上来说,信仰是力量的源泉。
显卡直通
在本方案中,有一个重要的设置就是显卡直通。我主要参考了这个文章:
https://blog.51cto.com/u_5001660/2483307
文章中将的比较清楚,但还是折腾了很久。原因是我按这个操作步骤执行后,安装Win10虚拟机,并没有在设备管理器中看见对应的显卡设备,所以我觉得是自己操作步骤存在问题,反复多次,修改多个不同设置,最终结果依然一样,没有看到显卡设备。在这个情况下,我想自己操作步骤应该是正确的,那么一定是哪里设置错误,或者只是显示不正确,基于这样的思路,所以考虑先进行显卡驱动安装,结果发现,显卡驱动安装成功后,显卡就出现在了设备管理器中。