Kompute
Public Member Functions | List of all members
kp::OpTensorSyncDevice Class Reference

#include <OpTensorSyncDevice.hpp>

Inheritance diagram for kp::OpTensorSyncDevice:
Inheritance graph
[legend]
Collaboration diagram for kp::OpTensorSyncDevice:
Collaboration graph
[legend]

Public Member Functions

 OpTensorSyncDevice (const std::vector< std::shared_ptr< Tensor >> &tensors)
 
 ~OpTensorSyncDevice () override
 
void record (const vk::CommandBuffer &commandBuffer) override
 
virtual void preEval (const vk::CommandBuffer &commandBuffer) override
 
virtual void postEval (const vk::CommandBuffer &commandBuffer) override
 
- Public Member Functions inherited from kp::OpBase
virtual ~OpBase ()
 

Detailed Description

Operation that syncs tensor's device by mapping local data into the device memory. For TensorTypes::eDevice it will use a record operation for the memory to be syncd into GPU memory which means that the operation will be done in sync with GPU commands. For TensorTypes::eHost it will only map the data into host memory which will happen during preEval before the recorded commands are dispatched.

Constructor & Destructor Documentation

◆ OpTensorSyncDevice()

kp::OpTensorSyncDevice::OpTensorSyncDevice ( const std::vector< std::shared_ptr< Tensor >> &  tensors)

Default constructor with parameters that provides the core vulkan resources and the tensors that will be used in the operation. The tensos provided cannot be of type TensorTypes::eStorage.

Parameters
tensorsTensors that will be used to create in operation.

◆ ~OpTensorSyncDevice()

kp::OpTensorSyncDevice::~OpTensorSyncDevice ( )
override

Default destructor. This class does not manage memory so it won't be expecting the parent to perform a release.

Member Function Documentation

◆ postEval()

virtual void kp::OpTensorSyncDevice::postEval ( const vk::CommandBuffer &  commandBuffer)
overridevirtual

Does not perform any postEval commands.

Parameters
commandBufferThe command buffer to record the command into.

Implements kp::OpBase.

◆ preEval()

virtual void kp::OpTensorSyncDevice::preEval ( const vk::CommandBuffer &  commandBuffer)
overridevirtual

Does not perform any preEval commands.

Parameters
commandBufferThe command buffer to record the command into.

Implements kp::OpBase.

◆ record()

void kp::OpTensorSyncDevice::record ( const vk::CommandBuffer &  commandBuffer)
overridevirtual

For device tensors, it records the copy command for the tensor to copy the data from its staging to device memory.

Parameters
commandBufferThe command buffer to record the command into.

Implements kp::OpBase.


The documentation for this class was generated from the following file: