Files
rocm-systems/rocclr/runtime/device/gpu/gpudebugger.hpp
T
foreman 097a9fdd56 P4 to Git Change 1156178 by kzhuravl@win-kzhuravl-stg-oclhsa on 2015/05/30 02:59:02
EPR #333756 - Integrate header file cleanup from stg hsa and do necessary updates (cross branch checkin)

	Reviewers: Nikolay, Evgeniy, Laurent
	Testing: p4precheckin(http://ocltc:8111/viewModification.html?modId=52194&personal=true&init=1&tab=vcsModificationBuilds)

Affected files ...

... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/sc/HSAIL/include/amd_hsa_common.h#1 branch
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/sc/HSAIL/include/amd_hsa_elf.h#1 branch
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/sc/HSAIL/include/amd_hsa_kernel_code.h#1 branch
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/sc/HSAIL/include/amd_hsa_queue.h#1 branch
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/sc/HSAIL/include/amd_hsa_signal.h#1 branch
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/sc/HSAIL/include/hsa.h#1 branch
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/sc/HSAIL/include/hsa_ext_finalize.h#1 branch
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/sc/HSAIL/include/hsa_ext_image.h#1 branch
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/scwrapper/SI/scCompileSI.cpp#55 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/scwrapper/build/Makefile.scwrapper#27 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/build/Makefile.gpu#63 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudebugger.hpp#6 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.hpp#110 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.cpp#363 edit
2015-05-30 03:12:34 -04:00

131 lines
4.5 KiB
C++

/*******************************************************************************
*
* Copyright (c) 2014 Advanced Micro Devices, Inc. (unpublished)
*
* All rights reserved. This notice is intended as a precaution against
* inadvertent publication and does not imply publication or any waiver
* of confidentiality. The year included in the foregoing notice is the
* year of creation of the work.
*
******************************************************************************/
#ifndef HWDBG_GPUDEBGGER_H_
#define HWDBG_GPUDEBGGER_H_
#include <cstddef>
#include <cstdint>
#include "hsa.h"
#include "amd_hsa_kernel_code.h"
#include "device/device.hpp"
#include "device/hwdebug.hpp"
#include "acl.h"
static const int NumberReserveVgprs = 4;
namespace gpu {
/**
* \defgroup Services_API OCL Runtime Services API
* @{
*/
/*! \brief Dispatch packet information
*
* This structure contains the packet information for kernel dispatch
*/
struct PacketAmdInfo
{
uint32_t trapReservedVgprIndex_; //!< reserved VGPR index, -1 when they are not valid
uint32_t scratchBufferWaveOffset_; //!< scratch buffer wave offset, -1 when no scratch buffer
void* pointerToIsaBuffer_; //!< pointer to the buffer containing ISA
size_t sizeOfIsaBuffer_; //!< size of the ISA buffer
uint32_t numberOfVgprs_; //!< number of VGPRs used by the kernel
uint32_t numberOfSgprs_; //!< number of SGPRs used by the kernel
size_t sizeOfStaticGroupMemory_; //!< Static local memory used by the kernel
};
/*! \brief Cache mask for invalidation
*/
struct HwDbgGpuCacheMask
{
HwDbgGpuCacheMask() :ui32All_(0) {}
HwDbgGpuCacheMask(uint32_t mask) :ui32All_(mask) {}
union {
struct {
uint32_t sqICache_ : 1; //!< Instruction cache
uint32_t sqKCache_ : 1; //!< Data cache
uint32_t tcL1_ : 1; //!< tcL1 cache
uint32_t tcL2_ : 1; //!< tcL2 cache
uint32_t reserved_ : 28;
};
uint32_t ui32All_;
};
};
/*! \brief Address watch information
*
* Information about each watch point - address, mask, mode and event
*/
struct HwDbgAddressWatch
{
void* watchAddress_; //! The address of watch point
uint64_t watchMask_; //! The mask for watch point (lower 24 bits)
cl_dbg_address_watch_mode_amd watchMode_; //! The watch mode for this watch
DebugEvent event_; //! Event of the watch point (not used for now)
};
/*! \brief Runtime structure used to communicate debug information
* between Ocl services and core for a kernel dispatch.
*/
struct DebugToolInfo
{
uint64_t scratchAddress_; //! Scratch memory address
size_t scratchSize_; //! Scratch memory size
uint64_t globalAddress_; //! Global memory address
uint32_t cacheDisableMask_; //! Cache mask, indicating caches disabled
uint32_t exceptionMask_; //! Exception mask
uint32_t reservedCuNum_; //! Number of reserved CUs for display,
//! which ranges from 0 to 7 in the current implementation.
bool monitorMode_; //! Debug or profiler mode
bool gpuSingleStepMode_; //! SQ debug mode
amd::Memory* trapHandler_; //! Trap handler address
amd::Memory* trapBuffer_; //! Trap buffer address
bool sqPerfcounterEnable_; //! whether SQ perf counters are enabled
aclBinary* aclBinary_; //! pointer of the kernel ACL binary
amd::Event* event_; //! pointer of the kernel event in the enqueue command
};
/*! \brief Message used by the KFD wave control for CI
*
* Structure indicates the various information used by the wave control function.
*/
struct HwDebugWaveAddr
{
uint32_t VMID_ : 4; //! Virtual memory id
uint32_t wave_ : 4; //! Wave id
uint32_t SIMD_ : 2; //! SIMD id
uint32_t CU_ : 4; //! Compute unit
uint32_t SH_ : 1; //! Shader array
uint32_t SE_ : 1; //! Shader engine
};
/*! \brief Kernel code information
*
* This structure contains the pointer of mapped kernel code for host access
* and its size (in bytes)
*/
struct AqlCodeInfo
{
amd_kernel_code_t * aqlCode_; //! pointer of AQL code to allow host access
uint32_t aqlCodeSize_; //! size of AQL code
};
/**@}*/
} // namespace gpu
#endif // HWDBG_GPUDEBGGER_H_