メインラインLinuxカーネルはGPGPUプログラミングを可能にしますか?

メインラインLinuxカーネルはGPGPUプログラミングを可能にしますか?

Linuxカーネルに一般的なGPUサポートがありますか?

このトピックは非常に広範なので、より詳細に説明します。そして「能力がある」とは基本的なサポートを意味します。 OpenGLとOpenCLは、ユーザーモードでアプリケーションを作成するのに役立つAPIなので除外されます。

いくつかの一般的な誤解は、スーパーコンピュータがGPGPUを使用してLinuxを実行しているため、LinuxがGPGPUを使用していることです。まあ、まさにそうではありません。スーパーコンピュータで実行されるLinuxディストリビューションは、私たちが知っている正規ディストリビューションとは異なる場合があります。これまでは、もはやLinuxではなくまったく新しいオペレーティングシステムになるように修正されました。

もう一つのよく知られた答えはGPUのサポートが悪いかもしれません。まあ、ボトルネックであれアーキテクチャのような他の要因であれ、そこに行き、他のすべての要因を排除しないでください。

質問を再現してみると、次のようになります。

メインラインLinuxカーネル自体がGPUの汎用レジスタを介したストリーム処理を利用していますか?それではどのくらいですか?

ベストアンサー1

カーネルが何百ものGPUレジスタを仮想化してコンテキストに切り替える必要があるという考えはひどいです。カーネルにはプロセス間のGPUリソ​​ース共有を管理するコードがあり(より多くのコードがカーネルに着実に移行している)、計算のためにGPUを共有するプロセスはopenclやcudaなどを介して行われますが、GPUコンテキストの切り替えは行われません。上記のように、すべてのCPUスレッドに接続されます。私はGPUが完全に独立して実行され、ある種のバスレポート、CPUへのレジスタ読み出し、または割り込みなどを介して結果を報告していると強く疑っています。

おすすめ記事