Этот коммит содержится в:
Evgeny
2019-10-21 23:03:20 -05:00
родитель 57051220a1
Коммит 72a2571b22
7 изменённых файлов: 45 добавлений и 20 удалений
+10 -1
Просмотреть файл
@@ -43,9 +43,16 @@ if ( DEFINED ENV{CMAKE_DEBUG_TRACE} )
add_definitions ( -DDEBUG_TRACE=1 )
endif()
## Enable KFD wrapper
if ( DEFINED HIP_VDI )
add_definitions ( -DHIP_VDI=${HIP_VDI} )
else()
set ( HIP_VDI 0 )
endif()
## Enable KFD wrapper
if ( DEFINED KFD_WRAPPER )
add_definitions ( -DKFD_WRAPPER=1 )
add_definitions ( -DKFD_WRAPPER=${KFD_WRAPPER} )
endif()
## Enable HIP/HCC local build
@@ -128,5 +135,7 @@ message ( "-----HSA-Runtime-Lib: ${HSA_RUNTIME_LIB_PATH}" )
message ( "-------------HCC-Inc: ${HCC_INC_DIR}" )
message ( "-------------HIP-Inc: ${HIP_INC_DIR}" )
message ( "-------------KFD-Inc: ${HSA_KMT_INC_PATH}" )
message ( "-------------HIP-VDI: ${HIP_VDI}" )
message ( "---------KFD_WRAPPER: ${KFD_WRAPPER}" )
message ( "-----CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}" )
message ( "---CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}" )
+15
Просмотреть файл
@@ -23,11 +23,26 @@ THE SOFTWARE.
#ifndef INC_ROCTRACER_HCC_H_
#define INC_ROCTRACER_HCC_H_
#if HIP_VDI
#define HIP_OP_ID_NUMBER 3
#define HIP_OP_ID_COPY 1
extern "C" {
typedef void (hipInitAsyncActivityCallback_t)(void* id_callback, void* op_callback, void* arg);
typedef bool (hipEnableAsyncActivityCallback_t)(unsigned op, bool enable);
typedef const char* (hipGetOpName_t)(unsigned op);
}
#else // !HIP_VDI
#if LOCAL_BUILD
#include <hc_prof_runtime.h>
#else
#include <hcc/hc_prof_runtime.h>
#endif
#define HIP_OP_ID_NUMBER hc::HSA_OP_ID_NUMBER
#define HIP_OP_ID_COPY hc::HSA_OP_ID_COPY
typedef decltype(Kalmar::CLAMP::InitActivityCallback) hipInitAsyncActivityCallback_t;
typedef decltype(Kalmar::CLAMP::EnableActivityCallback) hipEnableAsyncActivityCallback_t;
typedef decltype(Kalmar::CLAMP::GetCmdName) hipGetOpName_t;
#endif // !HIP_VDI
#include "roctracer.h"
+13 -13
Просмотреть файл
@@ -99,26 +99,26 @@ class HipApi {
};
// HCC runtime library loader class
#include "inc/roctracer_hcc.h"
class HccApi {
public:
typedef BaseLoader<HccApi> Loader;
typedef decltype(Kalmar::CLAMP::InitActivityCallback) InitActivityCallback_t;
typedef decltype(Kalmar::CLAMP::EnableActivityCallback) EnableActivityCallback_t;
typedef decltype(Kalmar::CLAMP::GetCmdName) GetCmdName_t;
InitActivityCallback_t* InitActivityCallback;
EnableActivityCallback_t* EnableActivityCallback;
GetCmdName_t* GetCmdName;
hipInitAsyncActivityCallback_t* InitActivityCallback;
hipEnableAsyncActivityCallback_t* EnableActivityCallback;
hipGetOpName_t* GetOpName;
protected:
void init(Loader* loader) {
// Kalmar::CLAMP::InitActivityCallback
InitActivityCallback = loader->GetFun<InitActivityCallback_t>("InitActivityCallbackImpl");
// Kalmar::CLAMP::EnableActivityIdCallback
EnableActivityCallback = loader->GetFun<EnableActivityCallback_t>("EnableActivityCallbackImpl");
// Kalmar::CLAMP::GetCmdName
GetCmdName = loader->GetFun<GetCmdName_t>("GetCmdNameImpl");
#if HIP_VDI
InitActivityCallback = loader->GetFun<hipInitAsyncActivityCallback_t>("InitActivityCallback");
EnableActivityCallback = loader->GetFun<hipEnableAsyncActivityCallback_t>("EnableActivityCallback");
GetOpName = loader->GetFun<hipGetOpName_t>("GetCmdName");
#else
InitActivityCallback = loader->GetFun<hipInitAsyncActivityCallback_t>("InitActivityCallbackImpl");
EnableActivityCallback = loader->GetFun<hipEnableAsyncActivityCallback_t>("EnableActivityCallbackImpl");
GetOpName = loader->GetFun<hipGetOpName_t>("GetCmdNameImpl");
#endif
}
};
+2 -2
Просмотреть файл
@@ -556,7 +556,7 @@ PUBLIC_API const char* roctracer_op_string(
break;
}
case ACTIVITY_DOMAIN_HCC_OPS: {
return roctracer::HccLoader::Instance().GetCmdName(kind);
return roctracer::HccLoader::Instance().GetOpName(kind);
break;
}
case ACTIVITY_DOMAIN_HIP_API: {
@@ -606,7 +606,7 @@ static inline uint32_t get_op_num(const uint32_t& domain) {
switch (domain) {
case ACTIVITY_DOMAIN_HSA_OPS: return 1;
case ACTIVITY_DOMAIN_HSA_API: return HSA_API_ID_NUMBER;
case ACTIVITY_DOMAIN_HCC_OPS: return hc::HSA_OP_ID_NUMBER;
case ACTIVITY_DOMAIN_HCC_OPS: return HIP_OP_ID_NUMBER;
case ACTIVITY_DOMAIN_HIP_API: return HIP_API_ID_NUMBER;
#ifdef KFD_WRAPPER
case ACTIVITY_DOMAIN_KFD_API: return KFD_API_ID_NUMBER;
+1 -1
Просмотреть файл
@@ -33,7 +33,7 @@ set ( RUN_SCRIPT "${TEST_DIR}/run.sh" )
add_custom_target( mytest
COMMAND make -C "${TEST_DIR}/MatrixTranspose"
COMMAND sh -xc "cp ${TEST_DIR}/MatrixTranspose/MatrixTranspose ${PROJECT_BINARY_DIR}/test"
COMMAND make -C "${TEST_DIR}/MatrixTranspose_test"
COMMAND HIP_VDI=${HIP_VDI} make -C "${TEST_DIR}/MatrixTranspose_test"
COMMAND sh -xc "cp ${TEST_DIR}/MatrixTranspose_test/MatrixTranspose ${PROJECT_BINARY_DIR}/test/MatrixTranspose_test"
)
+2 -1
Просмотреть файл
@@ -2,6 +2,7 @@ ROOT_PATH = ../..
LIB_PATH = $(ROOT_PATH)/build
ROC_LIBS = -L$(LIB_PATH) -lroctracer64 -lroctx64
export LD_LIBRARY_PATH=$(LIB_PATH)
HIP_VDI ?= 0
ITERATIONS ?= 100
HIP_PATH?= $(wildcard /opt/rocm/hip)
@@ -23,7 +24,7 @@ EXECUTABLE=./MatrixTranspose
all: clean $(EXECUTABLE)
CXXFLAGS =-g -I$(ROOT_PATH) -I$(ROOT_PATH)/inc -DLOCAL_BUILD=1 -DITERATIONS=$(ITERATIONS)
CXXFLAGS =-g -I$(ROOT_PATH) -I$(ROOT_PATH)/inc -DLOCAL_BUILD=1 -DHIP_VDI=${HIP_VDI} -DITERATIONS=$(ITERATIONS)
CXX=$(HIPCC)
$(EXECUTABLE): $(OBJECTS)
+2 -2
Просмотреть файл
@@ -32,7 +32,7 @@ THE SOFTWARE.
#include <inc/roctx.h>
#ifndef ITERATIONS
# define ITERATIONS 100
# define ITERATIONS 101
#endif
#define WIDTH 1024
@@ -273,7 +273,7 @@ void activity_callback(const char* begin, const char* end, void* arg) {
record->device_id,
record->queue_id
);
if (record->op == hc::HSA_OP_ID_COPY) fprintf(stdout, " bytes(0x%zx)", record->bytes);
if (record->op == HIP_OP_ID_COPY) fprintf(stdout, " bytes(0x%zx)", record->bytes);
} else if (record->domain == ACTIVITY_DOMAIN_EXT_API) {
fprintf(stdout, " external_id(%lu)",
record->external_id