Skip to content

Commit

Permalink
Optimize map lookups for kernel/buffer deps for array_view.
Browse files Browse the repository at this point in the history
First call "find", avoids insert (from []) and then removal
in cases where kernel does not have any array_view deps.
  • Loading branch information
bensander authored and scchan committed Jun 27, 2017
1 parent 118d723 commit e8cf396
Showing 1 changed file with 19 additions and 11 deletions.
30 changes: 19 additions & 11 deletions lib/hsa/mcwamp_hsa.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1198,11 +1198,17 @@ class HSAQueue final : public KalmarQueue
local = tmp_local;
dispatch->setLaunchConfiguration(nr_dim, global, local, dynamic_group_size);

// wait for previous kernel dispatches be completed
std::for_each(std::begin(kernelBufferMap[ker]), std::end(kernelBufferMap[ker]),

bool hasArrayViewBufferDeps = (kernelBufferMap.find(ker) != kernelBufferMap.end());


if (hasArrayViewBufferDeps) {
// wait for previous kernel dispatches be completed
std::for_each(std::begin(kernelBufferMap[ker]), std::end(kernelBufferMap[ker]),
[&] (void* buffer) {
waitForDependentAsyncOps(buffer);
});
});
}

waitForStreamDeps(dispatch);

Expand All @@ -1217,15 +1223,17 @@ class HSAQueue final : public KalmarQueue
// associate the kernel dispatch with this queue
pushAsyncOp(sp_dispatch);

// associate all buffers used by the kernel with the kernel dispatch instance
std::for_each(std::begin(kernelBufferMap[ker]), std::end(kernelBufferMap[ker]),
[&] (void* buffer) {
bufferKernelMap[buffer].push_back(sp_dispatch);
});
if (hasArrayViewBufferDeps) {
// associate all buffers used by the kernel with the kernel dispatch instance
std::for_each(std::begin(kernelBufferMap[ker]), std::end(kernelBufferMap[ker]),
[&] (void* buffer) {
bufferKernelMap[buffer].push_back(sp_dispatch);
});

// clear data in kernelBufferMap
kernelBufferMap[ker].clear();
kernelBufferMap.erase(ker);
// clear data in kernelBufferMap
kernelBufferMap[ker].clear();
kernelBufferMap.erase(ker);
}

return sp_dispatch;
}
Expand Down

0 comments on commit e8cf396

Please sign in to comment.