def GetFieldMetadata(self): self.m_fieldIdToInfo = {} findByNameId = self.m_dcgmSystem.GetFieldGroupIdByName( self.m_fieldGroupName) #Remove our field group if it exists already if findByNameId is not None: delFieldGroup = pydcgm.DcgmFieldGroup(dcgmHandle=self.m_dcgmHandle, fieldGroupId=findByNameId) delFieldGroup.Delete() del (delFieldGroup) self.m_fieldGroup = pydcgm.DcgmFieldGroup(self.m_dcgmHandle, self.m_fieldGroupName, self.m_publishFieldIds) for fieldId in self.m_fieldGroup.fieldIds: self.m_fieldIdToInfo[ fieldId] = self.m_dcgmSystem.fields.GetFieldById(fieldId) if self.m_fieldIdToInfo[fieldId] == 0 or self.m_fieldIdToInfo[ fieldId] == None: self.LogError( "Cannot get field tag for field id %d. Please check dcgm_fields to see if it is valid." % (fieldId)) raise dcgm_structs.DCGMError( dcgm_structs.DCGM_ST_UNKNOWN_FIELD)
def GetFieldMetadata(self): self.m_fieldIdToInfo = {} self.m_fieldGroups = {} self.m_fieldGroup = None allFieldIds = [] # Initialize groups for all field intervals. self.LogInfo("GetFieldMetaData:\n") intervalIndex = 0 for interval, fieldIds in self.m_publishFields.items(): self.LogInfo("sampling interval = " + str(interval) + ":\n") for fieldId in fieldIds: self.LogInfo(" fieldId: " + str(fieldId) + "\n") intervalIndex += 1 fieldGroupName = self.m_fieldGroupName + "_" + str(intervalIndex) findByNameId = self.m_dcgmSystem.GetFieldGroupIdByName( fieldGroupName) self.LogInfo("fieldGroupName: " + fieldGroupName + "\n") # Remove our field group if it exists already if findByNameId is not None: self.LogInfo("fieldGroupId: " + findByNameId + "\n") delFieldGroup = pydcgm.DcgmFieldGroup( dcgmHandle=self.m_dcgmHandle, fieldGroupId=findByNameId) delFieldGroup.Delete() del (delFieldGroup) self.m_fieldGroups[interval] = pydcgm.DcgmFieldGroup( self.m_dcgmHandle, fieldGroupName, fieldIds) for fieldId in fieldIds: if fieldId not in allFieldIds: allFieldIds += [fieldId] self.m_fieldIdToInfo[ fieldId] = self.m_dcgmSystem.fields.GetFieldById(fieldId) if self.m_fieldIdToInfo[fieldId] == 0 or self.m_fieldIdToInfo[ fieldId] == None: self.LogError( "Cannot get field tag for field id %d. Please check dcgm_fields to see if it is valid." % (fieldId)) raise dcgm_structs.DCGMError( dcgm_structs.DCGM_ST_UNKNOWN_FIELD) # Initialize a field group of ALL fields. fieldGroupName = self.m_fieldGroupName findByNameId = self.m_dcgmSystem.GetFieldGroupIdByName(fieldGroupName) # Remove our field group if it exists already if findByNameId is not None: delFieldGroup = pydcgm.DcgmFieldGroup(dcgmHandle=self.m_dcgmHandle, fieldGroupId=findByNameId) delFieldGroup.Delete() del (delFieldGroup) self.m_fieldGroup = pydcgm.DcgmFieldGroup(self.m_dcgmHandle, fieldGroupName, allFieldIds)
def ThrowExceptionOnErrors(self): #Make sure we've captured all errors before looking at them self.UpdateErrors() if len(self.errors) < 1: return errorString = "Errors: " for value in self.errors: errorString += "\"%s\"" % value raise dcgm_structs.DCGMError(value.status)
def dcgm_diag_test_index_to_name(index): if index == dcgm_structs.DCGM_SWTEST_BLACKLIST: return "blacklist" elif index == dcgm_structs.DCGM_SWTEST_NVML_LIBRARY: return "nvmlLibrary" elif index == dcgm_structs.DCGM_SWTEST_CUDA_MAIN_LIBRARY: return "cudaMainLibrary" elif index == dcgm_structs.DCGM_SWTEST_CUDA_RUNTIME_LIBRARY: return "cudaRuntimeLibrary" elif index == dcgm_structs.DCGM_SWTEST_PERMISSIONS: return "permissions" elif index == dcgm_structs.DCGM_SWTEST_PERSISTENCE_MODE: return "persistenceMode" elif index == dcgm_structs.DCGM_SWTEST_ENVIRONMENT: return "environment" elif index == dcgm_structs.DCGM_SWTEST_PAGE_RETIREMENT: return "pageRetirement" elif index == dcgm_structs.DCGM_SWTEST_GRAPHICS_PROCESSES: return "graphicsProcesses" elif index == dcgm_structs.DCGM_SWTEST_INFOROM: return "inforom" else: raise dcgm_structs.DCGMError(dcgm_structs.DCGM_ST_BADPARAM)