From f382295ed92f3188d02f38fb1a9a304db064863f Mon Sep 17 00:00:00 2001 From: "Larsen, Steffen" Date: Fri, 2 Sep 2022 04:08:47 -0700 Subject: [PATCH 1/2] [SYCL] Remove host run and dependencies from SYCL/Config tests This commit removes the host run and any assumptions and operations related to the host device from the tests in SYCL/Config. Co-authored-by: Sachkov, Alexey Signed-off-by: Larsen, Steffen --- SYCL/Config/allowlist.cpp | 64 ++++--- SYCL/Config/select_device.cpp | 308 ++++++++++++++++------------------ 2 files changed, 175 insertions(+), 197 deletions(-) diff --git a/SYCL/Config/allowlist.cpp b/SYCL/Config/allowlist.cpp index b4e093055d..9f94e3a0e8 100644 --- a/SYCL/Config/allowlist.cpp +++ b/SYCL/Config/allowlist.cpp @@ -28,62 +28,58 @@ int main() { // Expected that the allowlist filter is not set if (getenv("PRINT_PLATFORM_INFO")) { - for (const sycl::platform &Platform : sycl::platform::get_platforms()) - if (!Platform.is_host()) { + for (const sycl::platform &Platform : sycl::platform::get_platforms()) { - std::string Name = Platform.get_info(); - std::string Ver = Platform.get_info(); - // As a string will be used as regexp pattern, we need to get rid of - // symbols that can be treated in a special way. - replaceSpecialCharacters(Name); - replaceSpecialCharacters(Ver); + std::string Name = Platform.get_info(); + std::string Ver = Platform.get_info(); + // As a string will be used as regexp pattern, we need to get rid of + // symbols that can be treated in a special way. + replaceSpecialCharacters(Name); + replaceSpecialCharacters(Ver); - std::cout << "SYCL_DEVICE_ALLOWLIST=PlatformName:{{" << Name - << "}},PlatformVersion:{{" << Ver << "}}"; + std::cout << "SYCL_DEVICE_ALLOWLIST=PlatformName:{{" << Name + << "}},PlatformVersion:{{" << Ver << "}}"; - return 0; - } + return 0; + } throw std::runtime_error("Non host device is not found"); } // Expected that the allowlist filter is not set if (getenv("PRINT_DEVICE_INFO")) { - for (const sycl::platform &Platform : sycl::platform::get_platforms()) - if (!Platform.is_host()) { - const sycl::device Dev = Platform.get_devices().at(0); - std::string Name = Dev.get_info(); - std::string Ver = Dev.get_info(); + for (const sycl::platform &Platform : sycl::platform::get_platforms()) { + const sycl::device Dev = Platform.get_devices().at(0); + std::string Name = Dev.get_info(); + std::string Ver = Dev.get_info(); - // As a string will be used as regexp pattern, we need to get rid of - // symbols that can be treated in a special way. - replaceSpecialCharacters(Name); - replaceSpecialCharacters(Ver); + // As a string will be used as regexp pattern, we need to get rid of + // symbols that can be treated in a special way. + replaceSpecialCharacters(Name); + replaceSpecialCharacters(Ver); - std::cout << "SYCL_DEVICE_ALLOWLIST=DeviceName:{{" << Name - << "}},DriverVersion:{{" << Ver << "}}"; + std::cout << "SYCL_DEVICE_ALLOWLIST=DeviceName:{{" << Name + << "}},DriverVersion:{{" << Ver << "}}"; - return 0; - } + return 0; + } throw std::runtime_error("Non host device is not found"); } // Expected the allowlist to be set with the "PRINT_DEVICE_INFO" run result if (getenv("TEST_DEVICE_AVAILABLE")) { - for (const sycl::platform &Platform : sycl::platform::get_platforms()) - if (!Platform.is_host()) { - if (Platform.get_devices().size() != 1) - throw std::runtime_error("Expected only one non host device."); + for (const sycl::platform &Platform : sycl::platform::get_platforms()) { + if (Platform.get_devices().size() != 1) + throw std::runtime_error("Expected only one non host device."); - return 0; - } + return 0; + } throw std::runtime_error("Non host device is not found"); } // Expected the allowlist to be set but empty if (getenv("TEST_DEVICE_IS_NOT_AVAILABLE")) { - for (const sycl::platform &Platform : sycl::platform::get_platforms()) - if (!Platform.is_host()) - throw std::runtime_error("Expected no non host device is available"); + if (!sycl::platform::get_platforms().empty()) + throw std::runtime_error("Expected no non host device is available"); return 0; } diff --git a/SYCL/Config/select_device.cpp b/SYCL/Config/select_device.cpp index 91d5671aa0..7364841e43 100644 --- a/SYCL/Config/select_device.cpp +++ b/SYCL/Config/select_device.cpp @@ -180,38 +180,35 @@ int main() { fs.open("select_device_config.txt"); if (fs.is_open()) { for (const auto &plt : platform::get_platforms()) { - if (!plt.has(aspect::host)) { - for (const auto &dev : plt.get_devices()) { - if (dev.has(aspect::gpu)) { - std::string name = dev.get_info(); - addEscapeSymbolToSpecialCharacters(name); - std::string ver = dev.get_info(); - if ((plt.get_backend() == backend::opencl) && - (sycl_be.find("opencl") != std::string::npos)) { - fs << "DeviceName:{{" << name << "}},DriverVersion:{{" << ver - << "}}" << std::endl; - passed = true; - break; - } else if ((plt.get_backend() == - backend::ext_oneapi_level_zero) && - (sycl_be.find("level_zero") != std::string::npos)) { - fs << "DeviceName:{{" << name << "}},DriverVersion:{{" << ver - << "}}" << std::endl; - passed = true; - break; - } else if ((plt.get_backend() == backend::ext_oneapi_cuda) && - (sycl_be.find("cuda") != std::string::npos)) { - fs << "DeviceName:{{" << name << "}},DriverVersion:{{" << ver - << "}}" << std::endl; - passed = true; - break; - } else if ((plt.get_backend() == backend::ext_oneapi_hip) && - (sycl_be.find("hip") != std::string::npos)) { - fs << "DeviceName:{{" << name << "}},DriverVersion:{{" << ver - << "}}" << std::endl; - passed = true; - break; - } + for (const auto &dev : plt.get_devices()) { + if (dev.has(aspect::gpu)) { + std::string name = dev.get_info(); + addEscapeSymbolToSpecialCharacters(name); + std::string ver = dev.get_info(); + if ((plt.get_backend() == backend::opencl) && + (sycl_be.find("opencl") != std::string::npos)) { + fs << "DeviceName:{{" << name << "}},DriverVersion:{{" << ver + << "}}" << std::endl; + passed = true; + break; + } else if ((plt.get_backend() == backend::ext_oneapi_level_zero) && + (sycl_be.find("level_zero") != std::string::npos)) { + fs << "DeviceName:{{" << name << "}},DriverVersion:{{" << ver + << "}}" << std::endl; + passed = true; + break; + } else if ((plt.get_backend() == backend::ext_oneapi_cuda) && + (sycl_be.find("cuda") != std::string::npos)) { + fs << "DeviceName:{{" << name << "}},DriverVersion:{{" << ver + << "}}" << std::endl; + passed = true; + break; + } else if ((plt.get_backend() == backend::ext_oneapi_hip) && + (sycl_be.find("hip") != std::string::npos)) { + fs << "DeviceName:{{" << name << "}},DriverVersion:{{" << ver + << "}}" << std::endl; + passed = true; + break; } } } @@ -313,25 +310,23 @@ int main() { fs.open("select_device_config.txt"); if (fs.is_open()) { for (const auto &plt : platform::get_platforms()) { - if (!plt.has(aspect::host)) { - for (const auto &dev : plt.get_devices()) { - if (dev.has(aspect::gpu)) { - std::string name = dev.get_info(); - addEscapeSymbolToSpecialCharacters(name); - std::string ver("98.76.54321"); - if (((plt.get_backend() == backend::opencl) && - (sycl_be.find("opencl") != std::string::npos)) || - ((plt.get_backend() == backend::ext_oneapi_level_zero) && - (sycl_be.find("level_zero") != std::string::npos)) || - ((plt.get_backend() == backend::ext_oneapi_cuda) && - (sycl_be.find("cuda") != std::string::npos)) || - ((plt.get_backend() == backend::ext_oneapi_hip) && - (sycl_be.find("hip") != std::string::npos))) { - fs << "DeviceName:{{" << name << "}},DriverVersion:{{" << ver - << "}}" << std::endl; - passed = true; - break; - } + for (const auto &dev : plt.get_devices()) { + if (dev.has(aspect::gpu)) { + std::string name = dev.get_info(); + addEscapeSymbolToSpecialCharacters(name); + std::string ver("98.76.54321"); + if (((plt.get_backend() == backend::opencl) && + (sycl_be.find("opencl") != std::string::npos)) || + ((plt.get_backend() == backend::ext_oneapi_level_zero) && + (sycl_be.find("level_zero") != std::string::npos)) || + ((plt.get_backend() == backend::ext_oneapi_cuda) && + (sycl_be.find("cuda") != std::string::npos)) || + ((plt.get_backend() == backend::ext_oneapi_hip) && + (sycl_be.find("hip") != std::string::npos))) { + fs << "DeviceName:{{" << name << "}},DriverVersion:{{" << ver + << "}}" << std::endl; + passed = true; + break; } } } @@ -446,45 +441,40 @@ int main() { fs.open("select_device_config.txt"); if (fs.is_open()) { for (const auto &plt : platform::get_platforms()) { - if (!plt.has(aspect::host)) { - for (const auto &dev : plt.get_devices()) { - if (dev.has(aspect::gpu)) { - std::string name = dev.get_info(); - addEscapeSymbolToSpecialCharacters(name); - std::string ver = dev.get_info(); - size_t pos = 0; - if (((plt.get_backend() == backend::opencl) && - (sycl_be.find("opencl") != std::string::npos)) || - ((plt.get_backend() == backend::ext_oneapi_level_zero) && - (sycl_be.find("level_zero") != std::string::npos))) { - if ((pos = ver.find(".")) == std::string::npos) { - throw std::runtime_error( - "Malformed syntax in version string"); - } - pos++; - size_t start = pos; - if ((pos = ver.find(".", pos)) == std::string::npos) { - throw std::runtime_error( - "Malformed syntax in version string"); - } - ver.replace(start, pos - start, "*"); - } else if (((plt.get_backend() == backend::ext_oneapi_cuda) && - (sycl_be.find("cuda") != std::string::npos)) || - ((plt.get_backend() == backend::ext_oneapi_hip) && - (sycl_be.find("hip") != std::string::npos))) { - if ((pos = ver.find(".")) == std::string::npos) { - throw std::runtime_error( - "Malformed syntax in version string"); - } - pos++; - ver.replace(pos, ver.length(), "*"); + for (const auto &dev : plt.get_devices()) { + if (dev.has(aspect::gpu)) { + std::string name = dev.get_info(); + addEscapeSymbolToSpecialCharacters(name); + std::string ver = dev.get_info(); + size_t pos = 0; + if (((plt.get_backend() == backend::opencl) && + (sycl_be.find("opencl") != std::string::npos)) || + ((plt.get_backend() == backend::ext_oneapi_level_zero) && + (sycl_be.find("level_zero") != std::string::npos))) { + if ((pos = ver.find(".")) == std::string::npos) { + throw std::runtime_error("Malformed syntax in version string"); } - - fs << "DeviceName:{{" << name << "}},DriverVersion:{{" << ver - << "}}" << std::endl; - passed = true; - break; + pos++; + size_t start = pos; + if ((pos = ver.find(".", pos)) == std::string::npos) { + throw std::runtime_error("Malformed syntax in version string"); + } + ver.replace(start, pos - start, "*"); + } else if (((plt.get_backend() == backend::ext_oneapi_cuda) && + (sycl_be.find("cuda") != std::string::npos)) || + ((plt.get_backend() == backend::ext_oneapi_hip) && + (sycl_be.find("hip") != std::string::npos))) { + if ((pos = ver.find(".")) == std::string::npos) { + throw std::runtime_error("Malformed syntax in version string"); + } + pos++; + ver.replace(pos, ver.length(), "*"); } + + fs << "DeviceName:{{" << name << "}},DriverVersion:{{" << ver + << "}}" << std::endl; + passed = true; + break; } } } @@ -527,23 +517,21 @@ int main() { fs.open("select_device_config.txt"); if (fs.is_open()) { for (const auto &plt : platform::get_platforms()) { - if (!plt.has(aspect::host)) { - for (const auto &dev : plt.get_devices()) { - if (dev.has(aspect::gpu)) { - std::string name = dev.get_info(); - addEscapeSymbolToSpecialCharacters(name); - if (((plt.get_backend() == backend::opencl) && - (sycl_be.find("opencl") != std::string::npos)) || - ((plt.get_backend() == backend::ext_oneapi_level_zero) && - (sycl_be.find("level_zero") != std::string::npos)) || - ((plt.get_backend() == backend::ext_oneapi_cuda) && - (sycl_be.find("cuda") != std::string::npos)) || - ((plt.get_backend() == backend::ext_oneapi_hip) && - (sycl_be.find("hip") != std::string::npos))) { - fs << "DeviceName:{{" << name << "}}" << std::endl; - passed = true; - break; - } + for (const auto &dev : plt.get_devices()) { + if (dev.has(aspect::gpu)) { + std::string name = dev.get_info(); + addEscapeSymbolToSpecialCharacters(name); + if (((plt.get_backend() == backend::opencl) && + (sycl_be.find("opencl") != std::string::npos)) || + ((plt.get_backend() == backend::ext_oneapi_level_zero) && + (sycl_be.find("level_zero") != std::string::npos)) || + ((plt.get_backend() == backend::ext_oneapi_cuda) && + (sycl_be.find("cuda") != std::string::npos)) || + ((plt.get_backend() == backend::ext_oneapi_hip) && + (sycl_be.find("hip") != std::string::npos))) { + fs << "DeviceName:{{" << name << "}}" << std::endl; + passed = true; + break; } } } @@ -636,29 +624,27 @@ int main() { std::stringstream ss; int count = 0; for (const auto &plt : platform::get_platforms()) { - if (!plt.has(aspect::host)) { - for (const auto &dev : plt.get_devices()) { - if (dev.has(aspect::gpu)) { - std::string name = dev.get_info(); - addEscapeSymbolToSpecialCharacters(name); - std::string ver = dev.get_info(); - if (((plt.get_backend() == backend::opencl) && - (sycl_be.find("opencl") != std::string::npos)) || - ((plt.get_backend() == backend::ext_oneapi_level_zero) && - (sycl_be.find("level_zero") != std::string::npos)) || - ((plt.get_backend() == backend::ext_oneapi_cuda) && - (sycl_be.find("cuda") != std::string::npos)) || - ((plt.get_backend() == backend::ext_oneapi_hip) && - (sycl_be.find("hip") != std::string::npos))) { - if (count > 0) { - ss << " | "; - } - ss << "DeviceName:{{" << name << "}},DriverVersion:{{" << ver - << "}}"; - count++; - passed = true; - break; + for (const auto &dev : plt.get_devices()) { + if (dev.has(aspect::gpu)) { + std::string name = dev.get_info(); + addEscapeSymbolToSpecialCharacters(name); + std::string ver = dev.get_info(); + if (((plt.get_backend() == backend::opencl) && + (sycl_be.find("opencl") != std::string::npos)) || + ((plt.get_backend() == backend::ext_oneapi_level_zero) && + (sycl_be.find("level_zero") != std::string::npos)) || + ((plt.get_backend() == backend::ext_oneapi_cuda) && + (sycl_be.find("cuda") != std::string::npos)) || + ((plt.get_backend() == backend::ext_oneapi_hip) && + (sycl_be.find("hip") != std::string::npos))) { + if (count > 0) { + ss << " | "; } + ss << "DeviceName:{{" << name << "}},DriverVersion:{{" << ver + << "}}"; + count++; + passed = true; + break; } } } @@ -703,23 +689,21 @@ int main() { fs.open("select_device_config.txt"); if (fs.is_open()) { for (const auto &plt : platform::get_platforms()) { - if (!plt.has(aspect::host)) { - for (const auto &dev : plt.get_devices()) { - if (dev.has(aspect::gpu)) { - std::string name = dev.get_info(); - addEscapeSymbolToSpecialCharacters(name); - if (((plt.get_backend() == backend::opencl) && - (sycl_be.find("opencl") != std::string::npos)) || - ((plt.get_backend() == backend::ext_oneapi_level_zero) && - (sycl_be.find("level_zero") != std::string::npos)) || - ((plt.get_backend() == backend::ext_oneapi_cuda) && - (sycl_be.find("cuda") != std::string::npos)) || - ((plt.get_backend() == backend::ext_oneapi_hip) && - (sycl_be.find("hip") != std::string::npos))) { - fs << "DeviceName:HAHA{{" << name << "}}" << std::endl; - passed = true; - break; - } + for (const auto &dev : plt.get_devices()) { + if (dev.has(aspect::gpu)) { + std::string name = dev.get_info(); + addEscapeSymbolToSpecialCharacters(name); + if (((plt.get_backend() == backend::opencl) && + (sycl_be.find("opencl") != std::string::npos)) || + ((plt.get_backend() == backend::ext_oneapi_level_zero) && + (sycl_be.find("level_zero") != std::string::npos)) || + ((plt.get_backend() == backend::ext_oneapi_cuda) && + (sycl_be.find("cuda") != std::string::npos)) || + ((plt.get_backend() == backend::ext_oneapi_hip) && + (sycl_be.find("hip") != std::string::npos))) { + fs << "DeviceName:HAHA{{" << name << "}}" << std::endl; + passed = true; + break; } } } @@ -833,25 +817,23 @@ int main() { fs.open("select_device_config.txt"); if (fs.is_open()) { for (const auto &plt : platform::get_platforms()) { - if (!plt.has(aspect::host)) { - for (const auto &dev : plt.get_devices()) { - if (dev.has(aspect::gpu)) { - std::string name = dev.get_info(); - addEscapeSymbolToSpecialCharacters(name); - std::string ver = dev.get_info(); - if (((plt.get_backend() == backend::opencl) && - (sycl_be.find("opencl") != std::string::npos)) || - ((plt.get_backend() == backend::ext_oneapi_level_zero) && - (sycl_be.find("level_zero") != std::string::npos)) || - ((plt.get_backend() == backend::ext_oneapi_cuda) && - (sycl_be.find("cuda") != std::string::npos)) || - ((plt.get_backend() == backend::ext_oneapi_hip) && - (sycl_be.find("hip") != std::string::npos))) { - fs << "DeviceName:{{" << name << "}},DriverVersion:HAHA{{" - << ver << "}}" << std::endl; - passed = true; - break; - } + for (const auto &dev : plt.get_devices()) { + if (dev.has(aspect::gpu)) { + std::string name = dev.get_info(); + addEscapeSymbolToSpecialCharacters(name); + std::string ver = dev.get_info(); + if (((plt.get_backend() == backend::opencl) && + (sycl_be.find("opencl") != std::string::npos)) || + ((plt.get_backend() == backend::ext_oneapi_level_zero) && + (sycl_be.find("level_zero") != std::string::npos)) || + ((plt.get_backend() == backend::ext_oneapi_cuda) && + (sycl_be.find("cuda") != std::string::npos)) || + ((plt.get_backend() == backend::ext_oneapi_hip) && + (sycl_be.find("hip") != std::string::npos))) { + fs << "DeviceName:{{" << name << "}},DriverVersion:HAHA{{" << ver + << "}}" << std::endl; + passed = true; + break; } } } From c968768182dfe55747c242e85d8c0e572525ef67 Mon Sep 17 00:00:00 2001 From: "Larsen, Steffen" Date: Mon, 5 Sep 2022 04:43:56 -0700 Subject: [PATCH 2/2] Revert allowlist.cpp Signed-off-by: Larsen, Steffen --- SYCL/Config/allowlist.cpp | 64 +++++++++++++++++++++------------------ 1 file changed, 34 insertions(+), 30 deletions(-) diff --git a/SYCL/Config/allowlist.cpp b/SYCL/Config/allowlist.cpp index 9f94e3a0e8..b4e093055d 100644 --- a/SYCL/Config/allowlist.cpp +++ b/SYCL/Config/allowlist.cpp @@ -28,58 +28,62 @@ int main() { // Expected that the allowlist filter is not set if (getenv("PRINT_PLATFORM_INFO")) { - for (const sycl::platform &Platform : sycl::platform::get_platforms()) { + for (const sycl::platform &Platform : sycl::platform::get_platforms()) + if (!Platform.is_host()) { - std::string Name = Platform.get_info(); - std::string Ver = Platform.get_info(); - // As a string will be used as regexp pattern, we need to get rid of - // symbols that can be treated in a special way. - replaceSpecialCharacters(Name); - replaceSpecialCharacters(Ver); + std::string Name = Platform.get_info(); + std::string Ver = Platform.get_info(); + // As a string will be used as regexp pattern, we need to get rid of + // symbols that can be treated in a special way. + replaceSpecialCharacters(Name); + replaceSpecialCharacters(Ver); - std::cout << "SYCL_DEVICE_ALLOWLIST=PlatformName:{{" << Name - << "}},PlatformVersion:{{" << Ver << "}}"; + std::cout << "SYCL_DEVICE_ALLOWLIST=PlatformName:{{" << Name + << "}},PlatformVersion:{{" << Ver << "}}"; - return 0; - } + return 0; + } throw std::runtime_error("Non host device is not found"); } // Expected that the allowlist filter is not set if (getenv("PRINT_DEVICE_INFO")) { - for (const sycl::platform &Platform : sycl::platform::get_platforms()) { - const sycl::device Dev = Platform.get_devices().at(0); - std::string Name = Dev.get_info(); - std::string Ver = Dev.get_info(); + for (const sycl::platform &Platform : sycl::platform::get_platforms()) + if (!Platform.is_host()) { + const sycl::device Dev = Platform.get_devices().at(0); + std::string Name = Dev.get_info(); + std::string Ver = Dev.get_info(); - // As a string will be used as regexp pattern, we need to get rid of - // symbols that can be treated in a special way. - replaceSpecialCharacters(Name); - replaceSpecialCharacters(Ver); + // As a string will be used as regexp pattern, we need to get rid of + // symbols that can be treated in a special way. + replaceSpecialCharacters(Name); + replaceSpecialCharacters(Ver); - std::cout << "SYCL_DEVICE_ALLOWLIST=DeviceName:{{" << Name - << "}},DriverVersion:{{" << Ver << "}}"; + std::cout << "SYCL_DEVICE_ALLOWLIST=DeviceName:{{" << Name + << "}},DriverVersion:{{" << Ver << "}}"; - return 0; - } + return 0; + } throw std::runtime_error("Non host device is not found"); } // Expected the allowlist to be set with the "PRINT_DEVICE_INFO" run result if (getenv("TEST_DEVICE_AVAILABLE")) { - for (const sycl::platform &Platform : sycl::platform::get_platforms()) { - if (Platform.get_devices().size() != 1) - throw std::runtime_error("Expected only one non host device."); + for (const sycl::platform &Platform : sycl::platform::get_platforms()) + if (!Platform.is_host()) { + if (Platform.get_devices().size() != 1) + throw std::runtime_error("Expected only one non host device."); - return 0; - } + return 0; + } throw std::runtime_error("Non host device is not found"); } // Expected the allowlist to be set but empty if (getenv("TEST_DEVICE_IS_NOT_AVAILABLE")) { - if (!sycl::platform::get_platforms().empty()) - throw std::runtime_error("Expected no non host device is available"); + for (const sycl::platform &Platform : sycl::platform::get_platforms()) + if (!Platform.is_host()) + throw std::runtime_error("Expected no non host device is available"); return 0; }