ユーザーのビデオグラフィックカードに関する情報(GPUクロック速度、バス幅など)をチェックするソフトウェアを作成しようとしています。
TechPowerUp GPU-Zソフトウェアでこの情報を確認し、次の図に示すいくつかのSDKの名前を確認しました。
CUDA Toolkit 7 Nvidiaの場合 APP SDK AMDの場合
今私は2つの質問があります:
たぶん Win32_VideoController CLASSまたは GPUinformation Class が役に立ちます。
例:
using System.Management;
public partial class Win_Win32_VideoController : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ManagementObjectSearcher objvide = new ManagementObjectSearcher("select * from Win32_VideoController");
foreach (ManagementObject obj in objvide.Get())
{
Response.Write("Name - " + obj["Name"] + "</br>");
Response.Write("DeviceID - " + obj["DeviceID"] + "</br>");
Response.Write("AdapterRAM - " + obj["AdapterRAM"] + "</br>");
Response.Write("AdapterDACType - " + obj["AdapterDACType"] + "</br>");
Response.Write("Monochrome - " + obj["Monochrome"] + "</br>");
Response.Write("InstalledDisplayDrivers - " + obj["InstalledDisplayDrivers"] + "</br>");
Response.Write("DriverVersion - " + obj["DriverVersion"] + "</br>");
Response.Write("VideoProcessor - " + obj["VideoProcessor"] + "</br>");
Response.Write("VideoArchitecture - " + obj["VideoArchitecture"] + "</br>");
Response.Write("VideoMemoryType - " + obj["VideoMemoryType"] + "</br>");
}
}
}
CUDAfy.net ライブラリを参照することもできます。
このライブラリを使用して基本情報を取得できます。
https://github.com/falahati/NvAPIWrapper
今のところ、クロック速度やGPUの使用はサポートされておらず、センサー情報(temp)もサポートされていませんが、バス幅、メモリ、使用済みメモリ、コアを取得できます。ただし、ライブラリに新しい関数を追加するための確固たる基盤があり、その結果、ライブラリに追加する必要があるNVAPIの関数がわかっている場合は、おそらく1時間以内に、ニーズに合わせて拡張することもできます。マーシャリングの基本に精通しています。
2018年の更新:GPUクロック情報、温度センサー、および使用状況情報をサポートするようになりました。
ただし、現在取得可能な情報については、現在接続されているすべての物理GPUのリストを取得する必要があります。これは、NvAPIWrapper.GPU.PhysicalGPU.GetPhysicalGPUs()
静的メソッドを使用して可能です。このメソッドは、NvAPIWrapper.GPU.PhysicalGPU
sの配列を返します。
これで、このクラスのプロパティを使用して、必要な情報を取得できます。
NvAPIWrapper.GPU.PhysicalGPU.Bios
:VBIOSバージョンを提供しますNvAPIWrapper.GPU.PhysicalGPU.Board
:グラフィックボード情報を提供しますNvAPIWrapper.GPU.PhysicalGPU.BusInfo
:GPUバス情報を取得しますNvAPIWrapper.GPU.PhysicalGPU.CUDACores
:このGPUに定義されているコアの総数を取得しますNvAPIWrapper.GPU.PhysicalGPU.CurrentPCIEDownStreamWidth
:ダウンストリームのPCIEインターフェースに使用されているPCIEレーンの数を取得しますNvAPIWrapper.GPU.PhysicalGPU.FullName
:GPUのフルネームを取得しますNvAPIWrapper.GPU.PhysicalGPU.GPUType
:GPUが統合されているかディスクリートであるかを示しますNvAPIWrapper.GPU.PhysicalGPU.IRQ
:GPU割り込み番号を取得しますNvAPIWrapper.GPU.PhysicalGPU.IsQuadro
:このGPUがQuadro製品ラインのものであるかどうかを示しますNvAPIWrapper.GPU.PhysicalGPU.MemoryInfo
:メモリとメモリ使用量に関するすべての情報を提供しますNvAPIWrapper.GPU.PhysicalGPU.PCIIdentifiers
:ハードウェアPCIIDに関する情報を提供しますNvAPIWrapper.GPU.PhysicalGPU.PhysicalFrameBufferSize
およびNvAPIWrapper.GPU.PhysicalGPU.VirtualFrameBufferSize
:このGPUのフレームバッファーのサイズをKB単位で取得しますNvAPIWrapper.GPU.PhysicalGPU.ShaderSubPipeLines
:GPUシェーダーサブパイプまたはSMユニットの数を取得しますこのバージョンのライブラリにない特定の機能が必要な場合は、お気軽に問題を開いてください。
AMDツールの経験はありませんが、C#のNVIDIAのNVAPI( https://developer.nvidia.com/nvapi )を使用することができました。
私たちが使用するバージョンは静的ライブラリとしてのみ提供されており、p/invokeはできません。最終的に、C++/CLRでシンラッパーライブラリを作成し、C#コードから呼び出すことができました。