2013-12-16 81 views
0

我寫了一個標杆應用程序(http://www.headline-benchmark.com),利率顯卡,但我的問題是,我使用GL_STRING OpenGL的API獲取顯卡的名。對於NVidia顯卡來說,這樣做效果不錯,但對於AMD顯卡來說,我得到了像「R9 200系列」這樣無用的命名,它將當前映射到四個完全不同的顯卡上。我已經嘗試使用OpenCL API獲取更多卡信息(例如計算單元的總數),因爲我可以使用它來消除AMD卡的歧義,但OpenCL很容易在舊系統上崩潰,所以我寧願躲開它。有沒有我可以使用的OpenGL API的功能,可以給我更多有關這些卡的細節?或者AMD確實提供了我可以利用的任何種類的診斷命令行工具?方法獲取GPU信息OS或OpenGL API

回答

1

你在找什麼樣的細節?

由於您使用的基準工具,我會建議使用AMD的ADL API。這與NV的NVML API大致相同,它們都會讓你獲得內存和GPU時鐘以及GPU負載百分比。請注意,如果你想使用這些信息,你應該在你的基準測試正在全面開展時進行查詢,因爲現代GPU在閒置負載時縮減了它們的時鐘速率。

AMD也在最近發佈了一個新的API,稱爲AGS比ADL複雜得多,並可能給你你正在尋找的信息。不幸的是,我還沒有機會使用它。 ADL主要用於電源狀態管理,但仍然有用(特別是因爲它與AGS不同,它是跨平臺的)。

+0

這是非常豐富的。不過,我使用Java和我的體型,我就需要建立每個平臺我支持原生代碼的二進制文件,這將真正複雜。另外,我試圖避免專有的API。順便說一句,我需要的olny信息是GPU的名字(我能「的Radeon R9 200系列」從OpenGL的,但我需要「的Radeon R9 290X」)。 Catalyst Control Center是否有一個命令行 - 它似乎但我找不到任何文檔。 – Ags1

+0

@ Ags1:我回到了我的代碼庫,並記得還有擴展名:'GLX_AMD_gpu_association'和'WGL_AMD_gpu_association',它們最初設計用來讓您選擇多GPU系統中的特定GPU來渲染,但卻按順序爲了支持這一點,他們必須創建一個更復雜的系統來識別GPU。所以他們創建了'glXGetGPUInfo'和'wglGetGPUInfo'。 –

+0

謝謝,這看起來像我需要的AMD特定的API。但爲什麼AMD不在正式的GL_STRING中提供正確的信息呢? – Ags1