summaryrefslogtreecommitdiff
path: root/src/database/database_structure.hpp
diff options
context:
space:
mode:
authorCedric Nugteren <web@cedricnugteren.nl>2017-09-16 18:02:37 +0200
committerCedric Nugteren <web@cedricnugteren.nl>2017-09-16 18:02:37 +0200
commit4e317f5e85916a275ff3d22225f7cd42cea03d9b (patch)
tree5e87f7a3750e51cd5e8225a04fa09470c949b97d /src/database/database_structure.hpp
parentc21878eccee068a039f6c9567f8286c18751c69a (diff)
Improved compilation time of the tuner database
Diffstat (limited to 'src/database/database_structure.hpp')
-rw-r--r--src/database/database_structure.hpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/database/database_structure.hpp b/src/database/database_structure.hpp
index 35d73ffe..d592d7ac 100644
--- a/src/database/database_structure.hpp
+++ b/src/database/database_structure.hpp
@@ -15,6 +15,7 @@
#define CLBLAST_DATABASE_DATABASE_STRUCTURE_H_
#include <string>
+#include <array>
#include <vector>
#include <unordered_map>
@@ -24,19 +25,23 @@ namespace database {
// =================================================================================================
+// Type alias for the database storage (arrays for fast compilation/efficiency)
+using Name = std::array<char, 51>; // name as stored in database (50 chars + string terminator)
+using Params = std::array<size_t, 14>; // parameters as stored in database
+
+// Type alias after extracting from the database (map for improved code readability)
+using Parameters = std::unordered_map<std::string, size_t>; // parameters after reading from DB
+
// The OpenCL device types
const std::string kDeviceTypeCPU = "CPU";
const std::string kDeviceTypeGPU = "GPU";
const std::string kDeviceTypeAccelerator = "accelerator";
const std::string kDeviceTypeAll = "default";
+const Name kDeviceNameDefault = {"default "};
-// Type alias for the database parameters
-using Parameters = std::unordered_map<std::string, size_t>;
-
-// Structures for content inside the database
struct DatabaseDevice {
- const std::string name;
- const std::vector<size_t> parameters; // parameter values
+ const Name name;
+ const Params parameters; // parameter values
};
struct DatabaseArchitecture {
const std::string name;