adding mytest target
Change-Id: Ia82b971597a4876d99c85d7dbbf997faea83f0c9
Este commit está contenido en:
+28
-9
@@ -1,7 +1,9 @@
|
||||
#!/bin/sh
|
||||
#!/bin/sh -x
|
||||
|
||||
TEST_NAME=$1
|
||||
DST_DIR=$2
|
||||
ROCM_DIR=$3
|
||||
TGT_LIST=$4
|
||||
|
||||
if [ -z "$TEST_NAME" ] ; then
|
||||
echo "Usage: $0 <test name> <dst dir>"
|
||||
@@ -13,18 +15,35 @@ if [ -z "$DST_DIR" ] ; then
|
||||
DST_DIR=$(dirname TEST_NAME)
|
||||
fi
|
||||
|
||||
GFXIP=$(/opt/rocm/bin/rocminfo | grep "amdgcn-amd-amdhsa--" | head -n 1 | sed -n "s/^.*amdgcn-amd-amdhsa--\(\w*\).*$/\1/p")
|
||||
if [ -z "$GFXIP" ] ; then
|
||||
echo "GPU is not found"
|
||||
if [ -z "$ROCM_DIR" ] ; then
|
||||
ROCM_DIR=/opt/rocm
|
||||
fi
|
||||
|
||||
if [ -z "$TGT_LIST" ] ; then
|
||||
TGT_LIST=$(/opt/rocm/bin/rocminfo | grep "amdgcn-amd-amdhsa--" | head -n 1 | sed -n "s/^.*amdgcn-amd-amdhsa--\(\w*\).*$/\1/p")
|
||||
fi
|
||||
|
||||
if [ -z "$TGT_LIST" ] ; then
|
||||
echo "Error: GPU targets not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
OBJ_PREF=$(echo $GFXIP | head -c 4)
|
||||
OBJ_NAME=$(echo "_$(basename $TEST_NAME)" | sed -e 's/_./\U&\E/g' -e 's/_//g')
|
||||
OBJ_FILE=${OBJ_PREF}_${OBJ_NAME}.hsaco
|
||||
OCL_VER="2.0"
|
||||
OCL_DIR=$ROCM_DIR/opencl
|
||||
|
||||
/opt/rocm/opencl/bin/x86_64/clang -cl-std=CL2.0 -cl-std=CL2.0 -include /opt/rocm/opencl/include/opencl-c.h -Xclang -mlink-bitcode-file -Xclang /opt/rocm/opencl/lib/x86_64/bitcode/opencl.amdgcn.bc -Xclang -mlink-bitcode-file -Xclang /opt/rocm/opencl/lib/x86_64/bitcode/ockl.amdgcn.bc -target amdgcn-amd-amdhsa -mcpu=$GFXIP -mno-code-object-v3 $TEST_NAME.cl -o $OBJ_FILE
|
||||
LLVM_DIR=$ROCM_DIR/hcc
|
||||
CLANG=$LLVM_DIR/bin/clang
|
||||
BITCODE_OPTS="\
|
||||
-Xclang -mlink-bitcode-file -Xclang $LLVM_DIR/lib/opencl.amdgcn.bc \
|
||||
-Xclang -mlink-bitcode-file -Xclang $LLVM_DIR/lib/ockl.amdgcn.bc \
|
||||
-Xclang -mlink-bitcode-file -Xclang $LLVM_DIR/lib/ocml.amdgcn.bc"
|
||||
|
||||
echo "'$OBJ_FILE' is generated for '$GFXIP'"
|
||||
for GFXIP in $TGT_LIST ; do
|
||||
OBJ_PREF=$GFXIP
|
||||
OBJ_NAME=$(echo "_$(basename $TEST_NAME)" | sed -e 's/_./\U&\E/g' -e 's/_//g')
|
||||
OBJ_FILE=${OBJ_PREF}_${OBJ_NAME}.hsaco
|
||||
$CLANG -cl-std=CL$OCL_VER -include $OCL_DIR/include/opencl-c.h $BITCODE_OPTS -target amdgcn-amd-amdhsa -mcpu=$GFXIP -mno-code-object-v3 $TEST_NAME.cl -o $DST_DIR/$OBJ_FILE
|
||||
echo "'$OBJ_FILE' is generated for '$GFXIP'"
|
||||
done
|
||||
|
||||
exit 0
|
||||
|
||||
@@ -114,11 +114,12 @@ if ( "${HSA_RUNTIME_INC_PATH}" STREQUAL "" )
|
||||
find_file ( HSA_RUNTIME_INC "hsa/hsa.h" )
|
||||
endif()
|
||||
find_library ( HSA_RUNTIME_LIB "libhsa-runtime${NBIT}.so" )
|
||||
get_filename_component ( HSA_RUNTIME_INC_PATH ${HSA_RUNTIME_INC} DIRECTORY )
|
||||
get_filename_component ( HSA_RUNTIME_LIB_PATH ${HSA_RUNTIME_LIB} DIRECTORY )
|
||||
get_filename_component ( HSA_RUNTIME_INC_PATH "${HSA_RUNTIME_INC}" DIRECTORY )
|
||||
get_filename_component ( HSA_RUNTIME_LIB_PATH "${HSA_RUNTIME_LIB}" DIRECTORY )
|
||||
|
||||
find_library ( HSA_KMT_LIB "libhsakmt.so" )
|
||||
get_filename_component ( HSA_KMT_LIB_PATH ${HSA_KMT_LIB} DIRECTORY )
|
||||
get_filename_component ( HSA_KMT_LIB_PATH "${HSA_KMT_LIB}" DIRECTORY )
|
||||
get_filename_component ( ROCM_ROOT_DIR "${HSA_KMT_LIB_PATH}" DIRECTORY )
|
||||
|
||||
## Basic Tool Chain Information
|
||||
message ( "----------------NBit: ${NBIT}" )
|
||||
@@ -127,5 +128,22 @@ message ( "------------Compiler: ${CMAKE_CXX_COMPILER}" )
|
||||
message ( "----Compiler-Version: ${CMAKE_CXX_COMPILER_VERSION}" )
|
||||
message ( "-----HSA-Runtime-Inc: ${HSA_RUNTIME_INC_PATH}" )
|
||||
message ( "-----HSA-Runtime-Lib: ${HSA_RUNTIME_LIB_PATH}" )
|
||||
message ( "----HSA_KMT_LIB_PATH: ${HSA_KMT_LIB_PATH}" )
|
||||
message ( "-------ROCM_ROOT_DIR: ${ROCM_ROOT_DIR}" )
|
||||
message ( "-----------CXX-Flags: ${CMAKE_CXX_FLAGS}" )
|
||||
message ( "---CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}" )
|
||||
message ( "---------GPU_TARGETS: ${GPU_TARGETS}" )
|
||||
|
||||
## Check the ROCm pathes
|
||||
if ( "${HSA_RUNTIME_INC_PATH}" STREQUAL "" )
|
||||
message ( FATAL_ERROR "HSA_RUNTIME_INC_PATH is not found." )
|
||||
endif ()
|
||||
if ( "${HSA_RUNTIME_LIB_PATH}" STREQUAL "" )
|
||||
message ( FATAL_ERROR "HSA_RUNTIME_LIB_PATH is not found." )
|
||||
endif ()
|
||||
if ( "${HSA_KMT_LIB_PATH}" STREQUAL "" )
|
||||
message ( FATAL_ERROR "HSA_KMT_LIB_PATH is not found." )
|
||||
endif ()
|
||||
if ( "${ROCM_ROOT_DIR}" STREQUAL "" )
|
||||
message ( FATAL_ERROR "ROCM_ROOT_DIR is not found." )
|
||||
endif ()
|
||||
|
||||
@@ -61,12 +61,15 @@ set ( CTRL_SRC
|
||||
|
||||
## Dummy kernel
|
||||
set ( DUMMY_NAME dummy_kernel )
|
||||
execute_process ( COMMAND sh -xc "${TEST_DIR}/../bin/build_kernel.sh ${TEST_DIR}/${DUMMY_NAME}/${DUMMY_NAME} ${PROJECT_BINARY_DIR}" )
|
||||
|
||||
## Test kernel
|
||||
set ( TEST_NAME simple_convolution )
|
||||
set ( KERN_SRC ${TEST_DIR}/${TEST_NAME}/${TEST_NAME}.cpp )
|
||||
execute_process ( COMMAND sh -xc "${TEST_DIR}/../bin/build_kernel.sh ${TEST_DIR}/${TEST_NAME}/${TEST_NAME} ${PROJECT_BINARY_DIR}" )
|
||||
|
||||
## Building test kernels
|
||||
add_custom_target( mytest
|
||||
COMMAND sh -xc "${TEST_DIR}/../bin/build_kernel.sh ${TEST_DIR}/${DUMMY_NAME}/${DUMMY_NAME} ${PROJECT_BINARY_DIR} '${ROCM_ROOT_DIR}' '${GPU_TARGETS}'"
|
||||
COMMAND sh -xc "${TEST_DIR}/../bin/build_kernel.sh ${TEST_DIR}/${TEST_NAME}/${TEST_NAME} ${PROJECT_BINARY_DIR} '${ROCM_ROOT_DIR}' '${GPU_TARGETS}'"
|
||||
)
|
||||
|
||||
## Building standalone test executable
|
||||
add_executable ( ${STEXE_NAME} ${STTST_SRC} ${UTIL_SRC} ${KERN_SRC} )
|
||||
|
||||
@@ -82,14 +82,7 @@ bool TestHsa::Initialize(int /*arg_cnt*/, char** /*arg_list*/) {
|
||||
|
||||
// Obtain the code object file name
|
||||
std::string agentName(agent_info_->name);
|
||||
if (agentName.compare(0, 4, "gfx8") == 0) {
|
||||
brig_path_obj_.append("gfx8");
|
||||
} else if (agentName.compare(0, 4, "gfx9") == 0) {
|
||||
brig_path_obj_.append("gfx9");
|
||||
} else {
|
||||
TEST_ASSERT(false);
|
||||
return false;
|
||||
}
|
||||
brig_path_obj_.append(agentName);
|
||||
brig_path_obj_.append("_" + name_ + ".hsaco");
|
||||
|
||||
return true;
|
||||
|
||||
Referencia en una nueva incidencia
Block a user