/* * Reset the VampirTrace counter values (to zero) for active CUPTI counters. * * @param vtcuptiEvtCtx pointer to the VampirTrace CUPTI events context * @param strmid the stream id for the counter values * @param time the VampirTrace timestamps */ void vt_cuptievt_resetCounter(vt_cupti_events_t *vtcuptiEvtCtx, uint32_t strmid, uint64_t *time) { size_t i; vt_cupti_evtgrp_t *vtcuptiGrp = NULL; /* create a VampirTrace CUPTI events context, if it is not available */ if(vtcuptiEvtCtx == NULL){ VT_CHECK_THREAD; vtcuptiEvtCtx = vt_cuptievt_getOrCreateCurrentCtx(VT_MY_THREAD)->events; if(vtcuptiEvtCtx == NULL) return; } vtcuptiGrp = vtcuptiEvtCtx->vtGrpList; while(vtcuptiGrp != NULL){ for(i = 0; i < vtcuptiGrp->evtNum; i++){ vt_count(strmid, time, *(vtcuptiGrp->vtCIDs+i), 0); } /* reset counter values of this group */ VT_CUPTI_CALL(cuptiEventGroupResetAllEvents(vtcuptiGrp->evtGrp), "cuptiEventGroupResetAllEvents"); vtcuptiGrp = vtcuptiGrp->next; } }
/* * Reset the VampirTrace counter values (to zero) for active CUPTI counters. * * @param vtcuptiCtx pointer to the VampirTrace CUPTI context * @param strmid the stream id for the counter values * @param time the VampirTrace timestamps */ void vt_cupti_resetCounter(vt_cupti_ctx_t *vtcuptiCtx, uint32_t strmid, uint64_t *time) { size_t i; vt_cupti_grp_t *vtcuptiGrp = NULL; if(vtcuptiCtx == NULL){ VT_CHECK_THREAD; vtcuptiCtx = vt_cupti_getCurrentContext(VT_MY_THREAD); if(vtcuptiCtx == NULL) return; } vtcuptiGrp = vtcuptiCtx->vtGrpList; while(vtcuptiGrp != NULL){ for(i = 0; i < vtcuptiGrp->evtNum; i++){ vt_count(strmid, time, *(vtcuptiGrp->vtCIDs+i), 0); } /* reset counter values of this group */ CHECK_CUPTI_ERROR(cuptiEventGroupResetAllEvents(vtcuptiGrp->evtGrp), "cuptiEventGroupResetAllEvents"); vtcuptiGrp = vtcuptiGrp->next; } }