SWDEV-327960, SWDEV-316901 - Adding Graph checks

hipGraphExecMemcpyNodeSetParamsToSymbol, fix for functional cases
failing as well

Change-Id: I9f263778f6b24e3ec35a78231a17e01c0d44f23a


[ROCm/clr commit: 63f23ec2b0]
Šī revīzija ir iekļauta:
pghafari
2022-04-05 01:17:54 -04:00
revīziju iesūtīja Payam Ghafari
vecāks 12df44b4fc
revīzija 0ddbd07e0c
@@ -788,32 +788,26 @@ class hipGraphMemcpyNodeToSymbol : public hipGraphMemcpyNode1D {
hipError_t SetParams(const void* symbol, const void* src, size_t count, size_t offset,
hipMemcpyKind kind) {
size_t zeroOffset = 0;
amd::Memory* srcMemory = getMemoryObject(src, zeroOffset);
amd::Memory* dstMemory = getMemoryObject(symbol, zeroOffset);
hipMemoryType srcMemoryType =
amd::MemObjMap::FindMemObj(srcMemory) ? hipMemoryTypeDevice : hipMemoryTypeHost;
hipMemoryType dstMemoryType =
amd::MemObjMap::FindMemObj(dstMemory) ? hipMemoryTypeDevice : hipMemoryTypeHost;
// Return error if sizeBytes passed to memcpy is more than the actual size allocated
if ((dstMemory && count > (dstMemory->getSize() - offset)) ||
(srcMemory && count > (srcMemory->getSize() - offset))) {
return hipErrorInvalidValue;
}
// check the kind with memory types
if (std::get<0>(hip::getMemoryType(kind)) != srcMemoryType)
return hipErrorInvalidValue;
if (std::get<1>(hip::getMemoryType(kind)) != dstMemoryType)
return hipErrorInvalidValue;
size_t sym_size = 0;
hipDeviceptr_t device_ptr = nullptr;
hipError_t status = ihipMemcpySymbol_validate(symbol, count, offset, sym_size, device_ptr);
//check to see if src is also a symbol (cuda negative test case)
hipError_t status = ihipMemcpySymbol_validate(src, count, offset, sym_size, device_ptr);
if (status == hipSuccess) {
return hipErrorInvalidValue;
}
status = ihipMemcpySymbol_validate(symbol, count, offset, sym_size, device_ptr);
if (status != hipSuccess) {
return status;
}
size_t dOffset = 0;
amd::Memory* srcMemory = getMemoryObject(src, dOffset);
if(srcMemory == nullptr && kind != hipMemcpyHostToDevice) {
return hipErrorInvalidValue;
} else if (srcMemory != nullptr && kind != hipMemcpyDeviceToDevice) {
return hipErrorInvalidValue;
} else if (kind == hipMemcpyHostToHost || kind == hipMemcpyDeviceToHost) {
return hipErrorInvalidValue;
}
symbol_ = symbol;
src_ = src;
count_ = count;