質問: 専用のビデオカードを使用しているプロセスを見つける 私は単純なbumblebeeguiツールに取り組んでいます。その機能の1つは、現在専用のビデオカードを使用しているプロセスのリストを表示することです。今のところ、実行中のすべてのプロセスを一覧表示し、それらの親を確認します。親プロセスがoptirunの場合、このプロセスが専用のビデオカードを使用していることを意味します。問題は、プログラムがprimusrun program_nameで起動されている間、そのようなプロセスが呼び出されないため、これがprimusrunで機能しないことです。 primusrunによって起動されたプロセスまたは専用のビデオカードを使用しているプロセスを検出する方法はありますか?ありがとう。(これはプログラミング関連の質問であり、stackoverflowに属している可能性がありますが、コード例ではなく、これらのプロセスを見つける一般的な方法に興味があります)。
回答: gpuデバイスノードが開いているプロセス(fuser -v /dev/nvidiactlなど)を確認することはできますが、コストのかかる操作です(システムで開いているファイルの総数に比例します)。より効率的な(しかし実装が非常に難しい)アプローチには、おそらくネットリンクを使用してバンブルビーのセカンダリxに接続されたプログラムを発見することが含まれます。 xlsclientsは、接続されたクライアントではなくウィンドウを一覧表示するため、それをカットしませんでした。また、bumblebee固有ですが、デバイスノードを使用すると、primeオフロード用の個別のgpuユーザーを検出することもできます。このような質問には、遠慮なくbumblebee/primus課題追跡システムを使用してください。比較的あいまいなトピックなので、直接連絡すると回答が得られる可能性が高くなります。