Spaces:
Runtime error
Runtime error
| // SPDX-License-Identifier: Apache-2.0 | |
| namespace kp { | |
| OpTensorSyncLocal::OpTensorSyncLocal( | |
| const std::vector<std::shared_ptr<Tensor>>& tensors) | |
| { | |
| KP_LOG_DEBUG("Kompute OpTensorSyncLocal constructor with params"); | |
| if (tensors.size() < 1) { | |
| throw std::runtime_error( | |
| "Kompute OpTensorSyncLocal called with less than 1 tensor"); | |
| } | |
| this->mTensors = tensors; | |
| } | |
| OpTensorSyncLocal::~OpTensorSyncLocal() | |
| { | |
| KP_LOG_DEBUG("Kompute OpTensorSyncLocal destructor started"); | |
| } | |
| void | |
| OpTensorSyncLocal::record(const vk::CommandBuffer& commandBuffer) | |
| { | |
| KP_LOG_DEBUG("Kompute OpTensorSyncLocal record called"); | |
| for (size_t i = 0; i < this->mTensors.size(); i++) { | |
| if (this->mTensors[i]->tensorType() == Tensor::TensorTypes::eDevice) { | |
| this->mTensors[i]->recordPrimaryBufferMemoryBarrier( | |
| commandBuffer, | |
| vk::AccessFlagBits::eShaderWrite, | |
| vk::AccessFlagBits::eTransferRead, | |
| vk::PipelineStageFlagBits::eComputeShader, | |
| vk::PipelineStageFlagBits::eTransfer); | |
| this->mTensors[i]->recordCopyFromDeviceToStaging(commandBuffer); | |
| this->mTensors[i]->recordPrimaryBufferMemoryBarrier( | |
| commandBuffer, | |
| vk::AccessFlagBits::eTransferWrite, | |
| vk::AccessFlagBits::eHostRead, | |
| vk::PipelineStageFlagBits::eTransfer, | |
| vk::PipelineStageFlagBits::eHost); | |
| } | |
| } | |
| } | |
| void | |
| OpTensorSyncLocal::preEval(const vk::CommandBuffer& /*commandBuffer*/) | |
| { | |
| KP_LOG_DEBUG("Kompute OpTensorSyncLocal preEval called"); | |
| } | |
| void | |
| OpTensorSyncLocal::postEval(const vk::CommandBuffer& /*commandBuffer*/) | |
| { | |
| KP_LOG_DEBUG("Kompute OpTensorSyncLocal postEval called"); | |
| KP_LOG_DEBUG("Kompute OpTensorSyncLocal mapping data into tensor local"); | |
| } | |
| } | |