2014-01-28 102 views
0

我需要檢測GPU(視頻卡)並設置適合GPU性能的應用程序設置。 我可以爲每個GPU模型設置一個列表,但我不明白如何輕鬆檢測在PC中安裝的GPU模型。自動檢測GPU

解決此任務的最佳方法是什麼?有沒有辦法做到這一點不依賴於安裝的驅動程序/一些軟件?

+3

由於新GPU經常發佈,我不會建議維護這樣的映射。爲什麼不測量你的菜單屏幕的FPS,並用它來決定推薦什麼設置? –

+0

這不是一個電子遊戲。我從我的應用程序啓動一個使用GPU進行計算的庫。 –

+0

所以有一個自動檢測程序運行一些內核並測試速度。 –

回答

0

以上評論由本Voigt總結:只是不要做

查看是否支持您最喜歡的計算API(OpenCL或其他)的最低版本,如果存在所需的擴展,請編譯一些內核,並查看是否會產生錯誤。運行內核並對它們進行基準測試。詢問API有多少本地/全局內存可用,它支持哪些規格,等等。

如果你真的堅持要檢測GPU模型,就要爲出現問題做好準備。有兩種方法可以做到這一點,一種是解析圖形卡廣告的人類可讀名稱,這是馬上要求麻煩(因爲許多差異很大的卡片將宣傳相同的人類可讀名稱,並且有些型號名稱甚至包括關於他們的架構世代!)。
另一種,略微更好的方法是找到供應商/型號ID組合,並尋找那一個。這工作稍微好一些,但同樣痛苦和容易出錯。

當您撥打EnumDisplayDevices時,您可以從結構中的「密鑰」字符串中解析這些供應商和型號ID。如果我沒有記錯的話,微軟稱之爲「保留」,換句話說,這是一種不受支持的/無證的。

找出廠商仍然是相對容易。供應商ID爲0x10DE是nVidia,而0x1002是AMD/ATI。英特爾是0x163C。但是,有時很少,一個便宜的OEM將會公佈自己的ID。

然後你有那種毫無意義的型號(它不像是更大的數字更好,或者其他明顯的規則!),你需要查找某個地方。 nVidia和AMD正式發佈這些文件,但它們並不總是最新的。曾經有一段時間,nVidia的名單缺少近一年的最新款(雖然我剛剛下載的名單似乎已經完整)。我不知道包括英特爾在內的其他製造商是否持續這樣做。
在Google上花費一些時間會導致您訪問類似this one的網站,這些網站不是「官方」的,但可能允許您以痛苦的方式找出大部分內容。

然後,你知道模型,你幾乎沒有獲得任何東西。你仍然需要把它翻譯成「足夠滿足我想要的」或「不夠好」。
您可以簡單地通過編譯內核並查看沒有報告錯誤並運行它們來找到它。

你在做什麼6個月當3個新GPU模型發佈你的應用程序後顯然不知道這些已經發貨?你如何對待這些?