SWDEV-446880 - Make ocltst MemoryInfo pass in EMU

Make ocltst -m tests/ocltst/liboclruntime.so -t OCLMemoryInfo
pass in emu where GPU memory is very big.

Cherry pick
  https://gerrit-git.amd.com/c/compute/ec/clr/+/1014858

Change-Id: I0228c5e87ce7c366983fd4af71c25e7f8161c2c7
Этот коммит содержится в:
taosang2
2024-03-01 18:07:34 -05:00
коммит произвёл Tao Sang
родитель 4b443f8133
Коммит de83d7a6ae
+4 -13
Просмотреть файл
@@ -83,11 +83,7 @@ void OCLMemoryInfo::run(void) {
if (failed_) {
return;
}
#if EMU_ENV
size_t BufSize = 0x10000;
#else
size_t BufSize = 0x1000000;
#endif // EMU_ENV
bool succeed = false;
bool done = false;
if (test_ == 0) {
@@ -108,14 +104,14 @@ void OCLMemoryInfo::run(void) {
unsigned int* values;
values = reinterpret_cast<unsigned int*>(new cl_int4[BufSize]);
#if !EMU_ENV
// Clear destination buffer
memset(values, 0, BufSize * sizeof(cl_int4));
error_ = _wrapper->clEnqueueWriteBuffer(
cmdQueues_[_deviceId], buffer, CL_TRUE, 0, BufSize * sizeof(cl_int4),
values, 0, NULL, NULL);
CHECK_RESULT((error_ != CL_SUCCESS), "clEnqueueWriteBuffer() failed");
#endif
size_t memoryInfo2[2];
_wrapper->clGetDeviceInfo(devices_[_deviceId],
CL_DEVICE_GLOBAL_FREE_MEMORY_AMD,
@@ -157,24 +153,19 @@ void OCLMemoryInfo::run(void) {
BufSize * sizeof(cl_int4), NULL, &error_);
CHECK_RESULT((error_ != CL_SUCCESS), "clCreateBuffer() failed");
buffers_.push_back(buffer);
#if !EMU_ENV
// Clear destination buffer
error_ = _wrapper->clEnqueueWriteBuffer(
cmdQueues_[_deviceId], buffer, CL_TRUE, 0,
BufSize * sizeof(cl_int4), values, 0, NULL, NULL);
CHECK_RESULT((error_ != CL_SUCCESS), "clEnqueueWriteBuffer() failed");
#endif
sizeAll += BufSize * sizeof(cl_int4) / 1024;
size_t memoryInfo2[2];
_wrapper->clGetDeviceInfo(devices_[_deviceId],
CL_DEVICE_GLOBAL_FREE_MEMORY_AMD,
2 * sizeof(size_t), memoryInfo2, NULL);
#if EMU_ENV
// For testing on emulator with 2G RAM and buffer size of x10000
if (memoryInfo2[0] < (0x3e000 + (BufSize * sizeof(cl_int4) / 1024))) {
#else
if (memoryInfo2[0] < (0x50000 + (BufSize * sizeof(cl_int4) / 1024))) {
#endif // EMU_ENV
break;
}
size_t dif = memoryInfo[0] - memoryInfo2[0];