Kernel Tuning Toolkit 2.3
 
Loading...
Searching...
No Matches
ComputeInterface.h
Go to the documentation of this file.
1
4#pragma once
5
6#include <cstddef>
7#include <cstdint>
8#include <vector>
9
13#include <KttPlatform.h>
14#include <KttTypes.h>
15
16namespace ktt
17{
18
24class KTT_API ComputeInterface
25{
26public:
30 virtual ~ComputeInterface() = default;
31
37 virtual void RunKernel(const KernelDefinitionId id) = 0;
38
46 virtual void RunKernel(const KernelDefinitionId id, const DimensionVector& globalSize, const DimensionVector& localSize) = 0;
47
58 virtual ComputeActionId RunKernelAsync(const KernelDefinitionId id, const QueueId queue) = 0;
59
73 virtual ComputeActionId RunKernelAsync(const KernelDefinitionId id, const QueueId queue, const DimensionVector& globalSize,
74 const DimensionVector& localSize) = 0;
75
80 virtual void WaitForComputeAction(const ComputeActionId id) = 0;
81
89 virtual void RunKernelWithProfiling(const KernelDefinitionId id) = 0;
90
101 virtual void RunKernelWithProfiling(const KernelDefinitionId id, const DimensionVector& globalSize,
102 const DimensionVector& localSize) = 0;
103
112 virtual uint64_t GetRemainingProfilingRuns(const KernelDefinitionId id) const = 0;
113
119 virtual uint64_t GetRemainingProfilingRuns() const = 0;
120
125 virtual QueueId GetDefaultQueue() const = 0;
126
131 virtual std::vector<QueueId> GetAllQueues() const = 0;
132
137 virtual void SynchronizeQueue(const QueueId queue) = 0;
138
142 virtual void SynchronizeQueues() = 0;
143
147 virtual void SynchronizeDevice() = 0;
148
155 virtual const DimensionVector& GetCurrentGlobalSize(const KernelDefinitionId id) const = 0;
156
163 virtual const DimensionVector& GetCurrentLocalSize(const KernelDefinitionId id) const = 0;
164
170
175 virtual KernelRunMode GetRunMode() const = 0;
176
184 virtual void ChangeArguments(const KernelDefinitionId id, const std::vector<ArgumentId>& arguments) = 0;
185
193 virtual void SwapArguments(const KernelDefinitionId id, const ArgumentId& first, const ArgumentId& second) = 0;
194
200 virtual void UpdateScalarArgument(const ArgumentId& id, const void* data) = 0;
201
207 virtual void UpdateLocalArgument(const ArgumentId& id, const size_t dataSize) = 0;
208
214 virtual void UploadBuffer(const ArgumentId& id) = 0;
215
225 virtual TransferActionId UploadBufferAsync(const ArgumentId& id, const QueueId queue) = 0;
226
235 virtual void DownloadBuffer(const ArgumentId& id, void* destination, const size_t dataSize = 0) = 0;
236
251 virtual TransferActionId DownloadBufferAsync(const ArgumentId& id, const QueueId queue, void* destination,
252 const size_t dataSize = 0) = 0;
253
262 virtual void UpdateBuffer(const ArgumentId& id, const void* data, const size_t dataSize = 0) = 0;
263
278 virtual TransferActionId UpdateBufferAsync(const ArgumentId& id, const QueueId queue, const void* data,
279 const size_t dataSize = 0) = 0;
280
288 virtual void CopyBuffer(const ArgumentId& destination, const ArgumentId& source, const size_t dataSize = 0) = 0;
289
303 virtual TransferActionId CopyBufferAsync(const ArgumentId& destination, const ArgumentId& source, const QueueId queue,
304 const size_t dataSize = 0) = 0;
305
310 virtual void WaitForTransferAction(const TransferActionId id) = 0;
311
318 virtual void ResizeBuffer(const ArgumentId& id, const size_t newDataSize, const bool preserveData) = 0;
319
325 virtual void ClearBuffer(const ArgumentId& id) = 0;
326
332 virtual bool HasBuffer(const ArgumentId& id) = 0;
333
343 virtual void GetUnifiedMemoryBufferHandle(const ArgumentId& id, UnifiedBufferMemory& memoryHandle) = 0;
344
349 virtual bool GetProfiling(const KernelId id) = 0;
350
351// virtual bool GetKernelProfiling
352};
353
354} // namespace ktt
Definition ComputeInterface.h:25
virtual void ClearBuffer(const ArgumentId &id)=0
virtual void SynchronizeQueue(const QueueId queue)=0
virtual void ChangeArguments(const KernelDefinitionId id, const std::vector< ArgumentId > &arguments)=0
virtual void UploadBuffer(const ArgumentId &id)=0
virtual void WaitForTransferAction(const TransferActionId id)=0
virtual bool HasBuffer(const ArgumentId &id)=0
virtual TransferActionId DownloadBufferAsync(const ArgumentId &id, const QueueId queue, void *destination, const size_t dataSize=0)=0
virtual void RunKernelWithProfiling(const KernelDefinitionId id)=0
virtual const DimensionVector & GetCurrentGlobalSize(const KernelDefinitionId id) const =0
virtual TransferActionId UploadBufferAsync(const ArgumentId &id, const QueueId queue)=0
virtual void WaitForComputeAction(const ComputeActionId id)=0
virtual uint64_t GetRemainingProfilingRuns() const =0
virtual void SwapArguments(const KernelDefinitionId id, const ArgumentId &first, const ArgumentId &second)=0
virtual bool GetProfiling(const KernelId id)=0
virtual std::vector< QueueId > GetAllQueues() const =0
virtual void RunKernelWithProfiling(const KernelDefinitionId id, const DimensionVector &globalSize, const DimensionVector &localSize)=0
virtual void RunKernel(const KernelDefinitionId id, const DimensionVector &globalSize, const DimensionVector &localSize)=0
virtual void UpdateScalarArgument(const ArgumentId &id, const void *data)=0
virtual void SynchronizeQueues()=0
virtual uint64_t GetRemainingProfilingRuns(const KernelDefinitionId id) const =0
virtual KernelRunMode GetRunMode() const =0
virtual ~ComputeInterface()=default
virtual const DimensionVector & GetCurrentLocalSize(const KernelDefinitionId id) const =0
virtual void SynchronizeDevice()=0
virtual ComputeActionId RunKernelAsync(const KernelDefinitionId id, const QueueId queue)=0
virtual void UpdateLocalArgument(const ArgumentId &id, const size_t dataSize)=0
virtual void RunKernel(const KernelDefinitionId id)=0
virtual TransferActionId UpdateBufferAsync(const ArgumentId &id, const QueueId queue, const void *data, const size_t dataSize=0)=0
virtual void DownloadBuffer(const ArgumentId &id, void *destination, const size_t dataSize=0)=0
virtual QueueId GetDefaultQueue() const =0
virtual void CopyBuffer(const ArgumentId &destination, const ArgumentId &source, const size_t dataSize=0)=0
virtual void GetUnifiedMemoryBufferHandle(const ArgumentId &id, UnifiedBufferMemory &memoryHandle)=0
virtual ComputeActionId RunKernelAsync(const KernelDefinitionId id, const QueueId queue, const DimensionVector &globalSize, const DimensionVector &localSize)=0
virtual TransferActionId CopyBufferAsync(const ArgumentId &destination, const ArgumentId &source, const QueueId queue, const size_t dataSize=0)=0
virtual void UpdateBuffer(const ArgumentId &id, const void *data, const size_t dataSize=0)=0
virtual void ResizeBuffer(const ArgumentId &id, const size_t newDataSize, const bool preserveData)=0
virtual const KernelConfiguration & GetCurrentConfiguration() const =0
Definition DimensionVector.h:21
Definition KernelConfiguration.h:19
Definition KttPlatform.h:41
void * UnifiedBufferMemory
Definition KttTypes.h:125
uint64_t ComputeActionId
Definition KttTypes.h:85
KernelRunMode
Definition KernelRunMode.h:13
uint32_t QueueId
Definition KttTypes.h:35
uint64_t KernelId
Definition KttTypes.h:45
uint64_t TransferActionId
Definition KttTypes.h:90
std::string ArgumentId
Definition KttTypes.h:50
uint64_t KernelDefinitionId
Definition KttTypes.h:40