Added memory barrier on test

This commit is contained in:
Alejandro Saucedo 2021-03-28 09:12:27 +01:00
parent b0df305daf
commit 1c8d9998af

View file

@ -92,11 +92,23 @@ TEST(TestMultipleAlgoExecutions, SingleSequenceRecord)
std::vector<uint32_t> spirv = kp::Shader::compileSource(shader);
{
// A sharedMemoryBarrier is required as the shader is not thread-safe:w
std::shared_ptr<kp::OpMemoryBarrier> shaderBarrier{
new kp::OpMemoryBarrier({ tensorA },
vk::AccessFlagBits::eTransferRead,
vk::AccessFlagBits::eShaderWrite,
vk::PipelineStageFlagBits::eComputeShader,
vk::PipelineStageFlagBits::eComputeShader)
};
mgr.sequence()
->record<kp::OpTensorSyncDevice>({ tensorA })
->record<kp::OpAlgoDispatch>(mgr.algorithm({ tensorA }, spirv))
->record(shaderBarrier)
->record<kp::OpAlgoDispatch>(mgr.algorithm({ tensorA }, spirv))
->record(shaderBarrier)
->record<kp::OpAlgoDispatch>(mgr.algorithm({ tensorA }, spirv))
->record(shaderBarrier)
->record<kp::OpTensorSyncLocal>({ tensorA })
->eval();
}