SWDEV-279486 - Fix hipMemcpyPeer/hipMemcpy APIs

Addresses the scenarios when the size passed is more than
the allocated size and when the deviceid is invalid
Change-Id: I6c9b62639096f655ffb61976905b1ce8c5f51ee7

Change-Id: I8a0d660924a8e2300c517aba6f9088626b8f6ef5
Cette révision appartient à :
Satyanvesh Dittakavi
2021-04-06 06:37:14 -07:00
Parent 865ecc64af
révision 68161ff0dd
3 fichiers modifiés avec 19 ajouts et 1 suppressions
+12
Voir le fichier
@@ -215,6 +215,12 @@ hipError_t hipMemcpyPeer(void* dst, int dstDevice, const void* src, int srcDevic
size_t sizeBytes) {
HIP_INIT_API(hipMemcpyPeer, dst, dstDevice, src, srcDevice, sizeBytes);
if (srcDevice >= static_cast<int>(g_devices.size()) ||
dstDevice >= static_cast<int>(g_devices.size()) ||
srcDevice < 0 || dstDevice < 0) {
HIP_RETURN(hipErrorInvalidDevice);
}
HIP_RETURN(hipMemcpy(dst, src, sizeBytes, hipMemcpyDeviceToDevice));
}
@@ -222,6 +228,12 @@ hipError_t hipMemcpyPeerAsync(void* dst, int dstDevice, const void* src, int src
size_t sizeBytes, hipStream_t stream) {
HIP_INIT_API(hipMemcpyPeerAsync, dst, dstDevice, src, srcDevice, sizeBytes, stream);
if (srcDevice >= static_cast<int>(g_devices.size()) ||
dstDevice >= static_cast<int>(g_devices.size()) ||
srcDevice < 0 || dstDevice < 0) {
HIP_RETURN(hipErrorInvalidDevice);
}
HIP_RETURN(hipMemcpyAsync(dst, src, sizeBytes, hipMemcpyDeviceToDevice, stream));
}