adding standalone intercept test; queeu_start/stop API fixed as public;

Change-Id: I5489a5ff69454985b955c9e4027f812168de1ecb
This commit is contained in:
Evgeny
2020-04-08 04:27:50 -05:00
parent aac37d4d1e
commit fdb8f55e02
6 changed files with 54 additions and 30 deletions
@@ -151,12 +151,17 @@ hsa_status_t dispatch_callback(const rocprofiler_callback_data_t* callback_data,
}
int main() {
bool ret_val = false;
bool ret_val = true;
const char* kiter_s = getenv("ROCP_KITER");
const char* diter_s = getenv("ROCP_DITER");
const unsigned kiter = (kiter_s != NULL) ? atol(kiter_s) : 1;
const unsigned diter = (diter_s != NULL) ? atol(diter_s) : 1;
// Adding dispatch observer
rocprofiler_queue_callbacks_t callbacks_ptrs{};
callbacks_ptrs.dispatch = dispatch_callback;
rocprofiler_set_queue_callbacks(callbacks_ptrs, NULL);
// Instantiate HSA resources
HsaRsrcFactory::Create();
@@ -168,19 +173,15 @@ int main() {
hsa_queue_t* queue = NULL;
if (HsaRsrcFactory::Instance().CreateQueue(agent_info, 128, &queue) == false) abort();
// Adding dispatch observer
rocprofiler_queue_callbacks_t callbacks_ptrs{};
callbacks_ptrs.dispatch = dispatch_callback;
rocprofiler_set_queue_callbacks(callbacks_ptrs, NULL);
// Test initialization
TestHsa::SetQueue(queue);
TestHsa::HsaInstantiate(0);
TestHsa::HsaInstantiate();
for (unsigned ind = 0; ind < kiter; ++ind) {
printf("Iterastion %u:\n", ind);
ret_val = RunKernel<DummyKernel, TestAql>(0, NULL, diter);
if (ret_val) ret_val = RunKernel<SimpleConvolution, TestAql>(0, NULL, diter);
printf("Iteration %u:\n", ind);
if ((ind & 1) == 0) rocprofiler_start_queue_callbacks();
else rocprofiler_stop_queue_callbacks();
ret_val = RunKernel<DummyKernel, TestAql>(0, NULL, agent_info, queue, diter);
if (ret_val) ret_val = RunKernel<SimpleConvolution, TestAql>(0, NULL, agent_info, queue, diter);
}
TestHsa::HsaShutdown();