Kernel Tuning Toolkit 2.3
 
Loading...
Searching...
No Matches
KttTypes.h
Go to the documentation of this file.
1
4#pragma once
5
6#include <cstdint>
7#include <functional>
8#include <limits>
9#include <map>
10#include <string>
11#include <utility>
12#include <variant>
13#include <vector>
14
16
17namespace ktt
18{
19
20class ComputeInterface;
21
25using PlatformIndex = uint32_t;
26
30using DeviceIndex = uint32_t;
31
35using QueueId = uint32_t;
36
40using KernelDefinitionId = uint64_t;
41
45using KernelId = uint64_t;
46
50using ArgumentId = std::string;
51
55using ParameterValue = std::variant<int64_t, uint64_t, double, bool, std::string>;
56
60using KernelDimensions = std::map<KernelDefinitionId, std::pair<DimensionVector /*globalSize*/, DimensionVector /*localSize*/>>;
61
65using ParameterInput = std::vector<std::pair<std::string, ParameterValue>>;
66
70using UserData = std::map<std::string, std::string>;
71
75using Nanoseconds = uint64_t;
76
80using KernelComputeId = std::string;
81
85using ComputeActionId = uint64_t;
86
90using TransferActionId = uint64_t;
91
95using ModifierFunction = std::function<uint64_t(const uint64_t /*defaultSize*/, const std::vector<uint64_t>& /*parameterValues*/)>;
96
100using ConstraintFunction = std::function<bool(const std::vector<uint64_t>& /*parameterValues*/)>;
101
105using GenericConstraintFunction = std::function<bool(const std::vector<const ParameterValue*>& /*parameterValues*/)>;
106
110using KernelLauncher = std::function<void(ComputeInterface& /*interface*/)>;
111
115using ReferenceComputation = std::function<void(void* /*buffer*/)>;
116
120using ValueComparator = std::function<bool(const void* /*result*/, const void* /*reference*/)>;
121
126
130using ComputeContext = void*;
131
135using ComputeQueue = void*;
136
140using ComputeBuffer = void*;
141
144inline const QueueId InvalidQueueId = std::numeric_limits<QueueId>::max();
145
148inline const KernelDefinitionId InvalidKernelDefinitionId = std::numeric_limits<KernelDefinitionId>::max();
149
152inline const KernelId InvalidKernelId = std::numeric_limits<KernelId>::max();
153
157
160inline const Nanoseconds InvalidDuration = std::numeric_limits<Nanoseconds>::max();
161
162} // namespace ktt
Definition ComputeInterface.h:25
Definition DimensionVector.h:21
Definition KttPlatform.h:41
const ArgumentId InvalidArgumentId
Definition KttTypes.h:156
std::map< KernelDefinitionId, std::pair< DimensionVector, DimensionVector > > KernelDimensions
Definition KttTypes.h:60
uint32_t DeviceIndex
Definition KttTypes.h:30
void * UnifiedBufferMemory
Definition KttTypes.h:125
const KernelDefinitionId InvalidKernelDefinitionId
Definition KttTypes.h:148
uint64_t ComputeActionId
Definition KttTypes.h:85
uint32_t QueueId
Definition KttTypes.h:35
void * ComputeContext
Definition KttTypes.h:130
uint64_t KernelId
Definition KttTypes.h:45
std::function< bool(const std::vector< const ParameterValue * > &)> GenericConstraintFunction
Definition KttTypes.h:105
std::variant< int64_t, uint64_t, double, bool, std::string > ParameterValue
Definition KttTypes.h:55
std::function< bool(const std::vector< uint64_t > &)> ConstraintFunction
Definition KttTypes.h:100
uint64_t Nanoseconds
Definition KttTypes.h:75
const Nanoseconds InvalidDuration
Definition KttTypes.h:160
uint64_t TransferActionId
Definition KttTypes.h:90
void * ComputeQueue
Definition KttTypes.h:135
std::function< void(void *)> ReferenceComputation
Definition KttTypes.h:115
std::string KernelComputeId
Definition KttTypes.h:80
std::function< bool(const void *, const void *)> ValueComparator
Definition KttTypes.h:120
void * ComputeBuffer
Definition KttTypes.h:140
uint32_t PlatformIndex
Definition KttTypes.h:25
const QueueId InvalidQueueId
Definition KttTypes.h:144
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
const KernelId InvalidKernelId
Definition KttTypes.h:152
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