adding standalone intercept test; queeu_start/stop API fixed as public;
Change-Id: I5489a5ff69454985b955c9e4027f812168de1ecb
This commit is contained in:
+2
-1
@@ -22,7 +22,8 @@ export PATH=.:$PATH
|
||||
export HSA_TOOLS_LIB=librocprofiler64.so.1
|
||||
# tool library loaded by ROC profiler
|
||||
if [ -z "$ROCP_TOOL_LIB" ] ; then
|
||||
export ROCP_TOOL_LIB=libintercept_test.so
|
||||
echo "Tool library is not defined: ROCP_TOOL_LIB"
|
||||
exit 1
|
||||
fi
|
||||
# enable error messages
|
||||
export HSA_TOOLS_REPORT_LOAD_FAILURE=1
|
||||
|
||||
+1
-4
@@ -3,7 +3,4 @@ BIN_DIR=`dirname $0`
|
||||
BLD_DIR=$BIN_DIR/build
|
||||
|
||||
export CMAKE_PREFIX_PATH=/opt/rocm/include/hsa:/opt/rocm
|
||||
rm -rf $BLD_DIR && mkdir $BLD_DIR && cd $BLD_DIR && cmake ..
|
||||
make -j
|
||||
make mytest
|
||||
./run.sh
|
||||
rm -rf $BLD_DIR && mkdir $BLD_DIR && cd $BLD_DIR && cmake .. && make -j && make mytest && ./run.sh
|
||||
|
||||
@@ -669,12 +669,12 @@ PUBLIC_API hsa_status_t rocprofiler_remove_queue_callbacks() {
|
||||
}
|
||||
|
||||
// Start/stop queue callbacks
|
||||
hsa_status_t rocprofiler_start_queue_callbacks() {
|
||||
PUBLIC_API hsa_status_t rocprofiler_start_queue_callbacks() {
|
||||
API_METHOD_PREFIX
|
||||
rocprofiler::InterceptQueue::Start();
|
||||
API_METHOD_SUFFIX
|
||||
}
|
||||
hsa_status_t rocprofiler_stop_queue_callbacks() {
|
||||
PUBLIC_API hsa_status_t rocprofiler_stop_queue_callbacks() {
|
||||
API_METHOD_PREFIX
|
||||
rocprofiler::InterceptQueue::Stop();
|
||||
API_METHOD_SUFFIX
|
||||
|
||||
+22
-10
@@ -40,15 +40,22 @@ target_include_directories ( "c_test" PRIVATE ${ROOT_DIR} ${HSA_RUNTIME_INC_PATH
|
||||
file( GLOB UTIL_SRC "${TEST_DIR}/util/*.cpp" )
|
||||
|
||||
## Standalone test sources
|
||||
set ( STEXE_NAME "standalone_test" )
|
||||
set ( STTST_SRC
|
||||
set ( ST_EXE_NAME "standalone_test" )
|
||||
set ( ST_TST_SRC
|
||||
${TEST_DIR}/app/standalone_test.cpp
|
||||
${TEST_DIR}/ctrl/test_hsa.cpp
|
||||
)
|
||||
|
||||
## Standalone intercept test sources
|
||||
set ( STIN_EXE_NAME "stand_intercept_test" )
|
||||
set ( STIN_TST_SRC
|
||||
${TEST_DIR}/app/stand_intercept_test.cpp
|
||||
${TEST_DIR}/ctrl/test_hsa.cpp
|
||||
)
|
||||
|
||||
## Intercept test sources
|
||||
set ( INEXE_NAME "intercept_test" )
|
||||
set ( INTST_SRC
|
||||
set ( IN_EXE_NAME "intercept_test" )
|
||||
set ( IN_TST_SRC
|
||||
${TEST_DIR}/app/intercept_test.cpp
|
||||
${TEST_DIR}/ctrl/test_hsa.cpp
|
||||
)
|
||||
@@ -72,14 +79,19 @@ add_custom_target( mytest
|
||||
)
|
||||
|
||||
## Building standalone test executable
|
||||
add_executable ( ${STEXE_NAME} ${STTST_SRC} ${UTIL_SRC} ${KERN_SRC} )
|
||||
target_include_directories ( ${STEXE_NAME} PRIVATE ${TEST_DIR} ${ROOT_DIR} ${HSA_RUNTIME_INC_PATH} )
|
||||
target_link_libraries ( ${STEXE_NAME} ${ROCPROFILER_TARGET} ${HSA_RUNTIME_LIB} ${HSA_KMT_LIB} c stdc++ dl pthread rt )
|
||||
add_executable ( ${ST_EXE_NAME} ${ST_TST_SRC} ${UTIL_SRC} ${KERN_SRC} )
|
||||
target_include_directories ( ${ST_EXE_NAME} PRIVATE ${TEST_DIR} ${ROOT_DIR} ${HSA_RUNTIME_INC_PATH} )
|
||||
target_link_libraries ( ${ST_EXE_NAME} ${ROCPROFILER_TARGET} ${HSA_RUNTIME_LIB} ${HSA_KMT_LIB} c stdc++ dl pthread rt )
|
||||
|
||||
## Building standalone intercept test executable
|
||||
add_executable ( ${STIN_EXE_NAME} ${STIN_TST_SRC} ${UTIL_SRC} ${KERN_SRC} )
|
||||
target_include_directories ( ${STIN_EXE_NAME} PRIVATE ${TEST_DIR} ${ROOT_DIR} ${HSA_RUNTIME_INC_PATH} )
|
||||
target_link_libraries ( ${STIN_EXE_NAME} ${ROCPROFILER_TARGET} ${HSA_RUNTIME_LIB} ${HSA_KMT_LIB} c stdc++ dl pthread rt )
|
||||
|
||||
## Building intercept test executable
|
||||
add_library ( ${INEXE_NAME} SHARED ${INTST_SRC} ${UTIL_SRC} ${KERN_SRC} )
|
||||
target_include_directories ( ${INEXE_NAME} PRIVATE ${TEST_DIR} ${ROOT_DIR} ${HSA_RUNTIME_INC_PATH} )
|
||||
target_link_libraries ( ${INEXE_NAME} ${ROCPROFILER_TARGET} ${HSA_RUNTIME_LIB} ${HSA_KMT_LIB} c stdc++ dl pthread rt )
|
||||
add_library ( ${IN_EXE_NAME} SHARED ${IN_TST_SRC} ${UTIL_SRC} ${KERN_SRC} )
|
||||
target_include_directories ( ${IN_EXE_NAME} PRIVATE ${TEST_DIR} ${ROOT_DIR} ${HSA_RUNTIME_INC_PATH} )
|
||||
target_link_libraries ( ${IN_EXE_NAME} ${ROCPROFILER_TARGET} ${HSA_RUNTIME_LIB} ${HSA_KMT_LIB} c stdc++ dl pthread rt )
|
||||
|
||||
## Building ctrl test executable
|
||||
add_executable ( ${EXE_NAME} ${CTRL_SRC} ${UTIL_SRC} ${KERN_SRC} )
|
||||
|
||||
@@ -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();
|
||||
+15
-2
@@ -32,9 +32,12 @@ fi
|
||||
test_status=0
|
||||
test_runnum=0
|
||||
test_number=0
|
||||
failed_tests="Failed tests:"
|
||||
|
||||
xeval_test() {
|
||||
test_number=$test_number
|
||||
}
|
||||
|
||||
eval_test() {
|
||||
label=$1
|
||||
cmdline=$2
|
||||
@@ -44,6 +47,7 @@ eval_test() {
|
||||
eval "$cmdline"
|
||||
if [ $? != 0 ] ; then
|
||||
echo "$label: FAILED"
|
||||
failed_tests="$failed_tests\n $test_number: \"$label\""
|
||||
test_status=$(($test_status + 1))
|
||||
else
|
||||
echo "$label: PASSED"
|
||||
@@ -76,10 +80,16 @@ eval_test "C test" ./test/c_test
|
||||
unset HSA_TOOLS_LIB
|
||||
unset ROCP_TOOL_LIB
|
||||
eval_test "Standalone sampling usage model test" ./test/standalone_test
|
||||
# Standalone intercepting test
|
||||
# ROC profiler library loaded by HSA runtime
|
||||
export HSA_TOOLS_LIB=librocprofiler64.so.1
|
||||
export ROCP_HSA_INTERCEPT=2
|
||||
export ROCP_KITER=100
|
||||
export ROCP_DITER=10
|
||||
eval_test "Standalone intercepting test" ./test/stand_intercept_test
|
||||
unset ROCP_HSA_INTERCEPT
|
||||
|
||||
## Intercepting usage model test
|
||||
# ROC profiler library loaded by HSA runtime
|
||||
export HSA_TOOLS_LIB=librocprofiler64.so
|
||||
# tool library loaded by ROC profiler
|
||||
export ROCP_TOOL_LIB=./test/libintercept_test.so
|
||||
export ROCP_KITER=50
|
||||
@@ -158,4 +168,7 @@ eval_test "libtool test, OpenCL sample" ./test/ocl/SimpleConvolution
|
||||
#ms_print massif.out.<N>
|
||||
|
||||
echo "$test_number tests total / $test_runnum tests run / $test_status tests failed"
|
||||
if [ $test_status != 0 ] ; then
|
||||
echo $failed_tests
|
||||
fi
|
||||
exit $test_status
|
||||
|
||||
Reference in New Issue
Block a user