Changeset View
Changeset View
Standalone View
Standalone View
openmp/libomptarget/src/device.cpp
Show First 20 Lines • Show All 325 Lines • ▼ Show 20 Lines | |||||
// Load binary to device. | // Load binary to device. | ||||
__tgt_target_table *DeviceTy::load_binary(void *Img) { | __tgt_target_table *DeviceTy::load_binary(void *Img) { | ||||
RTL->Mtx.lock(); | RTL->Mtx.lock(); | ||||
__tgt_target_table *rc = RTL->load_binary(RTLDeviceID, Img); | __tgt_target_table *rc = RTL->load_binary(RTLDeviceID, Img); | ||||
RTL->Mtx.unlock(); | RTL->Mtx.unlock(); | ||||
return rc; | return rc; | ||||
} | } | ||||
// Submit data to device. | // Submit data to device | ||||
int32_t DeviceTy::data_submit(void *TgtPtrBegin, void *HstPtrBegin, | int32_t DeviceTy::data_submit(void *TgtPtrBegin, void *HstPtrBegin, | ||||
int64_t Size) { | int64_t Size, __tgt_async_info *AsyncInfoPtr) { | ||||
return RTL->data_submit(RTLDeviceID, TgtPtrBegin, HstPtrBegin, Size); | |||||
return RTL->data_submit(RTLDeviceID, TgtPtrBegin, HstPtrBegin, Size, | |||||
AsyncInfoPtr); | |||||
} | } | ||||
// Retrieve data from device. | // Retrieve data from device | ||||
int32_t DeviceTy::data_retrieve(void *HstPtrBegin, void *TgtPtrBegin, | int32_t DeviceTy::data_retrieve(void *HstPtrBegin, void *TgtPtrBegin, | ||||
int64_t Size) { | int64_t Size, __tgt_async_info *AsyncInfoPtr) { | ||||
return RTL->data_retrieve(RTLDeviceID, HstPtrBegin, TgtPtrBegin, Size); | return RTL->data_retrieve(RTLDeviceID, HstPtrBegin, TgtPtrBegin, Size, | ||||
AsyncInfoPtr); | |||||
} | } | ||||
// Run region on device | // Run region on device | ||||
int32_t DeviceTy::run_region(void *TgtEntryPtr, void **TgtVarsPtr, | int32_t DeviceTy::run_region(void *TgtEntryPtr, void **TgtVarsPtr, | ||||
ptrdiff_t *TgtOffsets, int32_t TgtVarsSize) { | ptrdiff_t *TgtOffsets, int32_t TgtVarsSize, | ||||
__tgt_async_info *AsyncInfo) { | |||||
return RTL->run_region(RTLDeviceID, TgtEntryPtr, TgtVarsPtr, TgtOffsets, | return RTL->run_region(RTLDeviceID, TgtEntryPtr, TgtVarsPtr, TgtOffsets, | ||||
TgtVarsSize); | TgtVarsSize, AsyncInfo); | ||||
} | } | ||||
// Run team region on device. | // Run team region on device. | ||||
int32_t DeviceTy::run_team_region(void *TgtEntryPtr, void **TgtVarsPtr, | int32_t DeviceTy::run_team_region(void *TgtEntryPtr, void **TgtVarsPtr, | ||||
ptrdiff_t *TgtOffsets, int32_t TgtVarsSize, int32_t NumTeams, | ptrdiff_t *TgtOffsets, int32_t TgtVarsSize, | ||||
int32_t ThreadLimit, uint64_t LoopTripCount) { | int32_t NumTeams, int32_t ThreadLimit, | ||||
uint64_t LoopTripCount, | |||||
__tgt_async_info *AsyncInfo) { | |||||
return RTL->run_team_region(RTLDeviceID, TgtEntryPtr, TgtVarsPtr, TgtOffsets, | return RTL->run_team_region(RTLDeviceID, TgtEntryPtr, TgtVarsPtr, TgtOffsets, | ||||
TgtVarsSize, NumTeams, ThreadLimit, LoopTripCount); | TgtVarsSize, NumTeams, ThreadLimit, LoopTripCount, | ||||
AsyncInfo); | |||||
} | } | ||||
/// Check whether a device has an associated RTL and initialize it if it's not | /// Check whether a device has an associated RTL and initialize it if it's not | ||||
/// already initialized. | /// already initialized. | ||||
bool device_is_ready(int device_num) { | bool device_is_ready(int device_num) { | ||||
DP("Checking whether device %d is ready.\n", device_num); | DP("Checking whether device %d is ready.\n", device_num); | ||||
// Devices.size() can only change while registering a new | // Devices.size() can only change while registering a new | ||||
// library, so try to acquire the lock of RTLs' mutex. | // library, so try to acquire the lock of RTLs' mutex. | ||||
Show All 24 Lines |