You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
3.6 KiB
79 lines
3.6 KiB
#ifndef __NSIGHTEVENTS__
|
|
#define __NSIGHTEVENTS__
|
|
|
|
/// \nodoc (keyword to exclude this file from automatic README.md generation)
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// NSIGHT
|
|
//-----------------------------------------------------------------------------
|
|
#ifdef NVP_SUPPORTS_NVTOOLSEXT
|
|
// NSight perf markers - take the whole stuff from "C:\Program Files (x86)\NVIDIA GPU Computing Toolkit\nvToolsExt"
|
|
#include <nvtx3/nvToolsExt.h>
|
|
|
|
typedef int(NVTX_API* nvtxRangePushEx_Pfn)(const nvtxEventAttributes_t* eventAttrib);
|
|
typedef int(NVTX_API* nvtxRangePush_Pfn)(const char* message);
|
|
typedef int(NVTX_API* nvtxRangePop_Pfn)();
|
|
extern nvtxRangePushEx_Pfn nvtxRangePushEx_dyn;
|
|
extern nvtxRangePush_Pfn nvtxRangePush_dyn;
|
|
extern nvtxRangePop_Pfn nvtxRangePop_dyn;
|
|
extern nvtxEventAttributes_t eventAttr;
|
|
|
|
#define NX_RANGE nvtxRangeId_t
|
|
#define NX_MARK(name) nvtxMark(name)
|
|
#define NX_RANGESTART(name) nvtxRangeStart(name)
|
|
#define NX_RANGEEND(id) nvtxRangeEnd(id)
|
|
#define NX_RANGEPUSH(name) nvtxRangePush(name)
|
|
#define NX_RANGEPUSHCOL(name, c) \
|
|
{ \
|
|
nvtxEventAttributes_t eventAttrib = {0}; \
|
|
eventAttrib.version = NVTX_VERSION; \
|
|
eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE; \
|
|
eventAttrib.colorType = NVTX_COLOR_ARGB; \
|
|
eventAttrib.color = c; \
|
|
eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII; \
|
|
eventAttrib.message.ascii = name; \
|
|
nvtxRangePushEx(&eventAttrib); \
|
|
}
|
|
#define NX_RANGEPOP() nvtxRangePop()
|
|
struct NXProfileFunc
|
|
{
|
|
NXProfileFunc(const char* name, uint32_t c, /*int64_t*/ uint32_t p = 0)
|
|
{
|
|
nvtxEventAttributes_t eventAttrib = {0};
|
|
// set the version and the size information
|
|
eventAttrib.version = NVTX_VERSION;
|
|
eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
|
|
// configure the attributes. 0 is the default for all attributes.
|
|
eventAttrib.colorType = NVTX_COLOR_ARGB;
|
|
eventAttrib.color = c;
|
|
eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
|
|
eventAttrib.message.ascii = name;
|
|
eventAttrib.payloadType = NVTX_PAYLOAD_TYPE_INT64;
|
|
eventAttrib.payload.llValue = (int64_t)p;
|
|
eventAttrib.category = (uint32_t)p;
|
|
nvtxRangePushEx(&eventAttrib);
|
|
}
|
|
~NXProfileFunc() { nvtxRangePop(); }
|
|
};
|
|
#ifdef NXPROFILEFUNC
|
|
#undef NXPROFILEFUNC
|
|
#undef NXPROFILEFUNCCOL
|
|
#undef NXPROFILEFUNCCOL2
|
|
#endif
|
|
#define NXPROFILEFUNC(name) NXProfileFunc nxProfileMe(name, 0xFF0000FF)
|
|
#define NXPROFILEFUNCCOL(name, c) NXProfileFunc nxProfileMe(name, c)
|
|
#define NXPROFILEFUNCCOL2(name, c, p) NXProfileFunc nxProfileMe(name, c, p)
|
|
#else
|
|
#define NX_RANGE int
|
|
#define NX_MARK(name)
|
|
#define NX_RANGESTART(name) 0
|
|
#define NX_RANGEEND(id)
|
|
#define NX_RANGEPUSH(name)
|
|
#define NX_RANGEPUSHCOL(name, c)
|
|
#define NX_RANGEPOP()
|
|
#define NXPROFILEFUNC(name)
|
|
#define NXPROFILEFUNCCOL(name, c)
|
|
#define NXPROFILEFUNCCOL2(name, c, a)
|
|
#endif
|
|
|
|
#endif //__NSIGHTEVENTS__
|
|
|