SWDEV-291787 - Update files with proper EOL

Change-Id: I3be96a3bb7d1d944f3a14b595df8ec533af6f953
Este cometimento está contido em:
Julia Jiang cometeu 2021-07-07 18:03:52 -04:00
1 ascendente 2aa5689d7e
cometimento 82156484b4
268 ficheiros modificados
+45780 -45780

Não existem ficheiros que correspondam à sua pesquisa

+197 -197
Ver ficheiro
@@ -18,201 +18,201 @@
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE. */
#include "OCLPinnedMemory.h"
#ifdef _WIN32
#include <VersionHelpers.h>
// Pick up from OCLSVM
size_t getTotalSystemMemory();
#else
#include <sys/sysinfo.h>
size_t getTotalSystemMemory() {
struct sysinfo info;
sysinfo(&info);
return info.totalram;
}
#endif
#include <algorithm>
#include <cmath>
#include <numeric>
OCLPinnedMemory::OCLPinnedMemory() { _numSubTests = 2; }
OCLPinnedMemory::~OCLPinnedMemory() {}
void OCLPinnedMemory::open(unsigned int test, char* units, double& conversion,
unsigned int deviceId) {
OCLTestImp::open(test, units, conversion, deviceId);
CHECK_ERROR(error_, "Error opening test");
_openTest = test;
host_memory_ = nullptr;
#ifdef _WIN32
// Observed failures on Win7
if (!IsWindows8OrGreater()) {
printf("Test requires Win10, skipping...\n");
_openTest = -1;
return;
}
#endif
cl_int status;
// Observed failures with Carrizo on GSL path
cl_bool is_apu;
status = clGetDeviceInfo(devices_[deviceId], CL_DEVICE_HOST_UNIFIED_MEMORY,
sizeof(cl_bool), &is_apu, nullptr);
CHECK_ERROR(status, "clGetDeviceInfo failed.");
if (is_apu) {
printf("Test not supported for apus, skipping...\n");
_openTest = -1;
return;
}
cl_uint address_bits;
status = clGetDeviceInfo(devices_[deviceId], CL_DEVICE_ADDRESS_BITS,
sizeof(cl_uint), &address_bits, nullptr);
CHECK_ERROR(status, "clGetDeviceInfo failed.");
if (address_bits < 64u) {
printf("GPU VA range size below 4GB, skipping...\n");
_openTest = -1;
return;
}
row_size_ = getTotalSystemMemory();
if (row_size_ <= (1ull << 32u)) {
printf("System memory below 4GB, skipping...\n");
_openTest = -1;
return;
}
row_size_ *= ratio_;
row_size_ = floor(sqrt(row_size_));
row_size_ = (row_size_ + row_data_size_ - 1) & ~(row_data_size_ - 1);
pin_size_ = row_size_ * row_size_ / row_data_size_;
host_memory_ = new row_data_t[pin_size_];
}
void OCLPinnedMemory::runNoPrepinnedMemory() {
cl_int status;
row_data_t* tmp = new row_data_t[row_size_];
std::iota(tmp, tmp + row_size_, 0);
std::fill_n(host_memory_, pin_size_, 0);
cl_mem tmp_buffer = clCreateBuffer(context_, CL_MEM_USE_HOST_PTR,
row_size_ * row_data_size_, tmp, &status);
CHECK_ERROR(status, "clCreateBuffer failed.");
cl_mem buffer = clCreateBuffer(context_, CL_MEM_READ_WRITE,
row_size_ * row_data_size_, nullptr, &status);
CHECK_ERROR(status, "clCreateBuffer failed.");
status = clEnqueueCopyBuffer(cmdQueues_[_deviceId], tmp_buffer, buffer, 0, 0,
row_size_ * row_data_size_, 0, nullptr, nullptr);
CHECK_ERROR(status, "clEnqueueCopyBuffer failed.");
clFinish(cmdQueues_[_deviceId]);
size_t buffer_offset[3] = {0, 0, 0};
size_t host_offset[3] = {0, 0, 0};
size_t region[3] = {row_data_size_, row_size_, 1};
status = clEnqueueReadBufferRect(
cmdQueues_[_deviceId], buffer, CL_TRUE, buffer_offset, host_offset,
region, 0, 0, row_size_, 0, host_memory_, 0, nullptr, nullptr);
CHECK_ERROR(status, "clEnqueueReadBufferRect failed.");
status = clFinish(cmdQueues_[_deviceId]);
CHECK_ERROR(status, "clFinish failed.");
for (uint64_t i = 0; i < row_size_; i++) {
if (tmp[i] != host_memory_[i * row_size_ / row_data_size_]) {
status = -1;
break;
}
}
CHECK_RESULT(status == -1, "Error when reading data.");
status = clReleaseMemObject(buffer);
CHECK_ERROR(status, "clReleaseMemObject failed.");
status = clReleaseMemObject(tmp_buffer);
CHECK_ERROR(status, "clReleaseMemObject failed.");
delete[] tmp;
}
void OCLPinnedMemory::runPrepinnedMemory() {
cl_int status;
row_data_t* tmp = new row_data_t[row_size_];
std::iota(tmp, tmp + row_size_, 0);
std::fill_n(host_memory_, pin_size_, 0);
cl_mem tmp_buffer = clCreateBuffer(context_, CL_MEM_USE_HOST_PTR,
row_size_ * row_data_size_, tmp, &status);
CHECK_ERROR(status, "clCreateBuffer failed.");
cl_mem buffer = clCreateBuffer(context_, CL_MEM_READ_WRITE,
row_size_ * row_data_size_, nullptr, &status);
CHECK_ERROR(status, "clCreateBuffer failed.");
status = clEnqueueCopyBuffer(cmdQueues_[_deviceId], tmp_buffer, buffer, 0, 0,
row_size_ * row_data_size_, 0, nullptr, nullptr);
CHECK_ERROR(status, "clEnqueueCopyBuffer failed.");
cl_mem pinned_buffer =
clCreateBuffer(context_, CL_MEM_USE_HOST_PTR, pin_size_ * row_data_size_,
host_memory_, &status);
CHECK_ERROR(status, "clCreateBuffer failed.");
clEnqueueMapBuffer(cmdQueues_[_deviceId], pinned_buffer, CL_TRUE,
CL_MAP_READ | CL_MAP_WRITE, 0, pin_size_ * row_data_size_,
0, nullptr, nullptr, &status);
CHECK_ERROR(status, "clEnqueueMapBuffer failed.");
size_t buffer_offset[3] = {0, 0, 0};
size_t host_offset[3] = {0, 0, 0};
size_t region[3] = {row_data_size_, row_size_, 1};
status = clEnqueueReadBufferRect(
cmdQueues_[_deviceId], buffer, CL_TRUE, buffer_offset, host_offset,
region, 0, 0, row_size_, 0, host_memory_, 0, nullptr, nullptr);
CHECK_ERROR(status, "clEnqueueReadBufferRect failed.");
for (uint64_t i = 0; i < row_size_; i++) {
if (tmp[i] != host_memory_[i * row_size_ / row_data_size_]) {
status = -1;
break;
}
}
CHECK_RESULT(status == -1, "Error when reading data.");
status = clEnqueueUnmapMemObject(cmdQueues_[_deviceId], pinned_buffer,
host_memory_, 0, nullptr, nullptr);
CHECK_ERROR(status, "clEnqueueUnmap failed.")
status = clFinish(cmdQueues_[_deviceId]);
CHECK_ERROR(status, "clFinish failed.");
status = clReleaseMemObject(pinned_buffer);
CHECK_ERROR(status, "clReleaseMemObject failed.");
status = clReleaseMemObject(buffer);
CHECK_ERROR(status, "clReleaseMemObject failed.");
status = clReleaseMemObject(tmp_buffer);
CHECK_ERROR(status, "clReleaseMemObject failed.");
delete[] tmp;
}
void OCLPinnedMemory::run() {
switch (_openTest) {
case 0:
runNoPrepinnedMemory();
break;
case 1:
runPrepinnedMemory();
break;
}
}
unsigned int OCLPinnedMemory::close() {
delete[] host_memory_;
return OCLTestImp::close();
#include "OCLPinnedMemory.h"
#ifdef _WIN32
#include <VersionHelpers.h>
// Pick up from OCLSVM
size_t getTotalSystemMemory();
#else
#include <sys/sysinfo.h>
size_t getTotalSystemMemory() {
struct sysinfo info;
sysinfo(&info);
return info.totalram;
}
#endif
#include <algorithm>
#include <cmath>
#include <numeric>
OCLPinnedMemory::OCLPinnedMemory() { _numSubTests = 2; }
OCLPinnedMemory::~OCLPinnedMemory() {}
void OCLPinnedMemory::open(unsigned int test, char* units, double& conversion,
unsigned int deviceId) {
OCLTestImp::open(test, units, conversion, deviceId);
CHECK_ERROR(error_, "Error opening test");
_openTest = test;
host_memory_ = nullptr;
#ifdef _WIN32
// Observed failures on Win7
if (!IsWindows8OrGreater()) {
printf("Test requires Win10, skipping...\n");
_openTest = -1;
return;
}
#endif
cl_int status;
// Observed failures with Carrizo on GSL path
cl_bool is_apu;
status = clGetDeviceInfo(devices_[deviceId], CL_DEVICE_HOST_UNIFIED_MEMORY,
sizeof(cl_bool), &is_apu, nullptr);
CHECK_ERROR(status, "clGetDeviceInfo failed.");
if (is_apu) {
printf("Test not supported for apus, skipping...\n");
_openTest = -1;
return;
}
cl_uint address_bits;
status = clGetDeviceInfo(devices_[deviceId], CL_DEVICE_ADDRESS_BITS,
sizeof(cl_uint), &address_bits, nullptr);
CHECK_ERROR(status, "clGetDeviceInfo failed.");
if (address_bits < 64u) {
printf("GPU VA range size below 4GB, skipping...\n");
_openTest = -1;
return;
}
row_size_ = getTotalSystemMemory();
if (row_size_ <= (1ull << 32u)) {
printf("System memory below 4GB, skipping...\n");
_openTest = -1;
return;
}
row_size_ *= ratio_;
row_size_ = floor(sqrt(row_size_));
row_size_ = (row_size_ + row_data_size_ - 1) & ~(row_data_size_ - 1);
pin_size_ = row_size_ * row_size_ / row_data_size_;
host_memory_ = new row_data_t[pin_size_];
}
void OCLPinnedMemory::runNoPrepinnedMemory() {
cl_int status;
row_data_t* tmp = new row_data_t[row_size_];
std::iota(tmp, tmp + row_size_, 0);
std::fill_n(host_memory_, pin_size_, 0);
cl_mem tmp_buffer = clCreateBuffer(context_, CL_MEM_USE_HOST_PTR,
row_size_ * row_data_size_, tmp, &status);
CHECK_ERROR(status, "clCreateBuffer failed.");
cl_mem buffer = clCreateBuffer(context_, CL_MEM_READ_WRITE,
row_size_ * row_data_size_, nullptr, &status);
CHECK_ERROR(status, "clCreateBuffer failed.");
status = clEnqueueCopyBuffer(cmdQueues_[_deviceId], tmp_buffer, buffer, 0, 0,
row_size_ * row_data_size_, 0, nullptr, nullptr);
CHECK_ERROR(status, "clEnqueueCopyBuffer failed.");
clFinish(cmdQueues_[_deviceId]);
size_t buffer_offset[3] = {0, 0, 0};
size_t host_offset[3] = {0, 0, 0};
size_t region[3] = {row_data_size_, row_size_, 1};
status = clEnqueueReadBufferRect(
cmdQueues_[_deviceId], buffer, CL_TRUE, buffer_offset, host_offset,
region, 0, 0, row_size_, 0, host_memory_, 0, nullptr, nullptr);
CHECK_ERROR(status, "clEnqueueReadBufferRect failed.");
status = clFinish(cmdQueues_[_deviceId]);
CHECK_ERROR(status, "clFinish failed.");
for (uint64_t i = 0; i < row_size_; i++) {
if (tmp[i] != host_memory_[i * row_size_ / row_data_size_]) {
status = -1;
break;
}
}
CHECK_RESULT(status == -1, "Error when reading data.");
status = clReleaseMemObject(buffer);
CHECK_ERROR(status, "clReleaseMemObject failed.");
status = clReleaseMemObject(tmp_buffer);
CHECK_ERROR(status, "clReleaseMemObject failed.");
delete[] tmp;
}
void OCLPinnedMemory::runPrepinnedMemory() {
cl_int status;
row_data_t* tmp = new row_data_t[row_size_];
std::iota(tmp, tmp + row_size_, 0);
std::fill_n(host_memory_, pin_size_, 0);
cl_mem tmp_buffer = clCreateBuffer(context_, CL_MEM_USE_HOST_PTR,
row_size_ * row_data_size_, tmp, &status);
CHECK_ERROR(status, "clCreateBuffer failed.");
cl_mem buffer = clCreateBuffer(context_, CL_MEM_READ_WRITE,
row_size_ * row_data_size_, nullptr, &status);
CHECK_ERROR(status, "clCreateBuffer failed.");
status = clEnqueueCopyBuffer(cmdQueues_[_deviceId], tmp_buffer, buffer, 0, 0,
row_size_ * row_data_size_, 0, nullptr, nullptr);
CHECK_ERROR(status, "clEnqueueCopyBuffer failed.");
cl_mem pinned_buffer =
clCreateBuffer(context_, CL_MEM_USE_HOST_PTR, pin_size_ * row_data_size_,
host_memory_, &status);
CHECK_ERROR(status, "clCreateBuffer failed.");
clEnqueueMapBuffer(cmdQueues_[_deviceId], pinned_buffer, CL_TRUE,
CL_MAP_READ | CL_MAP_WRITE, 0, pin_size_ * row_data_size_,
0, nullptr, nullptr, &status);
CHECK_ERROR(status, "clEnqueueMapBuffer failed.");
size_t buffer_offset[3] = {0, 0, 0};
size_t host_offset[3] = {0, 0, 0};
size_t region[3] = {row_data_size_, row_size_, 1};
status = clEnqueueReadBufferRect(
cmdQueues_[_deviceId], buffer, CL_TRUE, buffer_offset, host_offset,
region, 0, 0, row_size_, 0, host_memory_, 0, nullptr, nullptr);
CHECK_ERROR(status, "clEnqueueReadBufferRect failed.");
for (uint64_t i = 0; i < row_size_; i++) {
if (tmp[i] != host_memory_[i * row_size_ / row_data_size_]) {
status = -1;
break;
}
}
CHECK_RESULT(status == -1, "Error when reading data.");
status = clEnqueueUnmapMemObject(cmdQueues_[_deviceId], pinned_buffer,
host_memory_, 0, nullptr, nullptr);
CHECK_ERROR(status, "clEnqueueUnmap failed.")
status = clFinish(cmdQueues_[_deviceId]);
CHECK_ERROR(status, "clFinish failed.");
status = clReleaseMemObject(pinned_buffer);
CHECK_ERROR(status, "clReleaseMemObject failed.");
status = clReleaseMemObject(buffer);
CHECK_ERROR(status, "clReleaseMemObject failed.");
status = clReleaseMemObject(tmp_buffer);
CHECK_ERROR(status, "clReleaseMemObject failed.");
delete[] tmp;
}
void OCLPinnedMemory::run() {
switch (_openTest) {
case 0:
runNoPrepinnedMemory();
break;
case 1:
runPrepinnedMemory();
break;
}
}
unsigned int OCLPinnedMemory::close() {
delete[] host_memory_;
return OCLTestImp::close();
}