Skip to content
This repository was archived by the owner on Mar 28, 2023. It is now read-only.

[SYCL][CUDA][HIP] Expand Config/select_device.cpp for CUDA and HIP #1086

Merged
merged 21 commits into from
Aug 9, 2022
Merged
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
0bdcce9
WRITE_DEVICE_INFO now passes for CUDA and HIP backends
sami-hatna66 Jul 7, 2022
7f3d8b6
WRITE_PLATFORM_INFO now passes for CUDA and HIP backends
sami-hatna66 Jul 7, 2022
a883df0
Add backend::level_zero to conditions (guard for when ext_oneapi_leve…
sami-hatna66 Jul 7, 2022
326b7f1
Delete select_device.out
sami-hatna66 Jul 7, 2022
4ee23ba
Delete select_device_config.txt
sami-hatna66 Jul 7, 2022
88852fd
Delete SYCL/Config/.vscode directory
sami-hatna66 Jul 7, 2022
14239f3
Add backend::level_zero to conditions (guard for when ext_oneapi_lev…
sami-hatna66 Jul 7, 2022
8d7f4c0
WRITE_PLATFORM_ERROR_INFO now passes for CUDA and HIP backends
sami-hatna66 Jul 7, 2022
3f076c9
WRITE_REG_EX_INFO now passes for CUDA and HIP backends
sami-hatna66 Jul 8, 2022
eab7564
WRITE_DEVICE_MULTI_INFO and WRITE_DEVICE_MALFORMED_INFO now pass for …
sami-hatna66 Jul 8, 2022
abae4d6
WRITE_PLATFORM_MALFORMED_INFO now passes for CUDA and HIP backends
sami-hatna66 Jul 8, 2022
4e1e021
WRITE_DRIVER_MALFORMED_INFO now passes for CUDA and HIP backends
sami-hatna66 Jul 8, 2022
7f55e89
WRITE_PLATVER_MALFORMED_INFO now passes for CUDA and HIP backends
sami-hatna66 Jul 8, 2022
90697f3
Update top comment
sami-hatna66 Jul 8, 2022
499f6a4
[SYCL][HIP][CUDA] Merge pull request #1 from sami-hatna66/modify_sele…
sami-hatna66 Jul 8, 2022
dd2740e
Ran clang-format
sami-hatna66 Jul 8, 2022
b4bbac1
Readded %GPU_RUN_PLACEHOLDER to pass CI
sami-hatna66 Jul 13, 2022
c0a70ec
Removed deprecated backends
sami-hatna66 Jul 13, 2022
8035eac
Delete .vscode directory
sami-hatna66 Jul 14, 2022
b49031d
Delete select_device.out
sami-hatna66 Jul 14, 2022
ebc8341
Delete select_device_config.txt
sami-hatna66 Jul 14, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
123 changes: 97 additions & 26 deletions SYCL/Config/select_device.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,6 @@
// RUN: env READ_PLATVER_MALFORMED_INFO=1 %GPU_RUN_PLACEHOLDER %t.out
//
// REQUIRES: gpu
//
// XFAIL: cuda || hip
//
// TODO: Update this test when SYCL_DEVICE_FILTER support in enabled.

//==------------ select_device.cpp - SYCL_DEVICE_ALLOWLIST test ------------==//
//
Expand Down Expand Up @@ -203,6 +199,18 @@ int main() {
<< "}}" << 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;
}
}
}
Expand Down Expand Up @@ -254,7 +262,11 @@ int main() {
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))) {
(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 << "PlatformName:{{" << name << "}},PlatformVersion:{{" << ver
<< "}}" << std::endl;
passed = true;
Expand Down Expand Up @@ -310,7 +322,11 @@ int main() {
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))) {
(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;
Expand Down Expand Up @@ -375,6 +391,20 @@ int main() {
<< "}}" << std::endl;
passed = true;
break;
} else if ((plt.get_backend() == backend::ext_oneapi_cuda) &&
(sycl_be.find("cuda") != std::string::npos)) {
std::string ver("CUDA 89.78");
fs << "PlatformName:{{" << name << "}},PlatformVersion:{{" << ver
<< "}}" << std::endl;
passed = true;
break;
} else if ((plt.get_backend() == backend::ext_oneapi_hip) &&
(sycl_be.find("hip") != std::string::npos)) {
std::string ver("67.88.9");
fs << "PlatformName:{{" << name << "}},PlatformVersion:{{" << ver
<< "}}" << std::endl;
passed = true;
break;
}
}
}
Expand Down Expand Up @@ -423,24 +453,37 @@ int main() {
addEscapeSymbolToSpecialCharacters(name);
std::string ver = dev.get_info<info::device::driver_version>();
size_t pos = 0;
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, "*");
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))) {
fs << "DeviceName:{{" << name << "}},DriverVersion:{{" << ver
<< "}}" << std::endl;
passed = true;
break;
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(), "*");
}

fs << "DeviceName:{{" << name << "}},DriverVersion:{{" << ver
<< "}}" << std::endl;
passed = true;
break;
}
}
}
Expand Down Expand Up @@ -492,7 +535,11 @@ int main() {
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))) {
(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;
Expand Down Expand Up @@ -541,7 +588,11 @@ int main() {
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))) {
(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 << "PlatformName:{{" << name << "}}" << std::endl;
passed = true;
break;
Expand Down Expand Up @@ -594,7 +645,11 @@ int main() {
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))) {
(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 << " | ";
}
Expand Down Expand Up @@ -656,7 +711,11 @@ int main() {
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))) {
(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;
Expand Down Expand Up @@ -717,7 +776,11 @@ int main() {
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))) {
(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 << "PlatformName:HAHA{{" << name << "}}" << std::endl;
passed = true;
break;
Expand Down Expand Up @@ -779,7 +842,11 @@ int main() {
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))) {
(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;
Expand Down Expand Up @@ -842,7 +909,11 @@ int main() {
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))) {
(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 << "PlatformName:{{" << name << "}},PlatformVersion:HAHA{{"
<< ver << "}}" << std::endl;
passed = true;
Expand Down