Skip to content

Commit

Permalink
Merge pull request #400 from clEsperanto/update-test-and-device
Browse files Browse the repository at this point in the history
Update-test-and-device
  • Loading branch information
StRigaud authored Nov 19, 2024
2 parents 21bf7e4 + dc4326e commit e76faf7
Show file tree
Hide file tree
Showing 177 changed files with 349 additions and 306 deletions.
8 changes: 6 additions & 2 deletions clic/src/openclbackend.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ OpenCLBackend::initialiseRessources() -> void

// explore ressources available
std::unordered_map<cl_platform_id, std::vector<cl_device_id>> ressources;
size_t device_counter = 0;

cl_uint platformCount = 0;
cl_int err = clGetPlatformIDs(0, nullptr, &platformCount);
Expand Down Expand Up @@ -121,13 +122,15 @@ OpenCLBackend::initialiseRessources() -> void
continue;
}
ressources[platform_id] = deviceIds;
device_counter += deviceCount;
}
if (ressources.empty())
{
std::cerr << "Warning: Failed to find OpenCL compatible devices." << std::endl;
}

// allocate ressources
device_list_.reserve(device_counter);
for (const auto & [platform_id, device_ids] : ressources)
{
cl_uint num_devices = device_ids.size();
Expand Down Expand Up @@ -168,6 +171,7 @@ OpenCLBackend::getDevices(const std::string & type) const -> std::vector<Device:
device_list_.end(),
std::back_inserter(filtered_devices),
[&type](const Device::Pointer & device) { return device->getDeviceType() == type; });
filtered_devices.shrink_to_fit(); // Reduce memory usage if the filtered list is smaller
return filtered_devices;
}

Expand All @@ -189,7 +193,7 @@ OpenCLBackend::getDevice(const std::string & name, const std::string & type) con
}
if (!devices.empty())
{
return devices.front();
return device_list_.back();
}
std::cerr << "Warning: Fail to find any OpenCL compatible devices." << std::endl;
return nullptr;
Expand All @@ -209,7 +213,7 @@ OpenCLBackend::getDeviceFromIndex(size_t index, const std::string & type) const
}
if (!devices.empty())
{
return devices.front();
return device_list_.back();
}
std::cerr << "Warning: Fail to find any OpenCL compatible devices." << std::endl;
return nullptr;
Expand Down
4 changes: 4 additions & 0 deletions clic/src/opencldevice.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,15 +68,19 @@ OpenCLDevice::Ressources::Ressources(const cl_platform_id & platform, const cl_d
char _platform_name[256];
clGetPlatformInfo(platform_ptr, CL_PLATFORM_NAME, sizeof(char) * 256, &_platform_name, nullptr);
platform_name = std::string(_platform_name);
platform_name.erase(platform_name.find_last_not_of(" ") + 1);
char _platform_vendor[256];
clGetPlatformInfo(platform_ptr, CL_PLATFORM_VENDOR, sizeof(char) * 256, &_platform_vendor, nullptr);
platform_vendor = std::string(_platform_vendor);
platform_vendor.erase(platform_vendor.find_last_not_of(" ") + 1);
char _device_name[256];
clGetDeviceInfo(device_ptr, CL_DEVICE_NAME, sizeof(char) * 256, &_device_name, nullptr);
device_name = std::string(_device_name);
device_name.erase(device_name.find_last_not_of(" ") + 1);
clGetDeviceInfo(device_ptr, CL_DEVICE_TYPE, sizeof(cl_device_type), &device_type, nullptr);
clGetDeviceInfo(device_ptr, CL_DEVICE_IMAGE_SUPPORT, sizeof(cl_bool), &image_support, nullptr);
}

