由NVIDIA部分資助,Utah大學的研究人員進行中一項如何利用GPU來加速Linux 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.