SWDEV-332606 - SWDEV-333585 - Fix hipMemcpySymbol* and hipGetSymbol* APIs

- hipMemcpy[From/To]Symbol APIs to return hipErrorInvalidMemcpyDirection
if the copy kind is incorrect
- hipGetSymbolSize and hipGetSymbolAddress APIs to return hipErrorInvalidValue
if the pointer is null

Change-Id: I32f428045c804b1e4f648e91b507f749f60c09d0


[ROCm/clr commit: f1fb612774]
Этот коммит содержится в:
Satyanvesh Dittakavi
2022-04-19 12:31:13 +00:00
родитель cba04140c0
Коммит 1ab7f22334
2 изменённых файлов: 24 добавлений и 0 удалений
+18
Просмотреть файл
@@ -1087,6 +1087,11 @@ inline hipError_t ihipMemcpySymbol_validate(const void* symbol, size_t sizeBytes
hipError_t hipMemcpyToSymbol_common(const void* symbol, const void* src, size_t sizeBytes,
size_t offset, hipMemcpyKind kind, hipStream_t stream=nullptr) {
CHECK_STREAM_CAPTURING();
if (kind != hipMemcpyHostToDevice) {
HIP_RETURN(hipErrorInvalidMemcpyDirection);
}
size_t sym_size = 0;
hipDeviceptr_t device_ptr = nullptr;
@@ -1115,6 +1120,11 @@ hipError_t hipMemcpyToSymbol_spt(const void* symbol, const void* src, size_t siz
hipError_t hipMemcpyFromSymbol_common(void* dst, const void* symbol, size_t sizeBytes,
size_t offset, hipMemcpyKind kind, hipStream_t stream=nullptr) {
CHECK_STREAM_CAPTURING();
if (kind != hipMemcpyDeviceToHost) {
HIP_RETURN(hipErrorInvalidMemcpyDirection);
}
size_t sym_size = 0;
hipDeviceptr_t device_ptr = nullptr;
@@ -1146,6 +1156,10 @@ hipError_t hipMemcpyToSymbolAsync(const void* symbol, const void* src, size_t si
STREAM_CAPTURE(hipMemcpyToSymbolAsync, stream, symbol, src, sizeBytes, offset, kind);
if (kind != hipMemcpyHostToDevice) {
HIP_RETURN(hipErrorInvalidMemcpyDirection);
}
size_t sym_size = 0;
hipDeviceptr_t device_ptr = nullptr;
@@ -1163,6 +1177,10 @@ hipError_t hipMemcpyFromSymbolAsync(void* dst, const void* symbol, size_t sizeBy
STREAM_CAPTURE(hipMemcpyFromSymbolAsync, stream, dst, symbol, sizeBytes, offset, kind);
if (kind != hipMemcpyDeviceToHost) {
HIP_RETURN(hipErrorInvalidMemcpyDirection);
}
size_t sym_size = 0;
hipDeviceptr_t device_ptr = nullptr;
+6
Просмотреть файл
@@ -278,6 +278,9 @@ hipError_t hipGetSymbolAddress(void** devPtr, const void* symbol) {
HIP_INIT_API(hipGetSymbolAddress, devPtr, symbol);
hipError_t hip_error = hipSuccess;
if (devPtr == nullptr) {
HIP_RETURN(hipErrorInvalidValue);
}
size_t sym_size = 0;
HIP_RETURN_ONFAIL(PlatformState::instance().getStatGlobalVar(symbol, ihipGetDevice(), devPtr, &sym_size));
@@ -288,6 +291,9 @@ hipError_t hipGetSymbolAddress(void** devPtr, const void* symbol) {
hipError_t hipGetSymbolSize(size_t* sizePtr, const void* symbol) {
HIP_INIT_API(hipGetSymbolSize, sizePtr, symbol);
if (sizePtr == nullptr) {
HIP_RETURN(hipErrorInvalidValue);
}
hipDeviceptr_t device_ptr = nullptr;
HIP_RETURN_ONFAIL(PlatformState::instance().getStatGlobalVar(symbol, ihipGetDevice(), &device_ptr, sizePtr));