summaryrefslogtreecommitdiff
path: root/src/utilities
diff options
context:
space:
mode:
authorCedric Nugteren <web@cedricnugteren.nl>2017-09-08 21:09:05 +0200
committerCedric Nugteren <web@cedricnugteren.nl>2017-09-08 21:09:05 +0200
commit91ea7fcde2ac274db50b35fbbdb7deb89fb65b51 (patch)
tree689b41f39b4af203e9d557526e8d3fe2ebfb556c /src/utilities
parent20da5e33a86eda746c17cbdb7bfd295d9f92f074 (diff)
Introduced the notion of a device-architecture for the database and added device and architecture name mappings
Diffstat (limited to 'src/utilities')
-rw-r--r--src/utilities/utilities.cpp9
-rw-r--r--src/utilities/utilities.hpp2
2 files changed, 5 insertions, 6 deletions
diff --git a/src/utilities/utilities.cpp b/src/utilities/utilities.cpp
index 0cd00438..4ff419a5 100644
--- a/src/utilities/utilities.cpp
+++ b/src/utilities/utilities.cpp
@@ -390,17 +390,14 @@ template <> Precision PrecisionValue<double2>() { return Precision::kComplexDoub
template <> bool PrecisionSupported<float>(const Device &) { return true; }
template <> bool PrecisionSupported<float2>(const Device &) { return true; }
template <> bool PrecisionSupported<double>(const Device &device) {
- auto extensions = device.Capabilities();
- return (extensions.find(kKhronosDoublePrecision) == std::string::npos) ? false : true;
+ return device.HasExtension(kKhronosDoublePrecision);
}
template <> bool PrecisionSupported<double2>(const Device &device) {
- auto extensions = device.Capabilities();
- return (extensions.find(kKhronosDoublePrecision) == std::string::npos) ? false : true;
+ return device.HasExtension(kKhronosDoublePrecision);
}
template <> bool PrecisionSupported<half>(const Device &device) {
- auto extensions = device.Capabilities();
if (device.Name() == "Mali-T628") { return true; } // supports fp16 but not cl_khr_fp16 officially
- return (extensions.find(kKhronosHalfPrecision) == std::string::npos) ? false : true;
+ return device.HasExtension(kKhronosHalfPrecision);
}
// =================================================================================================
diff --git a/src/utilities/utilities.hpp b/src/utilities/utilities.hpp
index fae69b63..3ffb3be5 100644
--- a/src/utilities/utilities.hpp
+++ b/src/utilities/utilities.hpp
@@ -40,6 +40,8 @@ using double2 = std::complex<double>;
// Khronos OpenCL extensions
const std::string kKhronosHalfPrecision = "cl_khr_fp16";
const std::string kKhronosDoublePrecision = "cl_khr_fp64";
+const std::string kKhronosAttributesAMD = "cl_amd_device_attribute_query";
+const std::string kKhronosAttributesNVIDIA = "cl_nv_device_attribute_query";
// Catched an unknown error
constexpr auto kUnknownError = -999;