Kernel Tuning Toolkit 2.3
 
Loading...
Searching...
No Matches
Tuner.h
Go to the documentation of this file.
1
4#pragma once
5
6#include <memory>
7#include <optional>
8#include <ostream>
9#include <string>
10#include <vector>
11
12// Compatibility for multiple platforms
13#include <KttPlatform.h>
14
15// Data types and enums
20#include <Kernel/ModifierType.h>
29#include <Output/OutputFormat.h>
31#include <KttTypes.h>
33
34// Data holders
37#include <Api/Info/DeviceInfo.h>
40#include <Api/Output/KernelResult.h>
41
42// Tuner customization
46
47// Half floating-point data type support
48#include <Utility/External/half.hpp>
49
53namespace ktt
54{
55
56class TunerCore;
57
61class KTT_API Tuner
62{
63public:
72 explicit Tuner(const PlatformIndex platform, const DeviceIndex device, const ComputeApi api);
73
85 explicit Tuner(const PlatformIndex platform, const DeviceIndex device, const ComputeApi api, const uint32_t computeQueueCount);
86
93 explicit Tuner(const ComputeApi api, const ComputeApiInitializer& initializer);
94
103 explicit Tuner(const ComputeApi api, const ComputeApiInitializer& initializer, std::vector<QueueId>& assignedQueueIds);
104
109
121 KernelDefinitionId AddKernelDefinition(const std::string& name, const std::string& source, const DimensionVector& globalSize,
122 const DimensionVector& localSize, const std::vector<std::string>& typeNames = {});
123
132 KernelDefinitionId AddKernelDefinition(const std::string& name, const std::string& source,
133 const std::vector<std::string>& typeNames = {});
134
146 KernelDefinitionId AddKernelDefinitionFromFile(const std::string& name, const std::string& filePath,
147 const DimensionVector& globalSize, const DimensionVector& localSize, const std::vector<std::string>& typeNames = {});
148
157 KernelDefinitionId AddKernelDefinitionFromFile(const std::string& name, const std::string& filePath,
158 const std::vector<std::string>& typeNames = {});
159
166 KernelDefinitionId GetKernelDefinitionId(const std::string& name, const std::vector<std::string>& typeNames = {}) const;
167
174
181 void SetArguments(const KernelDefinitionId id, const std::vector<ArgumentId>& argumentIds);
182
189 KernelId CreateSimpleKernel(const std::string& name, const KernelDefinitionId definitionId);
190
200 KernelId CreateCompositeKernel(const std::string& name, const std::vector<KernelDefinitionId>& definitionIds,
201 KernelLauncher launcher = nullptr);
202
208 void RemoveKernel(const KernelId id);
209
217 void SetLauncher(const KernelId id, KernelLauncher launcher);
218
232 template <typename T>
233 void AddParameter(const KernelId id, const std::string& name, const std::vector<T>& values, const std::string& group = "");
234
249 void AddCompilerParameter(const KernelId id, const std::string& name, const std::vector<std::string>& values = {},
250 const std::string& group = "");
251
260 void AddSeparateCompilerParameter(const KernelId id, const std::string& name, const std::vector<std::string>& values = {});
261
276 void AddScriptParameter(const KernelId id, const std::string& name, const ParameterValueType valueType, const std::string& valueScript,
277 const std::string& group = "");
278
294 void AddScriptCompilerParameter(const KernelId id, const std::string& name, const ParameterValueType valueType, const std::string& valueScript,
295 const std::string& group = "");
296
307 void AddScriptSeparateCompilerParameter(const KernelId id, const std::string& name, const ParameterValueType valueType,
308 const std::string& valueScript);
309
327 void AddThreadModifier(const KernelId id, const std::vector<KernelDefinitionId>& definitionIds, const ModifierType type,
328 const ModifierDimension dimension, const std::vector<std::string>& parameters, ModifierFunction function);
329
344 void AddThreadModifier(const KernelId id, const std::vector<KernelDefinitionId>& definitionIds, const ModifierType type,
345 const ModifierDimension dimension, const std::string& parameter, const ModifierAction action);
346
359 void AddScriptThreadModifier(const KernelId id, const std::vector<KernelDefinitionId>& definitionIds, const ModifierType type,
360 const ModifierDimension dimension, const std::string& script);
361
372 void AddConstraint(const KernelId id, const std::vector<std::string>& parameters, ConstraintFunction function);
373
384 void AddGenericConstraint(const KernelId id, const std::vector<std::string>& parameters, GenericConstraintFunction function);
385
396 void AddScriptConstraint(const KernelId id, const std::vector<std::string>& parameters, const std::string& script);
397
405 void SetProfiledDefinitions(const KernelId id, const std::vector<KernelDefinitionId>& definitionIds);
406
418 template <typename T>
419 ArgumentId AddArgumentVector(const std::vector<T>& data, const ArgumentAccessType accessType, const ArgumentId& customId = "");
420
438 template <typename T>
439 ArgumentId AddArgumentVector(std::vector<T>& data, const ArgumentAccessType accessType, const ArgumentMemoryLocation memoryLocation,
440 const ArgumentManagementType managementType, const bool referenceUserData, const ArgumentId& customId = "");
441
455 template <typename T>
456 ArgumentId AddArgumentVector(ComputeBuffer buffer, const size_t bufferSize, const ArgumentAccessType accessType,
457 const ArgumentMemoryLocation memoryLocation, const ArgumentId& customId = "");
458
475 ArgumentId AddArgumentVector(ComputeBuffer buffer, const size_t bufferSize, const size_t elementSize,
476 const ArgumentAccessType accessType, const ArgumentMemoryLocation memoryLocation, const ArgumentId& customId = "");
477
494 ArgumentId AddArgumentVectorFromFile(const std::string& filePath, const ArgumentDataType dataType, const size_t elementSize,
495 const ArgumentAccessType accessType, const ArgumentMemoryLocation memoryLocation = ArgumentMemoryLocation::Device,
496 const ArgumentManagementType managementType = ArgumentManagementType::Framework, const ArgumentId& customId = "");
497
517 ArgumentId AddArgumentVectorFromGenerator(const std::string& generatorFunction, const ArgumentDataType dataType,
518 const size_t bufferSize, const size_t elementSize, const ArgumentAccessType accessType,
519 const ArgumentMemoryLocation memoryLocation = ArgumentMemoryLocation::Device,
520 const ArgumentManagementType managementType = ArgumentManagementType::Framework, const ArgumentId& customId = "");
521
527 void SaveArgumentVector(const ArgumentId& id, const std::string& filePath);
528
535 template <typename T>
536 ArgumentId AddArgumentScalar(const T& data, const ArgumentId& customId = "");
537
546 ArgumentId AddArgumentScalar(const void* data, const size_t dataSize, const ArgumentId& customId = "");
547
558 template <typename T>
559 ArgumentId AddArgumentLocal(const size_t localMemorySize, const ArgumentId& customId = "");
560
569 template <typename T>
570 ArgumentId AddArgumentSymbol(const T& data, const ArgumentId& customId = "", const std::string& symbolName = "");
571
577 void RemoveArgument(const ArgumentId& id);
578
585 void SetReadOnlyArgumentCache(const bool flag);
586
596 KernelResult Run(const KernelId id, const KernelConfiguration& configuration, const std::vector<BufferOutputDescriptor>& output);
597
609 KernelResult Run(const KernelId id, const KernelConfiguration& configuration, const KernelDimensions& dimensions,
610 const std::vector<BufferOutputDescriptor>& output);
611
620 void SetProfiling(const bool flag);
621
627
636 void SetValidationMethod(const ValidationMethod method, const double toleranceThreshold);
637
644
650 void SetValidationRange(const ArgumentId& id, const size_t range);
651
660 void SetValueComparator(const ArgumentId& id, ValueComparator comparator);
661
671
683 void SetReferenceKernel(const ArgumentId& id, const KernelId referenceId, const KernelConfiguration& configuration,
684 const KernelDimensions& dimensions = {});
685
692 void SetReferenceArgument(const ArgumentId& id, const ArgumentId& referenceId);
693
708 std::vector<KernelResult> Tune(const KernelId id, std::unique_ptr<StopCondition> stopCondition = nullptr,
709 const std::optional<PreciseMeasurementParameters>& preciseParams = std::nullopt);
710
728 std::vector<KernelResult> Tune(const KernelId id, const KernelDimensions& dimensions,
729 std::unique_ptr<StopCondition> stopCondition = nullptr,
730 const std::optional<PreciseMeasurementParameters>& preciseParams = std::nullopt);
731
747 std::vector<KernelResult> TuneOptions(const KernelId id, const KernelConfiguration& baseConfiguration,
748 std::unique_ptr<StopCondition> stopCondition = nullptr,
749 const std::optional<PreciseMeasurementParameters>& preciseParams = std::nullopt);
750
768 std::vector<KernelResult> TuneOptions(const KernelId id, const KernelConfiguration& baseConfiguration,
769 const KernelDimensions& dimensions, std::unique_ptr<StopCondition> stopCondition = nullptr,
770 const std::optional<PreciseMeasurementParameters>& preciseParams = std::nullopt);
771
790 KernelResult TuneIteration(const KernelId id, const std::vector<BufferOutputDescriptor>& output,
791 const bool recomputeReference = false, const std::optional<PreciseMeasurementParameters>& preciseParams = std::nullopt);
792
814 KernelResult TuneIteration(const KernelId id, const KernelDimensions& dimensions, const std::vector<BufferOutputDescriptor>& output,
815 const bool recomputeReference = false, const std::optional<PreciseMeasurementParameters>& preciseParams = std::nullopt);
816
830 [[deprecated("Use SimulateTuning() method instead.")]] std::vector<KernelResult> SimulateKernelTuning(const KernelId id,
831 const std::vector<KernelResult>& results, const uint64_t iterations = 0);
832
846 std::vector<KernelResult> SimulateTuning(const KernelId id, const std::vector<KernelResult>& results,
847 std::unique_ptr<StopCondition> stopCondition = nullptr);
848
854 void SetSearcher(const KernelId id, std::unique_ptr<Searcher> searcher);
855
866 void SetProfileBasedSearcher(const KernelId id, const std::string& modelPath, const bool useBuiltinModule = true, const uint batchSize = 5, const uint neighborSize = 100, const uint randomSize = 10);
867
873
879
885 [[deprecated("Use ClearConfigurationData() method instead.")]] void ClearData(const KernelId id);
886
893 uint64_t GetConfigurationsCount(const KernelId id) const;
894
902
911
920 std::string GetKernelSource(const KernelId id, const KernelConfiguration& configuration) const;
921
929 std::string GetKernelDefinitionSource(const KernelDefinitionId id, const KernelConfiguration& configuration) const;
930
935 static void SetTimeUnit(const TimeUnit unit);
936
941 KernelResult GetBestResult(const std::vector<KernelResult>& results) const;
942
943
953 void SaveResults(const std::vector<KernelResult>& results, const std::string& filePath, const OutputFormat format,
954 const UserData& data = {}) const;
955
964 std::vector<KernelResult> LoadResults(const std::string& filePath, const OutputFormat format) const;
965
975 std::vector<KernelResult> LoadResults(const std::string& filePath, const OutputFormat format, UserData& data) const;
976
984
990
996
1002
1008
1013
1018
1023 [[deprecated("Use SynchronizeDevice() or SynchronizeQueues() method instead.")]] void Synchronize();
1024
1033 void SetProfilingCounters(const std::vector<std::string>& counters);
1034
1045 void SetCompilerOptions(const std::string& options, const bool overrideDefault = false);
1046
1053 void SetCompiler(const std::string& compiler);
1054
1063
1071
1078 void SetKernelCacheCapacity(const uint64_t capacity);
1079
1084 std::vector<PlatformInfo> GetPlatformInfo() const;
1085
1091 std::vector<DeviceInfo> GetDeviceInfo(const PlatformIndex platform) const;
1092
1098
1103 static void SetLoggingLevel(const LoggingLevel level);
1104
1110
1115 static void SetLoggingTarget(std::ostream& outputTarget);
1116
1121 static void SetLoggingTarget(const std::string& filePath);
1122
1123private:
1124 std::unique_ptr<TunerCore> m_Tuner;
1125
1126 KTT_VIRTUAL_API ArgumentId AddArgumentWithReferencedData(const size_t elementSize, const ArgumentDataType dataType,
1127 const ArgumentMemoryLocation memoryLocation, const ArgumentAccessType accessType, const ArgumentMemoryType memoryType,
1128 const ArgumentManagementType managementType, void* data, const size_t dataSize, const ArgumentId& customId = "");
1129 KTT_VIRTUAL_API ArgumentId AddArgumentWithOwnedData(const size_t elementSize, const ArgumentDataType dataType,
1130 const ArgumentMemoryLocation memoryLocation, const ArgumentAccessType accessType, const ArgumentMemoryType memoryType,
1131 const ArgumentManagementType managementType, const void* data, const size_t dataSize, const ArgumentId& customId = "",
1132 const std::string& symbolName = "");
1133 KTT_VIRTUAL_API ArgumentId AddUserArgument(ComputeBuffer buffer, const size_t elementSize, const ArgumentDataType dataType,
1134 const ArgumentMemoryLocation memoryLocation, const ArgumentAccessType accessType, const size_t dataSize,
1135 const ArgumentId& customId = "");
1136 KTT_VIRTUAL_API void AddParameterInternal(const KernelId id, const std::string& name, const std::vector<ParameterValue>& values,
1137 const std::string& group, const bool isCompilerParameter);
1138
1139 template <typename T>
1140 ArgumentDataType DeriveArgumentDataType() const;
1141};
1142
1143} // namespace ktt
1144
1145#include <Tuner.inl>
Definition ComputeApiInitializer.h:18
Definition DeviceInfo.h:20
Definition DimensionVector.h:21
Definition KernelConfiguration.h:19
Definition KernelResult.h:21
Definition Tuner.h:62
void SetProfiling(const bool flag)
void SetKernelCacheCapacity(const uint64_t capacity)
Tuner(const ComputeApi api, const ComputeApiInitializer &initializer)
void AddScriptThreadModifier(const KernelId id, const std::vector< KernelDefinitionId > &definitionIds, const ModifierType type, const ModifierDimension dimension, const std::string &script)
static LoggingLevel GetLoggingLevel()
void RemoveArgument(const ArgumentId &id)
void Synchronize()
ArgumentId AddArgumentLocal(const size_t localMemorySize, const ArgumentId &customId="")
void SetValidationMethod(const ValidationMethod method, const double toleranceThreshold)
std::vector< KernelResult > LoadResults(const std::string &filePath, const OutputFormat format, UserData &data) const
KernelId CreateSimpleKernel(const std::string &name, const KernelDefinitionId definitionId)
void AddScriptConstraint(const KernelId id, const std::vector< std::string > &parameters, const std::string &script)
KernelId CreateCompositeKernel(const std::string &name, const std::vector< KernelDefinitionId > &definitionIds, KernelLauncher launcher=nullptr)
void SetArguments(const KernelDefinitionId id, const std::vector< ArgumentId > &argumentIds)
void RemoveComputeQueue(const QueueId id)
std::string GetKernelDefinitionSource(const KernelDefinitionId id, const KernelConfiguration &configuration) const
KernelDefinitionId AddKernelDefinition(const std::string &name, const std::string &source, const std::vector< std::string > &typeNames={})
void AddScriptParameter(const KernelId id, const std::string &name, const ParameterValueType valueType, const std::string &valueScript, const std::string &group="")
void SetValidationRange(const ArgumentId &id, const size_t range)
KernelDefinitionId AddKernelDefinitionFromFile(const std::string &name, const std::string &filePath, const std::vector< std::string > &typeNames={})
void WaitForTransferAction(const TransferActionId id)
void SetReferenceArgument(const ArgumentId &id, const ArgumentId &referenceId)
KernelConfiguration GetBestConfiguration(const KernelId id) const
std::vector< KernelResult > SimulateTuning(const KernelId id, const std::vector< KernelResult > &results, std::unique_ptr< StopCondition > stopCondition=nullptr)
std::vector< KernelResult > TuneOptions(const KernelId id, const KernelConfiguration &baseConfiguration, std::unique_ptr< StopCondition > stopCondition=nullptr, const std::optional< PreciseMeasurementParameters > &preciseParams=std::nullopt)
DeviceInfo GetCurrentDeviceInfo() const
void WaitForComputeAction(const ComputeActionId id)
ArgumentId AddArgumentVector(ComputeBuffer buffer, const size_t bufferSize, const size_t elementSize, const ArgumentAccessType accessType, const ArgumentMemoryLocation memoryLocation, const ArgumentId &customId="")
std::vector< DeviceInfo > GetDeviceInfo(const PlatformIndex platform) const
void SetReferenceComputation(const ArgumentId &id, ReferenceComputation computation)
ArgumentId AddArgumentVector(ComputeBuffer buffer, const size_t bufferSize, const ArgumentAccessType accessType, const ArgumentMemoryLocation memoryLocation, const ArgumentId &customId="")
void SetCompilerOptions(const std::string &options, const bool overrideDefault=false)
std::vector< KernelResult > LoadResults(const std::string &filePath, const OutputFormat format) const
void SaveResults(const std::vector< KernelResult > &results, const std::string &filePath, const OutputFormat format, const UserData &data={}) const
std::vector< PlatformInfo > GetPlatformInfo() const
void AddConstraint(const KernelId id, const std::vector< std::string > &parameters, ConstraintFunction function)
void SetProfileBasedSearcher(const KernelId id, const std::string &modelPath, const bool useBuiltinModule=true, const uint batchSize=5, const uint neighborSize=100, const uint randomSize=10)
std::vector< KernelResult > Tune(const KernelId id, std::unique_ptr< StopCondition > stopCondition=nullptr, const std::optional< PreciseMeasurementParameters > &preciseParams=std::nullopt)
Tuner(const PlatformIndex platform, const DeviceIndex device, const ComputeApi api)
static void SetTimeUnit(const TimeUnit unit)
ArgumentId AddArgumentScalar(const void *data, const size_t dataSize, const ArgumentId &customId="")
KernelResult GetBestResult(const std::vector< KernelResult > &results) const
void InitializeConfigurationData(const KernelId id)
void SetProfiledDefinitions(const KernelId id, const std::vector< KernelDefinitionId > &definitionIds)
void AddParameter(const KernelId id, const std::string &name, const std::vector< T > &values, const std::string &group="")
Tuner(const ComputeApi api, const ComputeApiInitializer &initializer, std::vector< QueueId > &assignedQueueIds)
void SaveArgumentVector(const ArgumentId &id, const std::string &filePath)
void SetValidationMode(const ValidationMode mode)
void RemoveKernelDefinition(const KernelDefinitionId id)
KernelResult Run(const KernelId id, const KernelConfiguration &configuration, const std::vector< BufferOutputDescriptor > &output)
std::vector< KernelResult > Tune(const KernelId id, const KernelDimensions &dimensions, std::unique_ptr< StopCondition > stopCondition=nullptr, const std::optional< PreciseMeasurementParameters > &preciseParams=std::nullopt)
KernelResult TuneIteration(const KernelId id, const KernelDimensions &dimensions, const std::vector< BufferOutputDescriptor > &output, const bool recomputeReference=false, const std::optional< PreciseMeasurementParameters > &preciseParams=std::nullopt)
void SetAutomaticGlobalSizeCorrection(const bool flag)
bool GetProfiling()
static void SetLoggingLevel(const LoggingLevel level)
ArgumentId AddArgumentVector(const std::vector< T > &data, const ArgumentAccessType accessType, const ArgumentId &customId="")
Tuner(const PlatformIndex platform, const DeviceIndex device, const ComputeApi api, const uint32_t computeQueueCount)
KernelConfiguration CreateConfiguration(const KernelId id, const ParameterInput &parameters) const
std::vector< KernelResult > TuneOptions(const KernelId id, const KernelConfiguration &baseConfiguration, const KernelDimensions &dimensions, std::unique_ptr< StopCondition > stopCondition=nullptr, const std::optional< PreciseMeasurementParameters > &preciseParams=std::nullopt)
void RemoveKernel(const KernelId id)
QueueId AddComputeQueue(ComputeQueue queue)
KernelDefinitionId AddKernelDefinition(const std::string &name, const std::string &source, const DimensionVector &globalSize, const DimensionVector &localSize, const std::vector< std::string > &typeNames={})
void AddGenericConstraint(const KernelId id, const std::vector< std::string > &parameters, GenericConstraintFunction function)
ArgumentId AddArgumentVectorFromGenerator(const std::string &generatorFunction, const ArgumentDataType dataType, const size_t bufferSize, const size_t elementSize, const ArgumentAccessType accessType, const ArgumentMemoryLocation memoryLocation=ArgumentMemoryLocation::Device, const ArgumentManagementType managementType=ArgumentManagementType::Framework, const ArgumentId &customId="")
KernelDefinitionId GetKernelDefinitionId(const std::string &name, const std::vector< std::string > &typeNames={}) const
void SynchronizeQueue(const QueueId id)
void AddThreadModifier(const KernelId id, const std::vector< KernelDefinitionId > &definitionIds, const ModifierType type, const ModifierDimension dimension, const std::string &parameter, const ModifierAction action)
void SynchronizeDevice()
uint64_t GetConfigurationsCount(const KernelId id) const
void ClearData(const KernelId id)
ArgumentId AddArgumentVectorFromFile(const std::string &filePath, const ArgumentDataType dataType, const size_t elementSize, const ArgumentAccessType accessType, const ArgumentMemoryLocation memoryLocation=ArgumentMemoryLocation::Device, const ArgumentManagementType managementType=ArgumentManagementType::Framework, const ArgumentId &customId="")
void SetSearcher(const KernelId id, std::unique_ptr< Searcher > searcher)
KernelResult Run(const KernelId id, const KernelConfiguration &configuration, const KernelDimensions &dimensions, const std::vector< BufferOutputDescriptor > &output)
void SetProfilingCounters(const std::vector< std::string > &counters)
static void SetLoggingTarget(std::ostream &outputTarget)
void SetReadOnlyArgumentCache(const bool flag)
KernelResult TuneIteration(const KernelId id, const std::vector< BufferOutputDescriptor > &output, const bool recomputeReference=false, const std::optional< PreciseMeasurementParameters > &preciseParams=std::nullopt)
void SetCompiler(const std::string &compiler)
void AddScriptSeparateCompilerParameter(const KernelId id, const std::string &name, const ParameterValueType valueType, const std::string &valueScript)
void SetGlobalSizeType(const GlobalSizeType type)
void AddCompilerParameter(const KernelId id, const std::string &name, const std::vector< std::string > &values={}, const std::string &group="")
std::vector< KernelResult > SimulateKernelTuning(const KernelId id, const std::vector< KernelResult > &results, const uint64_t iterations=0)
void SynchronizeQueues()
KernelDefinitionId AddKernelDefinitionFromFile(const std::string &name, const std::string &filePath, const DimensionVector &globalSize, const DimensionVector &localSize, const std::vector< std::string > &typeNames={})
ArgumentId AddArgumentVector(std::vector< T > &data, const ArgumentAccessType accessType, const ArgumentMemoryLocation memoryLocation, const ArgumentManagementType managementType, const bool referenceUserData, const ArgumentId &customId="")
void SetReferenceKernel(const ArgumentId &id, const KernelId referenceId, const KernelConfiguration &configuration, const KernelDimensions &dimensions={})
ArgumentId AddArgumentSymbol(const T &data, const ArgumentId &customId="", const std::string &symbolName="")
void AddScriptCompilerParameter(const KernelId id, const std::string &name, const ParameterValueType valueType, const std::string &valueScript, const std::string &group="")
ArgumentId AddArgumentScalar(const T &data, const ArgumentId &customId="")
void AddThreadModifier(const KernelId id, const std::vector< KernelDefinitionId > &definitionIds, const ModifierType type, const ModifierDimension dimension, const std::vector< std::string > &parameters, ModifierFunction function)
static void SetLoggingTarget(const std::string &filePath)
void AddSeparateCompilerParameter(const KernelId id, const std::string &name, const std::vector< std::string > &values={})
void SetLauncher(const KernelId id, KernelLauncher launcher)
void ClearConfigurationData(const KernelId id)
std::string GetKernelSource(const KernelId id, const KernelConfiguration &configuration) const
void SetValueComparator(const ArgumentId &id, ValueComparator comparator)
Definition KttPlatform.h:41
std::map< KernelDefinitionId, std::pair< DimensionVector, DimensionVector > > KernelDimensions
Definition KttTypes.h:60
TimeUnit
Definition TimeUnit.h:13
GlobalSizeType
Definition GlobalSizeType.h:13
LoggingLevel
Definition LoggingLevel.h:13
ValidationMethod
Definition ValidationMethod.h:13
uint32_t DeviceIndex
Definition KttTypes.h:30
uint64_t ComputeActionId
Definition KttTypes.h:85
ValidationMode
Definition ValidationMode.h:15
ParameterValueType
Definition ParameterValueType.h:13
uint32_t QueueId
Definition KttTypes.h:35
ArgumentAccessType
Definition ArgumentAccessType.h:14
ModifierDimension
Definition ModifierDimension.h:14
uint64_t KernelId
Definition KttTypes.h:45
std::function< bool(const std::vector< const ParameterValue * > &)> GenericConstraintFunction
Definition KttTypes.h:105
std::function< bool(const std::vector< uint64_t > &)> ConstraintFunction
Definition KttTypes.h:100
ArgumentManagementType
Definition ArgumentManagementType.h:13
ArgumentDataType
Definition ArgumentDataType.h:13
uint64_t TransferActionId
Definition KttTypes.h:90
ComputeApi
Definition ComputeApi.h:13
void * ComputeQueue
Definition KttTypes.h:135
ArgumentMemoryType
Definition ArgumentMemoryType.h:14
std::function< void(void *)> ReferenceComputation
Definition KttTypes.h:115
ModifierAction
Definition ModifierAction.h:13
OutputFormat
Definition OutputFormat.h:13
std::function< bool(const void *, const void *)> ValueComparator
Definition KttTypes.h:120
void * ComputeBuffer
Definition KttTypes.h:140
ArgumentMemoryLocation
Definition ArgumentMemoryLocation.h:14
ModifierType
Definition ModifierType.h:13
uint32_t PlatformIndex
Definition KttTypes.h:25
std::function< uint64_t(const uint64_t, const std::vector< uint64_t > &)> ModifierFunction
Definition KttTypes.h:95
std::string ArgumentId
Definition KttTypes.h:50
std::vector< std::pair< std::string, ParameterValue > > ParameterInput
Definition KttTypes.h:65
uint64_t KernelDefinitionId
Definition KttTypes.h:40
std::map< std::string, std::string > UserData
Definition KttTypes.h:70
std::function< void(ComputeInterface &)> KernelLauncher
Definition KttTypes.h:110