void _insure_cuda_device(QSP_ARG_DECL Data_Obj *dp ) { Cuda_Device *cdp; if( AREA_FLAGS(OBJ_AREA(dp)) & DA_RAM ){ sprintf(ERROR_STRING, "insure_cuda_device: Object %s is a host RAM object!?",OBJ_NAME(dp)); warn(ERROR_STRING); return; } cdp = (Cuda_Device *) AREA_CUDA_DEV(OBJ_AREA(dp)); assert( cdp != NULL ); if( curr_cdp != cdp ){ sprintf(ERROR_STRING,"insure_cuda_device: curr_cdp = 0x%"PRIxPTR" cdp = 0x%"PRIxPTR, (uintptr_t)curr_cdp,(uintptr_t)cdp); advise(ERROR_STRING); sprintf(ERROR_STRING,"insure_cuda_device: current device is %s, want %s", curr_cdp->cudev_name,cdp->cudev_name); advise(ERROR_STRING); set_cuda_device(cdp); } }
void insure_cu2_device( QSP_ARG_DECL Data_Obj *dp ) { Platform_Device *pdp; if( AREA_FLAGS(OBJ_AREA(dp)) & DA_RAM ){ sprintf(DEFAULT_ERROR_STRING, "insure_cu2_device: Object %s is a host RAM object!?",OBJ_NAME(dp)); NWARN(DEFAULT_ERROR_STRING); return; } pdp = AREA_PFDEV(OBJ_AREA(dp)); #ifdef CAUTIOUS if( pdp == NULL ) NERROR1("CAUTIOUS: null cuda device ptr in data area!?"); #endif /* CAUTIOUS */ if( curr_pdp != pdp ){ sprintf(DEFAULT_ERROR_STRING,"insure_cu2_device: curr_pdp = 0x%lx pdp = 0x%lx", (int_for_addr)curr_pdp,(int_for_addr)pdp); NADVISE(DEFAULT_ERROR_STRING); sprintf(DEFAULT_ERROR_STRING,"insure_cu2_device: current device is %s, want %s", PFDEV_NAME(curr_pdp),PFDEV_NAME(pdp)); NADVISE(DEFAULT_ERROR_STRING); PF_FUNC_NAME(set_device)(QSP_ARG pdp); } }