diff options
author | Ivan Shapovalov <intelfx@intelfx.name> | 2016-07-12 13:33:25 +0300 |
---|---|---|
committer | Ivan Shapovalov <intelfx@intelfx.name> | 2016-07-22 11:15:52 +0300 |
commit | e4e1f05079273f60f4f15280b3f103810c7eb31f (patch) | |
tree | f9c10e42be8d0e8fd48db1b9feb59e01b89ab272 /src/database/database.hpp | |
parent | ae3299da302ba2c26f1e3490a1a7ee389d91feee (diff) |
clblast::Database, clblast::Routine: implement "database overlays" provided by routine implementation
Diffstat (limited to 'src/database/database.hpp')
-rw-r--r-- | src/database/database.hpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/database/database.hpp b/src/database/database.hpp index 0987cbed..5a61fad9 100644 --- a/src/database/database.hpp +++ b/src/database/database.hpp @@ -32,6 +32,7 @@ class Database { // Type alias for the database parameters using Parameters = std::unordered_map<std::string,size_t>; + using ParametersPtr = const Parameters*; // Structures for content inside the database struct DatabaseDevice { @@ -78,9 +79,9 @@ class Database { static const DatabaseEntry PadtransposeHalf, PadtransposeSingle, PadtransposeDouble, PadtransposeComplexSingle, PadtransposeComplexDouble; static const std::vector<DatabaseEntry> database; - // The constructor + // The constructor with a user-provided database overlay explicit Database(const Queue &queue, const std::vector<std::string> &routines, - const Precision precision); + const Precision precision, const std::vector<DatabaseEntry> &overlay); // Accessor of values by key size_t operator[](const std::string key) const { return parameters_.find(key)->second; } @@ -93,6 +94,11 @@ class Database { const std::string &this_vendor, const std::string &this_device, const Precision this_precision) const; + // Alternate search method in a specified database, returning pointer (possibly NULL) + ParametersPtr Search(const std::string &this_kernel, const std::string &this_type, + const std::string &this_vendor, const std::string &this_device, + const Precision this_precision, const std::vector<DatabaseEntry> &db) const; + // Found parameters suitable for this device/kernel Parameters parameters_; }; |