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); }
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); }