OpenCLDevice::Ressources::~Ressources()
{
if (device_ptr != nullptr)
Expand Down
16 changes: 8 additions & 8 deletions tests/core/test_array.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ TEST_P(TestArray, allocate)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

// Create a new Array
Expand Down Expand Up @@ -40,7 +40,7 @@ TEST_P(TestArray, typeDataMemory)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

// Create a new Array
Expand All @@ -57,7 +57,7 @@ TEST_P(TestArray, allocateWrite)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

// Write some data to the array
Expand Down Expand Up @@ -85,7 +85,7 @@ TEST_P(TestArray, readWrite)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

// Create a new Array
Expand Down Expand Up @@ -117,7 +117,7 @@ TEST_P(TestArray, copyFill)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

// Create a new Array
Expand Down Expand Up @@ -162,7 +162,7 @@ TEST_P(TestArray, stringCout)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

// Create a new Array
Expand All @@ -183,7 +183,7 @@ TEST_P(TestArray, regionOperation)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

// Create a new Array
Expand Down Expand Up @@ -258,7 +258,7 @@ TEST_P(TestArray, throwErrors)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

// Create a new Array
Expand Down
22 changes: 11 additions & 11 deletions tests/core/test_create_dst.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ TEST_P(TestCreate, notNullPtr)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

input = cle::Array::create(10, 5, 3, 3, cle::dType::FLOAT, cle::mType::BUFFER, device);
Expand Down Expand Up @@ -125,7 +125,7 @@ TEST_P(TestCreate, create_dst)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

input = cle::Array::create(10, 5, 3, 3, cle::dType::FLOAT, cle::mType::BUFFER, device);
Expand Down Expand Up @@ -158,7 +158,7 @@ TEST_P(TestCreate, create_like)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

input = cle::Array::create(10, 5, 3, 3, cle::dType::FLOAT, cle::mType::BUFFER, device);
Expand Down Expand Up @@ -190,7 +190,7 @@ TEST_P(TestCreate, create_one)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

input = cle::Array::create(10, 5, 3, 3, cle::dType::FLOAT, cle::mType::BUFFER, device);
Expand Down Expand Up @@ -222,7 +222,7 @@ TEST_P(TestCreate, create_vector)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

input = cle::Array::create(10, 5, 3, 3, cle::dType::FLOAT, cle::mType::BUFFER, device);
Expand Down Expand Up @@ -254,7 +254,7 @@ TEST_P(TestCreate, create_xy)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

input = cle::Array::create(10, 5, 3, 3, cle::dType::FLOAT, cle::mType::BUFFER, device);
Expand Down Expand Up @@ -286,7 +286,7 @@ TEST_P(TestCreate, create_yx)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

input = cle::Array::create(10, 5, 3, 3, cle::dType::FLOAT, cle::mType::BUFFER, device);
Expand Down Expand Up @@ -318,7 +318,7 @@ TEST_P(TestCreate, create_zy)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

input = cle::Array::create(10, 5, 3, 3, cle::dType::FLOAT, cle::mType::BUFFER, device);
Expand Down Expand Up @@ -350,7 +350,7 @@ TEST_P(TestCreate, create_yz)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

input = cle::Array::create(10, 5, 3, 3, cle::dType::FLOAT, cle::mType::BUFFER, device);
Expand Down Expand Up @@ -382,7 +382,7 @@ TEST_P(TestCreate, create_xz)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

input = cle::Array::create(10, 5, 3, 3, cle::dType::FLOAT, cle::mType::BUFFER, device);
Expand Down Expand Up @@ -413,7 +413,7 @@ TEST_P(TestCreate, create_zx)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

input = cle::Array::create(10, 5, 3, 3, cle::dType::FLOAT, cle::mType::BUFFER, device);
Expand Down
18 changes: 18 additions & 0 deletions tests/core/test_device.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,24 @@ TEST_P(TestDevice, availableDevices)
}


TEST_P(TestDevice, defaultDevice)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);

auto list = cle::BackendManager::getInstance().getBackend().getDevicesList("all");
for (auto && i : list)
{
std::cout << i << " ";
}
std::cout << std::endl;

auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
device->setWaitToFinish(true);
std::cout << device->getName() << std::endl;
}


TEST_P(TestDevice, type)
{
std::string param = GetParam();
Expand Down
10 changes: 5 additions & 5 deletions tests/core/test_execute.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ TEST_P(TestExecution, parameterType)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

// Test assignment of cle::Array::Pointer
Expand All @@ -34,7 +34,7 @@ TEST_P(TestExecution, parameterList)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

auto src = cle::Array::create(10, 5, 3, 3, cle::dType::FLOAT, cle::mType::BUFFER, device);
Expand All @@ -57,7 +57,7 @@ TEST_P(TestExecution, rangeArray)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

size_t width = 5, height = 10, depth = 15;
Expand Down Expand Up @@ -87,7 +87,7 @@ TEST_P(TestExecution, execute)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

auto arr_a = cle::Array::create(10, 1, 1, 1, cle::dType::FLOAT, cle::mType::BUFFER, device);
Expand Down Expand Up @@ -130,7 +130,7 @@ TEST_P(TestExecution, executeNative)
{
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

auto arr_a = cle::Array::create(10, 1, 1, 1, cle::dType::FLOAT, cle::mType::BUFFER, device);
Expand Down
16 changes: 8 additions & 8 deletions tests/core/test_image.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ TEST_P(TestArray, allocate)

std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);


Expand Down Expand Up @@ -45,7 +45,7 @@ TEST_P(TestArray, typeDataMemory)

std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);


Expand All @@ -65,7 +65,7 @@ TEST_P(TestArray, allocateWrite)

std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);


Expand Down Expand Up @@ -96,7 +96,7 @@ TEST_P(TestArray, readWrite)

std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);


Expand Down Expand Up @@ -131,7 +131,7 @@ TEST_P(TestArray, copyFill)

std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);


Expand Down Expand Up @@ -179,7 +179,7 @@ TEST_P(TestArray, stringCout)

std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);


Expand All @@ -203,7 +203,7 @@ TEST_P(TestArray, regionOperation)

std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);


Expand Down Expand Up @@ -281,7 +281,7 @@ TEST_P(TestArray, throwErrors)

std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);


Expand Down
2 changes: 1 addition & 1 deletion tests/tier1/test_absolute.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ TEST_P(TestAbsolute, execute)
std::string param = GetParam();
cle::BackendManager::getInstance().setBackend(param);

auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");
auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "gpu");
device->setWaitToFinish(true);

auto gpu_input = cle::Array::create(10, 5, 3, 3, cle::dType::FLOAT, cle::mType::BUFFER, device);
Expand Down
Loading

0 comments on commit e76faf7

Please sign in to comment.