SWDEV-470698 - fix formatting, add format check workflow (#657)
This commit is contained in:
committed by
GitHub
parent
5840940caa
commit
f7338717ae
@@ -48,7 +48,7 @@ static const int WindowWidth = 80;
|
||||
|
||||
const size_t MaxQueues = 3;
|
||||
|
||||
static const char *strKernel =
|
||||
static const char* strKernel =
|
||||
"__kernel void dummy(__global float4* out) \n"
|
||||
"{ \n"
|
||||
" uint id = get_global_id(0); \n"
|
||||
@@ -68,15 +68,15 @@ OCLPerfDoubleDMASeq::OCLPerfDoubleDMASeq() {
|
||||
|
||||
OCLPerfDoubleDMASeq::~OCLPerfDoubleDMASeq() {}
|
||||
|
||||
void OCLPerfDoubleDMASeq::open(unsigned int test, char *units,
|
||||
double &conversion, unsigned int deviceId) {
|
||||
void OCLPerfDoubleDMASeq::open(unsigned int test, char* units, double& conversion,
|
||||
unsigned int deviceId) {
|
||||
_deviceId = deviceId;
|
||||
OCLTestImp::open(test, units, conversion, deviceId);
|
||||
CHECK_RESULT((error_ != CL_SUCCESS), "Error opening test");
|
||||
test_ = test;
|
||||
cl_device_type deviceType;
|
||||
error_ = _wrapper->clGetDeviceInfo(devices_[deviceId], CL_DEVICE_TYPE,
|
||||
sizeof(deviceType), &deviceType, NULL);
|
||||
error_ = _wrapper->clGetDeviceInfo(devices_[deviceId], CL_DEVICE_TYPE, sizeof(deviceType),
|
||||
&deviceType, NULL);
|
||||
CHECK_RESULT((error_ != CL_SUCCESS), "CL_DEVICE_TYPE failed");
|
||||
|
||||
if (!(deviceType & CL_DEVICE_TYPE_GPU)) {
|
||||
@@ -84,15 +84,13 @@ void OCLPerfDoubleDMASeq::open(unsigned int test, char *units,
|
||||
failed_ = true;
|
||||
return;
|
||||
}
|
||||
program_ = _wrapper->clCreateProgramWithSource(context_, 1, &strKernel, NULL,
|
||||
&error_);
|
||||
program_ = _wrapper->clCreateProgramWithSource(context_, 1, &strKernel, NULL, &error_);
|
||||
CHECK_RESULT((error_ != CL_SUCCESS), "clCreateProgramWithSource() failed");
|
||||
error_ = _wrapper->clBuildProgram(program_, 1, &devices_[deviceId], NULL,
|
||||
NULL, NULL);
|
||||
error_ = _wrapper->clBuildProgram(program_, 1, &devices_[deviceId], NULL, NULL, NULL);
|
||||
if (error_ != CL_SUCCESS) {
|
||||
char programLog[1024];
|
||||
_wrapper->clGetProgramBuildInfo(program_, devices_[deviceId],
|
||||
CL_PROGRAM_BUILD_LOG, 1024, programLog, 0);
|
||||
_wrapper->clGetProgramBuildInfo(program_, devices_[deviceId], CL_PROGRAM_BUILD_LOG, 1024,
|
||||
programLog, 0);
|
||||
printf("\n%s\n", programLog);
|
||||
fflush(stdout);
|
||||
}
|
||||
@@ -106,22 +104,19 @@ void OCLPerfDoubleDMASeq::open(unsigned int test, char *units,
|
||||
events_ = ((test / MaxQueues) == 0) ? false : true;
|
||||
size_t numBufs = (test_ % MaxQueues) + 1;
|
||||
for (size_t b = 0; b < numBufs; ++b) {
|
||||
buffer = _wrapper->clCreateBuffer(context_, CL_MEM_READ_WRITE, bufSize,
|
||||
NULL, &error_);
|
||||
buffer = _wrapper->clCreateBuffer(context_, CL_MEM_READ_WRITE, bufSize, NULL, &error_);
|
||||
CHECK_RESULT((error_ != CL_SUCCESS), "clCreateBuffer() failed");
|
||||
buffers_.push_back(buffer);
|
||||
}
|
||||
|
||||
buffer = _wrapper->clCreateBuffer(context_,
|
||||
CL_MEM_READ_WRITE | CL_MEM_ALLOC_HOST_PTR,
|
||||
size_S, NULL, &error_);
|
||||
buffer = _wrapper->clCreateBuffer(context_, CL_MEM_READ_WRITE | CL_MEM_ALLOC_HOST_PTR, size_S,
|
||||
NULL, &error_);
|
||||
CHECK_RESULT((error_ != CL_SUCCESS), "clCreateBuffer() failed");
|
||||
buffers_.push_back(buffer);
|
||||
}
|
||||
|
||||
static void CL_CALLBACK notify_callback(const char *errinfo,
|
||||
const void *private_info, size_t cb,
|
||||
void *user_data) {}
|
||||
static void CL_CALLBACK notify_callback(const char* errinfo, const void* private_info, size_t cb,
|
||||
void* user_data) {}
|
||||
|
||||
void OCLPerfDoubleDMASeq::run(void) {
|
||||
if (failed_) {
|
||||
@@ -135,32 +130,29 @@ void OCLPerfDoubleDMASeq::run(void) {
|
||||
int q;
|
||||
cl_command_queue_properties qProp = 0;
|
||||
for (q = 0; q < numQueues; ++q) {
|
||||
cl_command_queue cmdQueue = _wrapper->clCreateCommandQueue(
|
||||
context_, devices_[_deviceId], qProp, &error_);
|
||||
cl_command_queue cmdQueue =
|
||||
_wrapper->clCreateCommandQueue(context_, devices_[_deviceId], qProp, &error_);
|
||||
CHECK_RESULT((error_ != CL_SUCCESS), "clCreateCommandQueue() failed");
|
||||
cmdQueues[q] = cmdQueue;
|
||||
}
|
||||
CHECK_RESULT_NO_RETURN((error_ != CL_SUCCESS), "Execution failed");
|
||||
|
||||
float *Data_s = (float *)_wrapper->clEnqueueMapBuffer(
|
||||
cmdQueues[0], buffers_[numBufs], CL_TRUE, CL_MAP_READ | CL_MAP_WRITE, 0,
|
||||
size_S, 0, NULL, NULL, &error_);
|
||||
float* Data_s = (float*)_wrapper->clEnqueueMapBuffer(cmdQueues[0], buffers_[numBufs], CL_TRUE,
|
||||
CL_MAP_READ | CL_MAP_WRITE, 0, size_S, 0,
|
||||
NULL, NULL, &error_);
|
||||
|
||||
size_t gws[1] = {size_s / (4 * sizeof(float))};
|
||||
size_t lws[1] = {256};
|
||||
|
||||
// Warm-up
|
||||
for (q = 0; q < numQueues; ++q) {
|
||||
error_ |= _wrapper->clEnqueueWriteBuffer(cmdQueues[q], buffers_[q], CL_FALSE, 0, size_s,
|
||||
(char*)Data_s, 0, NULL, NULL);
|
||||
error_ |= _wrapper->clSetKernelArg(kernel_, 0, sizeof(cl_mem), (void*)&buffers_[q]);
|
||||
error_ |=
|
||||
_wrapper->clEnqueueWriteBuffer(cmdQueues[q], buffers_[q], CL_FALSE, 0,
|
||||
size_s, (char *)Data_s, 0, NULL, NULL);
|
||||
error_ |= _wrapper->clSetKernelArg(kernel_, 0, sizeof(cl_mem),
|
||||
(void *)&buffers_[q]);
|
||||
error_ |= _wrapper->clEnqueueNDRangeKernel(cmdQueues[q], kernel_, 1, NULL,
|
||||
gws, lws, 0, NULL, NULL);
|
||||
error_ |=
|
||||
_wrapper->clEnqueueReadBuffer(cmdQueues[q], buffers_[q], CL_FALSE, 0,
|
||||
size_s, (char *)Data_s, 0, NULL, NULL);
|
||||
_wrapper->clEnqueueNDRangeKernel(cmdQueues[q], kernel_, 1, NULL, gws, lws, 0, NULL, NULL);
|
||||
error_ |= _wrapper->clEnqueueReadBuffer(cmdQueues[q], buffers_[q], CL_FALSE, 0, size_s,
|
||||
(char*)Data_s, 0, NULL, NULL);
|
||||
error_ |= _wrapper->clFinish(cmdQueues[q]);
|
||||
}
|
||||
|
||||
@@ -180,13 +172,11 @@ void OCLPerfDoubleDMASeq::run(void) {
|
||||
size_t iter = 0;
|
||||
if (events_) {
|
||||
while (1) {
|
||||
error_ |= _wrapper->clEnqueueWriteBuffer(
|
||||
cmdQueues[q], buffers_[idx], CL_FALSE, 0, size_s,
|
||||
(char *)Data_s + s_done, 0, NULL, NULL);
|
||||
error_ |= _wrapper->clEnqueueWriteBuffer(cmdQueues[q], buffers_[idx], CL_FALSE, 0, size_s,
|
||||
(char*)Data_s + s_done, 0, NULL, NULL);
|
||||
|
||||
// Implicit flush of DMA engine on kernel start, because memory dependency
|
||||
error_ |= _wrapper->clSetKernelArg(kernel_, 0, sizeof(cl_mem),
|
||||
(void *)&buffers_[idx]);
|
||||
error_ |= _wrapper->clSetKernelArg(kernel_, 0, sizeof(cl_mem), (void*)&buffers_[idx]);
|
||||
int prevQ;
|
||||
if (q == 0) {
|
||||
prevQ = numQueues - 1;
|
||||
@@ -194,13 +184,13 @@ void OCLPerfDoubleDMASeq::run(void) {
|
||||
prevQ = q - 1;
|
||||
}
|
||||
if ((x[prevQ] != NULL) && (numQueues != 1)) {
|
||||
error_ |= _wrapper->clEnqueueNDRangeKernel(
|
||||
cmdQueues[q], kernel_, 1, NULL, gws, lws, 1, &x[prevQ], &x[q]);
|
||||
error_ |= _wrapper->clEnqueueNDRangeKernel(cmdQueues[q], kernel_, 1, NULL, gws, lws, 1,
|
||||
&x[prevQ], &x[q]);
|
||||
error_ |= _wrapper->clReleaseEvent(x[prevQ]);
|
||||
x[prevQ] = NULL;
|
||||
} else {
|
||||
error_ |= _wrapper->clEnqueueNDRangeKernel(
|
||||
cmdQueues[q], kernel_, 1, NULL, gws, lws, 0, NULL, &x[q]);
|
||||
error_ |= _wrapper->clEnqueueNDRangeKernel(cmdQueues[q], kernel_, 1, NULL, gws, lws, 0,
|
||||
NULL, &x[q]);
|
||||
if (numQueues == 1) {
|
||||
error_ |= _wrapper->clReleaseEvent(x[q]);
|
||||
x[q] = NULL;
|
||||
@@ -209,9 +199,8 @@ void OCLPerfDoubleDMASeq::run(void) {
|
||||
error_ |= _wrapper->clFlush(cmdQueues[q]);
|
||||
|
||||
// Change the queue
|
||||
error_ |= _wrapper->clEnqueueReadBuffer(
|
||||
cmdQueues[q], buffers_[idx], CL_FALSE, 0, size_s,
|
||||
(char *)Data_s + s_done, 0, NULL, NULL);
|
||||
error_ |= _wrapper->clEnqueueReadBuffer(cmdQueues[q], buffers_[idx], CL_FALSE, 0, size_s,
|
||||
(char*)Data_s + s_done, 0, NULL, NULL);
|
||||
|
||||
if ((s_done += size_s) >= size_S) {
|
||||
break;
|
||||
@@ -229,20 +218,17 @@ void OCLPerfDoubleDMASeq::run(void) {
|
||||
}
|
||||
} else {
|
||||
while (1) {
|
||||
error_ |= _wrapper->clEnqueueWriteBuffer(
|
||||
cmdQueues[q], buffers_[idx], CL_FALSE, 0, size_s,
|
||||
(char *)Data_s + s_done, 0, NULL, NULL);
|
||||
error_ |= _wrapper->clEnqueueWriteBuffer(cmdQueues[q], buffers_[idx], CL_FALSE, 0, size_s,
|
||||
(char*)Data_s + s_done, 0, NULL, NULL);
|
||||
|
||||
// Implicit flush of DMA engine on kernel start, because memory dependency
|
||||
error_ |= _wrapper->clSetKernelArg(kernel_, 0, sizeof(cl_mem),
|
||||
(void *)&buffers_[idx]);
|
||||
error_ |= _wrapper->clEnqueueNDRangeKernel(cmdQueues[q], kernel_, 1, NULL,
|
||||
gws, lws, 0, NULL, NULL);
|
||||
error_ |= _wrapper->clSetKernelArg(kernel_, 0, sizeof(cl_mem), (void*)&buffers_[idx]);
|
||||
error_ |=
|
||||
_wrapper->clEnqueueNDRangeKernel(cmdQueues[q], kernel_, 1, NULL, gws, lws, 0, NULL, NULL);
|
||||
|
||||
// Change the queue
|
||||
error_ |= _wrapper->clEnqueueReadBuffer(
|
||||
cmdQueues[q], buffers_[idx], CL_FALSE, 0, size_s,
|
||||
(char *)Data_s + s_done, 0, NULL, NULL);
|
||||
error_ |= _wrapper->clEnqueueReadBuffer(cmdQueues[q], buffers_[idx], CL_FALSE, 0, size_s,
|
||||
(char*)Data_s + s_done, 0, NULL, NULL);
|
||||
|
||||
if ((s_done += size_s) >= size_S) {
|
||||
break;
|
||||
@@ -260,16 +246,15 @@ void OCLPerfDoubleDMASeq::run(void) {
|
||||
}
|
||||
timer.Stop();
|
||||
|
||||
error_ |= _wrapper->clEnqueueUnmapMemObject(cmdQueues[0], buffers_[numBufs],
|
||||
Data_s, 0, NULL, NULL);
|
||||
error_ |=
|
||||
_wrapper->clEnqueueUnmapMemObject(cmdQueues[0], buffers_[numBufs], Data_s, 0, NULL, NULL);
|
||||
|
||||
error_ |= _wrapper->clFinish(cmdQueues[0]);
|
||||
CHECK_RESULT_NO_RETURN((error_ != CL_SUCCESS), "Execution failed");
|
||||
|
||||
for (q = 0; q < numQueues; ++q) {
|
||||
error_ = _wrapper->clReleaseCommandQueue(cmdQueues[q]);
|
||||
CHECK_RESULT_NO_RETURN((error_ != CL_SUCCESS),
|
||||
"clReleaseCommandQueue() failed");
|
||||
CHECK_RESULT_NO_RETURN((error_ != CL_SUCCESS), "clReleaseCommandQueue() failed");
|
||||
}
|
||||
|
||||
double GBytes = (double)(2 * size_S) / (double)(1000 * 1000 * 1000);
|
||||
|
||||
Reference in New Issue
Block a user