Do graphics cards have individual ID by which single devices can be distinguished?
Do graphics cards have individual ID by which single devices can be distinguished?
I have several graphics cards of the same manufacturer and same model and I want to distinguish them not only by the pcie socket they reside in but by some individual value I can read from the hardware. Is there such value and if so what would it be called and how could I access it?
Right now I'm using modern nvidia cards (10xx series) and nvidia inspector.but I'd prefer if there was any value that was also applicable to amd. I have programming and scripting knowledge. I am running Windows 10
1 Answer
1
This is a powershell example to pull information from video cards. The DeviceID is supposed to be unique but only if the manufacturer supports Windows Display Driver Model (WDDM). (I copied this directly from docs.microsoft.com)
$strComputer = "."
$colItems = get-wmiobject -class "Win32_VideoController" -namespace "rootCIMV2" `
-computername $strComputer
foreach ($objItem in $colItems) {
write-host "Accelerator Capabilities: " $objItem.AcceleratorCapabilities
write-host "Adapter Compatibility: " $objItem.AdapterCompatibility
write-host "Adapter DAC Type: " $objItem.AdapterDACType
write-host "Adapter RAM: " $objItem.AdapterRAM
write-host "Availability: " $objItem.Availability
write-host "Capability Descriptions: " $objItem.CapabilityDescriptions
write-host "Caption: " $objItem.Caption
write-host "Color Table Entries: " $objItem.ColorTableEntries
write-host "Configuration Manager Error Code: " $objItem.ConfigManagerErrorCode
write-host "Configuration Manager User Configuration: " $objItem.ConfigManagerUserConfig
write-host "Creation Class Name: " $objItem.CreationClassName
write-host "Current Bits Per Pixel: " $objItem.CurrentBitsPerPixel
write-host "Current Horizontal Resolution: " $objItem.CurrentHorizontalResolution
write-host "Current Number Of Colors: " $objItem.CurrentNumberOfColors
write-host "Current Number Of Columns: " $objItem.CurrentNumberOfColumns
write-host "Current Number Of Rows: " $objItem.CurrentNumberOfRows
write-host "Current Refresh Rate: " $objItem.CurrentRefreshRate
write-host "Current Scan Mode: " $objItem.CurrentScanMode
write-host "Current Vertical Resolution: " $objItem.CurrentVerticalResolution
write-host "Description: " $objItem.Description
write-host "Device ID: " $objItem.DeviceID
write-host "Device Specific Pens: " $objItem.DeviceSpecificPens
write-host "Dither Type: " $objItem.DitherType
write-host "Driver Date: " $objItem.DriverDate
write-host "Driver Version: " $objItem.DriverVersion
write-host "Error Cleared: " $objItem.ErrorCleared
write-host "Error Description: " $objItem.ErrorDescription
write-host "ICM Intent: " $objItem.ICMIntent
write-host "ICM Method: " $objItem.ICMMethod
write-host "Inf File Name: " $objItem.InfFilename
write-host "Inf Section: " $objItem.InfSection
write-host "Installation Date: " $objItem.InstallDate
write-host "Installed Display Drivers: " $objItem.InstalledDisplayDrivers
write-host "Last Error Code: " $objItem.LastErrorCode
write-host "Maximum Memory Supported: " $objItem.MaxMemorySupported
write-host "Maximum Number Controlled: " $objItem.MaxNumberControlled
write-host "Maximum Refresh Rate: " $objItem.MaxRefreshRate
write-host "Minimum Refresh Rate: " $objItem.MinRefreshRate
write-host "Monochrome: " $objItem.Monochrome
write-host "Name: " $objItem.Name
write-host "Number Of Color Planes: " $objItem.NumberOfColorPlanes
write-host "Number Of Video Pages: " $objItem.NumberOfVideoPages
write-host "PNP Device ID: " $objItem.PNPDeviceID
write-host "Power Management Capabilities: " $objItem.PowerManagementCapabilities
write-host "Power Management Supported: " $objItem.PowerManagementSupported
write-host "Protocol Supported: " $objItem.ProtocolSupported
write-host "Reserved System Palette Entries: " $objItem.ReservedSystemPaletteEntries
write-host "Specification Version: " $objItem.SpecificationVersion
write-host "Status: " $objItem.Status
write-host "Status Information: " $objItem.StatusInfo
write-host "System Creation Class Name: " $objItem.SystemCreationClassName
write-host "System Name: " $objItem.SystemName
write-host "System Palette Entries: " $objItem.SystemPaletteEntries
write-host "Time Of Last Reset: " $objItem.TimeOfLastReset
write-host "Video Architecture: " $objItem.VideoArchitecture
write-host "Video Memory Type: " $objItem.VideoMemoryType
write-host "Video Mode: " $objItem.VideoMode
write-host "Video Mode Description: " $objItem.VideoModeDescription
write-host "Video Processor: " $objItem.VideoProcessor
write-host
}
Also while we're at it how would I find oit the pcie index of the respective card in that loop? Just by using a counter or is there a more elegant way ?
– Jeffrey
Jul 2 at 18:25
I think the PNP Device ID is what you are looking for but not sure what kind of parsing you need to do to figure out which slot that is. Or if there even is any parsing.
– Thomas
Jul 2 at 18:36
i just tested your Suggestion and for deviceid it just gives me "videocontroller1" "videocontroller2" ... thats the indexing I was looking for I guess. the pnpDeviceID seems to be individual so I guess that's what the Hardware is identified by?
– Jeffrey
Jul 2 at 19:00
By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.
Hey thanks a lot I was guessing deviceID would be what I was looking for but from what I've read I wasn't sure if they are truly individual even if the model is the same
– Jeffrey
Jul 2 at 18:21