
Kernel的研究。此研究的目的是不仅仅让所有用户正常使用的应用程序(也就是用户空间)利用现代图形处理器(GPU)的强大功能,也让linux
内核的部分(也就是内核空间)能直接运行在GPU上。
在其项目主页上写到:KGPU(即kernel和GPU的合体)的想法是把GPU当成 *** 作系统的协同处理器,允许在linux内核中进行数据的并
行计算。这样允许我们使用SIMD(或者CUDA中的SIMT)风格的代码来加速linux内核功能,让之前认为太过于密集的计算功能进入内核。简单来
说,KGPU为内核增加了矢量运算功能,另外,它是linux内核真正地开始并行化,不仅仅是处理多个并发请求,而且将大的数据计算请求分割到开来,
将这些计算平铺到GPU上大量的核心中。
听起来是一个很新奇的概念,这目前仅是个研究项目,这个KGPU项目离可见的发规模应用还有一些限制因素。最大的问题是,目前linux
内核DRM(Direct
Rendering
Manager)子系统中的开源图形驱动都无法支持GPGPU。虽然目前有OpenCL
Gallium3D
state
tracker
+Clover的计划,但是还远远没有准备好。
因为目前研究使用的是Compute
Unified
Device
Architecture,而且使用NVIDIA最新的闭源专有驱动,故只支持Nvidia的硬件架构。所以更好的选择是拥抱工业标准OpenCL,这样
都对AMD和NVIDIA的GPUs都有很好的支持
在目前KGPU的研究进程中,研究人员已经用GPU-加速的AES密码来加密eCryptfs文件系统,展示了GPU可以用来处理加密技术。
这是KGPU的的Google
Code
page主页。当然还有GitHub。
总结:利用GPU加速linux内核肯定是件很有意义的事情,但是开源的内核图形驱动一定要改善和提高,能够处理OpenCL
和/或GPGPU.
GPU虚拟化支持 virtual gpu 的代码开始汇入主线程。
这部分代码主要由两部分组成:
首先, mediated 设备框架(mdev),基本上,这部分代码使得内核驱动开始用vfio框架跟接口来支持虚拟pci设备。nvidia 以及intel都采用了这种所谓的mdev机制,将宿主机中的物理GPU分割成多个虚拟设备,以便供多个虚拟机同时使用。
第二个, intel 的i915驱动也是采用了mdev初始化支持,当然仍然有很多工作需要去做,例如不能直接登录虚拟机的显示画面,所以必须通过客户机中安装x11vnc或者类似的vnc工具,也有一些稳定性的问题需要解决。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)