2013-07-14 43 views
0

在具有多個GPU的SUSE計算機中,是否可以快速並以編程方式確定顯示哪些GPU(或多個GPU)?哪個Nvidia GPU正在顯示? (SUSE)

目標是自動檢測符合/可用於調試的卡。

(人們不能被呈現在顯示卡上使用CUDA-GDB,並猜測是...不雅。)

回答

2

非編程,就可以使用NVIDIA控制面板(如果你有一個正確的NVIDIA GPU加載的GPU驅動程序,您應該在終端啓動控制面板just be able to donvidia-settings),以確定哪個GPU連接和/或渲染到哪個顯示器。

以編程方式,它有點複雜,因爲你必須通過「顯示」來定義你的意思(以編程方式)。但是作爲一個例子,如果你只有一個顯示器(因此你不知道哪一個是你想要的),你可以使用NVIDIA API nvidia-settings is built on(NVCtrl)來獲取信息programmatically

使用CUDA 5.5,您可以在渲染顯示器的GPU上使用cuda-gdb,但需要cc 3.5或更高的GPU以及some extra setup

我想另一種方法(可能是最簡單的,在程序上)將使用NVML功能nvmlDeviceGetDisplayMode

NVML是公用事業nvidia-smi是建立在API。因此,您也可以手動查詢設備的顯示模式。

由於您已編輯以指示編程方法,我認爲我建議的第一種方法是NVML方法。如果您沒有其他選擇標準,則只需循環顯示GPU,直至找到禁用顯示模式的選項。如果你想確定特定的GPU已禁用顯示模式,請確保從你的特定發行版中排除your X configuration(例如,確保它在許多Linux發行版中並未在xorg.conf中引用)

+0

最終目標是程序化方法。我將編輯該問題以反映這一點。 – Novak