SWDEV-283388 - Fix hipMemRangeGetAttributes on Nvidia Platform

Change-Id: I5daeacd9dd5c6ce7f914d6e6e45dd41fb2a675a5
hipMemRangeGetAttributes was returning hipErrorInvalidValue due to improper
mapping of the arguments to cudaMemRangeGetAttributes.
This commit is contained in:
Satyanvesh Dittakavi
2021-04-28 17:28:23 +00:00
والد a717608f93
کامیت c81a7136d2
@@ -72,13 +72,6 @@ typedef enum hipMemoryAdvise {
hipMemAdviseUnsetAccessedBy
} hipMemoryAdvise;
typedef enum hipMemRangeAttribute {
hipMemRangeAttributeReadMostly,
hipMemRangeAttributePreferredLocation,
hipMemRangeAttributeAccessedBy,
hipMemRangeAttributeLastPrefetchLocation
} hipMemRangeAttribute;
// hipDataType
#define hipDataType cudaDataType
#define HIP_R_16F CUDA_R_16F
@@ -228,6 +221,13 @@ typedef enum cudaChannelFormatKind hipChannelFormatKind;
#define hipChannelFormatKindFloat cudaChannelFormatKindFloat
#define hipChannelFormatKindNone cudaChannelFormatKindNone
// hipMemRangeAttribute
typedef enum cudaMemRangeAttribute hipMemRangeAttribute;
#define hipMemRangeAttributeReadMostly cudaMemRangeAttributeReadMostly
#define hipMemRangeAttributePreferredLocation cudaMemRangeAttributePreferredLocation
#define hipMemRangeAttributeAccessedBy cudaMemRangeAttributeAccessedBy
#define hipMemRangeAttributeLastPrefetchLocation cudaMemRangeAttributeLastPrefetchLocation
#define hipSurfaceBoundaryMode cudaSurfaceBoundaryMode
#define hipBoundaryModeZero cudaBoundaryModeZero
#define hipBoundaryModeTrap cudaBoundaryModeTrap
@@ -826,7 +826,7 @@ inline static enum cudaTextureAddressMode hipTextureAddressModeToCudaTextureAddr
}
}
inline static enum cudaMemRangeAttribute hipMemRangeAttributeTocudaMemRangeAttribute(
inline static enum cudaMemRangeAttribute hipMemRangeAttributeToCudaMemRangeAttribute(
hipMemRangeAttribute kind) {
switch (kind) {
case hipMemRangeAttributeReadMostly:
@@ -973,15 +973,14 @@ inline static hipError_t hipMemRangeGetAttribute(void* data, size_t data_size,
hipMemRangeAttribute attribute,
const void* dev_ptr, size_t count) {
return hipCUDAErrorTohipError(cudaMemRangeGetAttribute(data, data_size,
hipMemRangeAttributeTocudaMemRangeAttribute(attribute), dev_ptr, count));
hipMemRangeAttributeToCudaMemRangeAttribute(attribute), dev_ptr, count));
}
inline static hipError_t hipMemRangeGetAttributes(void** data, size_t* data_sizes,
hipMemRangeAttribute* attributes,
size_t num_attributes, const void* dev_ptr,
size_t count) {
auto attrs = hipMemRangeAttributeTocudaMemRangeAttribute(*attributes);
return hipCUDAErrorTohipError(cudaMemRangeGetAttributes(data, data_sizes, &attrs,
return hipCUDAErrorTohipError(cudaMemRangeGetAttributes(data, data_sizes, attributes,
num_attributes, dev_ptr, count));
}