// Version string has the following format:
// a. OpenCL<space><major.minor><space><vendor-specific-information>
// b. <major.minor>
+ // c. <AmdGcnArchName> e.g gfx1030
std::string ver;
ver = dev.get_info<sycl::info::device::version>();
std::string::size_type i = 0;
- while (i < ver.size())
- {
- if (isdigit(ver[i]))
- break;
- i++;
+ while (i < ver.size()) {
+ if (isdigit(ver[i]))
+ break;
+ i++;
}
major = std::stoi(&(ver[i]));
- while (i < ver.size())
- {
- if (ver[i] == '.')
- break;
- i++;
+ while (i < ver.size()) {
+ if (ver[i] == '.')
+ break;
+ i++;
+ }
+ if (i < ver.size()) {
+ // a. and b.
+ i++;
+ minor = std::stoi(&(ver[i]));
+ } else {
+ // c.
+ minor = 0;
}
- i++;
- minor = std::stoi(&(ver[i]));
}
template <typename tag, typename T>