GPU虚拟化

GUP虚拟化

目前,有多种软件技术方案可以实现GPU虚拟化,通常可分为内核态虚拟化和用户态虚拟化两大类。本文将主要讨论这两类方案的区别,为后续分享GPU远程调用做准备。 

以英伟达的GPU为例,应用到硬件从上至下分为用户态、内核态、GPU硬件三个层次。

用户态层:用户态是应用程序使用CUDA API来编写并行计算任务,并通过调用CUDA API与GPU用户态驱动进行通信。

内核态层:主要运行的是GPU的内核态驱动程序,它与操作系统内核紧密集成,受到操作系统以及CPU硬件的特殊保护。

硬件层:这个就是硬件虚拟化,类似于 Nvidia MIG.

用户态

用户态虚拟化:利用CUDA、OpenGL等标准接口,对API进行拦截和转发,对被拦截的函数进行解析,然后调用硬件厂商提供的用户态库中的相应函数(见下图)。

经过API拦截之后,用户态虚拟化方案还可以利用RPC的方式进行远程API Remoting,即CPU主机可以通过网络调用GPU主机的GPU,实现GPU的远程调用。

这个技术方案拥有几个优点:

1、CUDA、OpenGL等接口都是公开的标准化接口,具有开放性和接口稳定性。

2、因为该方案运行在用户态,可以规避内核态代码过于复杂容易引入安全问题。

3、由于该方案工作在用户态,从部署形态上对用户环境的侵入性最小,也最安全。

4、可以支持统一内存接口,然后就可以借用主机内存。

这个方案也有缺点:

1. 相比于内核态接口,用户态API接口的数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值