GPUを使用したLinuxカーネルの高速化

NVIDIAが一部スポンサーとなっているユタ州立大学の研究は、GPUアクセラレーションを使用したLinuxカーネルアクセラレーションの研究を目的としています。 研究者は、ユーザーのアプリケーションに今日の高度なGPUの驚異的なパワーを活用させるのではなく、GPU上で直接実行することでLinuxカーネルの一部を高速化したいと考えています。



調査のページから:「KGPUプロジェクトのアイデアは、GPUをLinuxカーネル内での並列コンピューティングを可能にするオペレーティングシステムのコンピューティングコプロセッサとして考えることです。 これにより、SIMD(またはCUDAのSIMT)を使用してLinuxカーネルの機能を高速化し、以前はカーネルにとって計算負荷が高すぎると考えられていた新しい機能を導入できます。 簡単に言えば、KGPUプロジェクトはカーネル内でのベクトルコンピューティングを可能にします。」



さらに、「Linuxカーネルを完全に並列化できます。複数の要求を同時に処理するだけでなく、1つの大きな要求された計算をパーツに分割し、GPUの多数のコアを通じてこれらのパーツを配布します。」



これは新しい概念のように聞こえますが、この段階ではより研究プロジェクトです。 原則として、予見可能な将来の主な方向性を生み出すプロジェクトのリストからKGPUプロジェクトを除外するいくつかの要因があります。 大きな問題は、LinuxカーネルDRMサブシステム(Direct Rendering Manager)でサポートされているオープングラフィックドライバーが、GPGPUをまだサポートしていないことです。 状態追跡機能を備えたOpenCL Gallium3Dオープンコンピューティング言語のサポートが計画されていますが、すぐには準備ができていません。



もう1つの問題は、この進行中の作業がLinuxカーネルのみに焦点を当てており、GPUでのCUDAの使用を奨励していることです。 この作業はNVIDIAが後援しているため、大学は、最新の専用ドライバーを使用してNVIDIAハードウェアでのみサポートされるソフトウェアおよびハードウェアアーキテクチャに切り替えました。 最良の選択はOpenCLです。OpenCLは、AMDおよびNVIDIA GPU、およびオープンプロダクションレベルで実行できるオープンソースコンピューティング言語です。



現時点では、KGPUプロジェクトの開発中に、暗号化されたeCryptfsファイルシステムで使用するGPUアクセラレーションAES暗号があります。これは、最新のGPUが暗号化とうまく連携できることを考慮した有望な結果を示しています。



GPUを使用してLinuxカーネルを増やすためにKGPUプロジェクトについて詳しく知りたい場合は、Google Codeソフトウェア開発者向けのサービスをご覧ください。 GitHubのプロジェクトと共同開発をホストするためのソースコードもWebサービスで利用できます。 Linuxカーネルが最新のGPUが提供する処理機能をどのように使用し始めるかを見るのは興味深いでしょうが、まず、オープンカーネルドライバーを改善し、オープンコンピューティング言語OpenCLおよび/またはその他のGPGPUインターフェイスを処理できるようにする必要があります。



All Articles