P4 to Git Change 1552198 by skudchad@skudchad_rocm on 2018/05/08 18:57:32

SWDEV-145570 - [HIP] - Synchronize the legacy default stream with other blocking streams as per the spec.

	ReviewBoardURL = http://ocltc.amd.com/reviews/r/14796/diff/

Affected files ...

... //depot/stg/opencl/drivers/opencl/api/hip/hip_context.cpp#11 edit
... //depot/stg/opencl/drivers/opencl/api/hip/hip_internal.hpp#10 edit
... //depot/stg/opencl/drivers/opencl/api/hip/hip_stream.cpp#5 edit
这个提交包含在:
foreman
2018-05-08 19:04:35 -04:00
父节点 2df122be02
当前提交 7176a5fe81
共修改 3 个文件,包含 31 行新增和 15 行删除
+8 -3
查看文件
@@ -24,8 +24,6 @@ THE SOFTWARE.
#include "hip_internal.hpp"
#include "platform/runtime.hpp"
#include "utils/versions.hpp"
#include <stack>
#include <thread>
std::vector<amd::Context*> g_devices;
@@ -35,7 +33,7 @@ thread_local amd::Context* g_context = nullptr;
thread_local std::stack<amd::Context*> g_ctxtStack;
std::once_flag g_ihipInitialized;
std::map<amd::Context*,amd::HostQueue*> g_nullStreams;
std::map<amd::Context*, amd::HostQueue*> g_nullStreams;
void init() {
if (!amd::Runtime::initialized()) {
@@ -66,6 +64,12 @@ void setCurrentContext(unsigned int index) {
g_context = g_devices[index];
}
void syncStreams() {
for (const auto& it : streamSet) {
it->finish();
}
}
amd::HostQueue* getNullStream() {
auto stream = g_nullStreams.find(getCurrentContext());
if (stream == g_nullStreams.end()) {
@@ -76,6 +80,7 @@ amd::HostQueue* getNullStream() {
g_nullStreams[getCurrentContext()] = queue;
return queue;
}
syncStreams();
return stream->second;
}