예제 #1
0
def vtDcgmIntrospectGetFieldsExecTime(dcgm_handle,
                                      introspectContext,
                                      versionTest,
                                      waitIfNoData=True):
    fn = dcgmFP("dcgmIntrospectGetFieldsExecTime")

    execTime = dcgm_structs.c_dcgmIntrospectFieldsExecTime_v1()
    execTime.version = dcgm_structs.make_dcgm_version(execTime, 1)
    logger.debug("Structure version: %d" % execTime.version)

    fullExecTime = dcgm_structs.c_dcgmIntrospectFullFieldsExecTime_v2()
    fullExecTime.version = dcgm_structs.make_dcgm_version(fullExecTime, 2)
    logger.debug("Structure version: %d" % fullExecTime.version)

    fullExecTime.version = versionTest
    execTime.version = versionTest

    introspectContext = dcgm_structs.c_dcgmIntrospectContext_v1()
    introspectContext.version = dcgm_structs.make_dcgm_version(
        introspectContext, 1)
    logger.debug("Structure version: %d" % introspectContext.version)

    introspectContext.version = versionTest

    ret = fn(dcgm_handle, byref(introspectContext), byref(execTime),
             waitIfNoData)
    dcgm_structs._dcgmCheckReturn(ret)
    return execTime
예제 #2
0
    def GetForAllFields(self, waitIfNoData=True):
        '''
        Get the current amount of memory used to store all fields that DCGM is watching.
        
        waitIfNoData: wait for metadata to be updated if it's not available.
                      
        Returns a dcgm_structs.c_dcgmIntrospectFullMemory_v1 object
        Raises an exception for DCGM_ST_NO_DATA if no data is available yet and \ref waitIfNoData is False
        '''
        introspectContext = dcgm_structs.c_dcgmIntrospectContext_v1()
        introspectContext.version = dcgm_structs.dcgmIntrospectContext_version1
        introspectContext.introspectLvl = dcgm_structs.DCGM_INTROSPECT_LVL.ALL_FIELDS

        return dcgm_agent.dcgmIntrospectGetFieldsMemoryUsage(
            self._dcgmHandle.handle, introspectContext, waitIfNoData)
예제 #3
0
    def GetForAllFields(self, waitIfNoData=True):
        '''
        Get the total execution time since startup that was used for updating 
        all fields that DCGM is watching.
        
        waitIfNoData:      wait for metadata to be updated if it's not available
                      
        Returns a dcgm_structs.c_dcgmIntrospectFullFieldsExecTime_v2 object
        Raises an exception for DCGM_ST_NOT_WATCHED if the field group is not watched.
        Raises an exception for DCGM_ST_NO_DATA if no data is available yet and \ref waitIfNoData is False
        '''
        introspectContext = dcgm_structs.c_dcgmIntrospectContext_v1()
        introspectContext.version = dcgm_structs.dcgmIntrospectContext_version1
        introspectContext.introspectLvl = dcgm_structs.DCGM_INTROSPECT_LVL.ALL_FIELDS

        return dcgm_agent.dcgmIntrospectGetFieldsExecTime(
            self._dcgmHandle.handle, introspectContext, waitIfNoData)
예제 #4
0
def test_dcgm_introspect_get_fields_memory_usage_validate(handle):
    """
    Validates structure version
    """
    introspectContext = dcgm_structs.c_dcgmIntrospectContext_v1()
    waitIfNoData = True

    with test_utils.assert_raises(
            dcgmExceptionClass(dcgm_structs.DCGM_ST_VER_MISMATCH)):
        versionTest = 0  #invalid version
        ret = vtDcgmIntrospectGetFieldsMemoryUsage(handle, introspectContext,
                                                   versionTest, waitIfNoData)

    with test_utils.assert_raises(
            dcgmExceptionClass(dcgm_structs.DCGM_ST_VER_MISMATCH)):
        versionTest = 50  #random number version
        ret = vtDcgmIntrospectGetFieldsMemoryUsage(handle, introspectContext,
                                                   versionTest, waitIfNoData)
예제 #5
0
    def GetForFieldGroup(self, fieldGroup, waitIfNoData=True):
        '''
        Get the current amount of memory used to store a field group that DCGM is watching.
        
        fieldGroup:        DcgmFieldGroup() instance
        waitIfNoData:      wait for metadata to be updated if it's not available
                      
        Returns a dcgm_structs.c_dcgmIntrospectFullMemory_v1 object
        Raises an exception for DCGM_ST_NOT_WATCHED if the field group is not watched.
        Raises an exception for DCGM_ST_NO_DATA if no data is available yet and \ref waitIfNoData is False
        '''
        introspectContext = dcgm_structs.c_dcgmIntrospectContext_v1()
        introspectContext.version = dcgm_structs.dcgmIntrospectContext_version1
        introspectContext.introspectLvl = dcgm_structs.DCGM_INTROSPECT_LVL.FIELD_GROUP
        introspectContext.fieldGroupId = fieldGroup.fieldGroupId

        return dcgm_agent.dcgmIntrospectGetFieldsMemoryUsage(
            self._dcgmHandle.handle, introspectContext, waitIfNoData)
예제 #6
0
def vtDcgmIntrospectGetFieldsMemoryUsage(dcgm_handle,
                                         introspectContext,
                                         versionTest,
                                         waitIfNoData=True):
    fn = dcgmFP("dcgmIntrospectGetFieldsMemoryUsage")

    memInfo = dcgm_structs.c_dcgmIntrospectFullMemory_v1()
    memInfo.version = dcgm_structs.make_dcgm_version(memInfo, 1)
    logger.debug("Structure version: %d" % memInfo.version)

    memInfo.version = versionTest

    introspectContext = dcgm_structs.c_dcgmIntrospectContext_v1()
    introspectContext.version = versionTest

    ret = fn(dcgm_handle, byref(introspectContext), byref(memInfo),
             waitIfNoData)
    dcgm_structs._dcgmCheckReturn(ret)
    return memInfo