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
orang tua aac37d4d1e
melakukan fdb8f55e02
6 mengubah file dengan 54 tambahan dan 30 penghapusan
+2 -1
Melihat File
@@ -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
Melihat File
@@ -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
+2 -2
Melihat File
@@ -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
Melihat File
@@ -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
Melihat File
@@ -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