예제 #1
0
파일: profile.cpp 프로젝트: SunQilin/maxDNN
CudaProfileRange::CudaProfileRange(const char *format, ...) {
    char name[256];
    va_list ap;

    va_start(ap, format);
    vsnprintf(name, sizeof(name), format, ap);
    va_end(ap);

    name[sizeof(name)-1]=0;

    nvtxRangePush(name);
}
예제 #2
0
void* PvdImpl::zoneStart(const char* eventName, bool detached, uint64_t contextId)
{
	if(mProfileZone)
	{
		const uint16_t id = mProfileZone->getEventIdForName(eventName);
		if(detached)
			mProfileZone->startEvent(id, contextId, CrossThreadId);
		else
			mProfileZone->startEvent(id, contextId);
	}
#if PX_NVTX
	if(mIsNVTXSupportEnabled)
	{ 
		if(detached)
		{
			// TODO : Need to use the nvtxRangeStart API for cross thread events
			nvtxEventAttributes_t eventAttrib;
			memset(&eventAttrib, 0, sizeof(eventAttrib));
			eventAttrib.version = NVTX_VERSION;
			eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
			eventAttrib.colorType = NVTX_COLOR_ARGB;
			eventAttrib.color = 0xFF00FF00;
			eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
			eventAttrib.message.ascii = eventName;
			nvtxMarkEx(&eventAttrib);
		}
		else
		{
			nvtxRangePush(eventName);
		}
	}
#endif
	if(mUserProfilerCallback)
		mUserProfilerCallback->zoneStart(eventName, detached, contextId);

	return NULL;
}
예제 #3
0
ProfileRange::ProfileRange(const char *name) {
   // _rangeId = nvtxRangeStart(name);
    _rangeId = nvtxRangePush(name);
}