diff --git a/CMakeLists.txt b/CMakeLists.txt index 7d2c35e3bb..a13b51538b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,9 +22,6 @@ cmake_minimum_required ( VERSION 2.8.12 ) -# Install prefix -set(CMAKE_INSTALL_PREFIX "/opt/rocm" CACHE PATH "Install path prefix default") - ## Verbose output. set ( CMAKE_VERBOSE_MAKEFILE TRUE CACHE BOOL "Verbose Output" FORCE ) @@ -78,9 +75,9 @@ endif() # Protocol header lookup set(PROF_API_HEADER_NAME prof_protocol.h) if(USE_PROF_API EQUAL 1) - find_path(PROF_API_HEADER_DIR ${PROF_API_HEADER_NAME} + find_path(PROF_API_HEADER_DIR ${PROF_API_HEADER_NAME} HINTS - ${PROF_API_HEADER_PATH} + ${PROF_API_HEADER_PATH} PATHS /opt/rocm/include PATH_SUFFIXES @@ -132,7 +129,6 @@ message ( "CMake-install-prefix: ${CMAKE_INSTALL_PREFIX}" ) message ( "CPack-install-prefix: ${CPACK_PACKAGING_INSTALL_PREFIX}" ) message ( "-----------Dest-name: ${DEST_NAME}" ) - # Install header and library install ( TARGETS ${ROCPROFILER_TARGET} LIBRARY DESTINATION lib ) install ( FILES @@ -171,8 +167,6 @@ option(FILE_REORG_BACKWARD_COMPATIBILITY "Enable File Reorg with backward compat if(FILE_REORG_BACKWARD_COMPATIBILITY) include (rocprofiler-backward-compat.cmake) endif() -# links -#install ( FILES ${PROJECT_BINARY_DIR}/inc-link DESTINATION include RENAME ${DEST_NAME} ) ## Packaging directives set ( CPACK_GENERATOR "DEB" "RPM" "TGZ" CACHE STRING "CPACK GENERATOR e.g. DEB;RPM" ) diff --git a/Readme.txt b/Readme.txt index 9008165a29..56e8135ddb 100644 --- a/Readme.txt +++ b/Readme.txt @@ -17,6 +17,8 @@ The library source tree: Build environment: +Roctracer & Rocprofiler need to be installed in the same directory. + $ export CMAKE_PREFIX_PATH=: $ export CMAKE_BUILD_TYPE= # release by default $ export CMAKE_DEBUG_TRACE=1 # 1 to enable debug tracing diff --git a/build.sh b/build.sh index 542d5b2df3..f4bea3a739 100755 --- a/build.sh +++ b/build.sh @@ -1,6 +1,57 @@ -#!/bin/sh -x -BIN_DIR=`dirname $0` -BLD_DIR=$BIN_DIR/build +#!/bin/bash -e -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 +################################################################################ +# Copyright (c) 2018-2022 Advanced Micro Devices, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +# IN THE SOFTWARE. +################################################################################ + +SRC_DIR=`dirname $0` +TO_CLEAN=yes +COMPONENT="rocprofiler" +ROCM_PATH="${ROCM_PATH:=/opt/rocm}" +LD_RUNPATH_FLAG=" -Wl,--enable-new-dtags -Wl,--rpath,$ROCM_PATH/lib:$ROCM_PATH/lib64" + +if [ -z "$ROCPROFILER_ROOT" ]; then ROCPROFILER_ROOT=$SRC_DIR; fi +if [ -z "$BUILD_DIR" ] ; then BUILD_DIR=$SRC_DIR/build; fi +if [ -z "$BUILD_TYPE" ] ; then BUILD_TYPE="release"; fi +if [ -z "$PACKAGE_ROOT" ] ; then PACKAGE_ROOT=$ROCM_PATH; fi +if [ -z "$PACKAGE_PREFIX" ] ; then PACKAGE_PREFIX="${ROCM_PATH}/${COMPONENT}"; fi +if [ -z "$PREFIX_PATH" ] ; then PREFIX_PATH="${ROCM_PATH}/include/hsa:${ROCM_PATH}"; fi +if [ -n "$ROCM_RPATH" ] ; then LD_RUNPATH_FLAG=" -Wl,--enable-new-dtags -Wl,--rpath,${ROCM_RPATH}"; fi + +ROCPROFILER_ROOT=$(cd $ROCPROFILER_ROOT && echo $PWD) + +if [ "$TO_CLEAN" = "yes" ] ; then rm -rf $BUILD_DIR; fi +mkdir -p $BUILD_DIR +pushd $BUILD_DIR + +cmake \ + -DCMAKE_MODULE_PATH=$ROCPROFILER_ROOT/cmake_modules \ + -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ + -DCMAKE_PREFIX_PATH="${PREFIX_PATH}" \ + -DCMAKE_INSTALL_PREFIX=$PACKAGE_ROOT \ + -DCPACK_PACKAGING_INSTALL_PREFIX=$PACKAGE_PREFIX \ + -DCPACK_GENERATOR="${CPACKGEN:-"DEB;RPM"}" \ + -DCMAKE_SHARED_LINKER_FLAGS="$LD_RUNPATH_FLAG" \ + $ROCPROFILER_ROOT + +make -j +make mytest +make package diff --git a/cmake_modules/env.cmake b/cmake_modules/env.cmake index abbbd11209..2e9613be1d 100644 --- a/cmake_modules/env.cmake +++ b/cmake_modules/env.cmake @@ -36,7 +36,7 @@ add_definitions ( -DHSA_LARGE_MODEL= ) add_definitions ( -DHSA_DEPRECATED= ) ## Linux Compiler options -set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall" ) set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror" ) set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=return-type" ) @@ -48,13 +48,10 @@ set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fmerge-all-constants" ) set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fms-extensions" ) set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fmerge-all-constants" ) set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=unused-result" ) -#set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=int-in-bool-context" ) set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) add_link_options ("-Bdynamic -z,neexecstack") -set ( CMAKE_SKIP_BUILD_RPATH TRUE ) - add_definitions ( -DNEW_TRACE_API=1 ) ## CLANG options @@ -96,22 +93,11 @@ else () set ( CMAKE_BUILD_TYPE "release" ) endif () -## Extend Compiler flags based on Processor architecture -if ( ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64" ) - set ( NBIT 64 ) - set ( NBITSTR "64" ) - set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64 -msse -msse2" ) -elseif ( ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86" ) - set ( NBIT 32 ) - set ( NBITSTR "" ) - set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32" ) -endif () - ## Find hsa-runtime -find_package(hsa-runtime64 1.0 REQUIRED HINTS ${CMAKE_INSTALL_PREFIX} PATHS /opt/rocm) +find_package(hsa-runtime64 CONFIG REQUIRED HINTS ${CMAKE_INSTALL_PREFIX} PATHS /opt/rocm PATH_SUFFIXES lib/cmake/hsa-runtime64 ) # find KFD thunk -find_package(hsakmt 1.0 REQUIRED HINTS ${CMAKE_INSTALL_PREFIX} PATHS /opt/rocm) +find_package(hsakmt CONFIG REQUIRED HINTS ${CMAKE_INSTALL_PREFIX} PATHS /opt/rocm PATH_SUFFIXES lib/cmake/hsakmt ) ## Find ROCm find_library ( HSA_KMT_LIB "libhsakmt.so" ) @@ -122,7 +108,6 @@ 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}" ) message ( "----------Build-Type: ${CMAKE_BUILD_TYPE}" ) message ( "------------Compiler: ${CMAKE_CXX_COMPILER}" ) message ( "----Compiler-Version: ${CMAKE_CXX_COMPILER_VERSION}" )