之前的文章提到使用conda来进行AI开发环境的搭建,可以看出在主机(host)上搭建复杂的AI环境,有时非常耗费时间和精力。其实我们可以采用一种精简的方式,那就是使用虚拟化技术。
比如我们可以使用docker、kvm等虚拟化技术,从主机上创建特定的虚拟机。这样的虚拟机本身是包含AI开发环境的,也就是已经配置好的。比如docker的话有dockerfile,其他虚拟化方案有相关的虚拟镜像。这样直接用虚拟镜像就可以省去搭建环境的复杂过程。当然,虚拟化还有很多其他方面的好处,比如安全、方便自动运维等等。
为了方便对人工智能服务器进行自动管理或者实现某种特定功能,我们需要对显卡进行虚拟化。对于显卡这种硬件而言,英伟达有专门支持GPU虚拟化的显卡,比如GRID GPU系列。以NVIDIA GRID K2为例,显存8GB,可虚拟出2块GPU。不过这种自带虚拟化功能的显卡,价格都非常昂贵。
对于GTX系列的显卡,如果Host主机为linux系统,想将显卡给虚拟机(windows或者linux)使用,则需要用到GPU透传(GPU passthrough)技术。目前这方面的资料非常少,断断续续摸索了两周,GTX TITAN X显卡透传终于成功了,上图: