Пример #1
0
void vt_cuptiact_setupActivityContext(vt_cupti_ctx_t *vtCtx)
{  
  /* try to get the global VampirTrace CUPTI context */
  if(vtCtx == NULL){
    vt_warning("[CUPTI Activity] No context given!");
    return;
  }
  
  VT_SUSPEND_MALLOC_TRACING(vtCtx->ptid);
  
  /* create the VampirTrace CUPTI activity context */
  if(vtCtx->activity == NULL)
    vtCtx->activity = vt_cuptiact_createCtxActivity(vtCtx->cuCtx);
  
  /* queue new buffer to context to record activities */
  vtCtx->activity->buffer = vt_cuptiact_queueNewBuffer(vtCtx->cuCtx);
  
  VT_RESUME_MALLOC_TRACING(vtCtx->ptid);
}
Пример #2
0
void vt_cuptiact_addContext(CUcontext cuCtx, CUdevice cuDev)
{
  vt_cuptiact_ctx_t *vtCtx = NULL;
  
  if(vt_cuptiact_getCtx(cuCtx) != NULL) return;
  
  /*vt_cntl_msg(1, "ctx: %d dev: %d", cuCtx, cuDev);*/
  
  vtCtx = vt_cuptiact_createContext((uint32_t)-1, cuCtx, (uint32_t)cuDev);
  
  /* prepend context */
  VT_CUPTI_ACT_LOCK();
    vtCtx->next = vt_cuptiact_ctxList;
    vt_cuptiact_ctxList = vtCtx;
  VT_CUPTI_ACT_UNLOCK();
  
  /* queue new buffer to context to record activities*/
  vtCtx->buffer = vt_cuptiact_queueNewBuffer(cuCtx);
}