Exemple #1
0
    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)
Exemple #2
0
    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)
Exemple #3
0
    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)
Exemple #4
0
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)