88 خطوط
2.4 KiB
C
88 خطوط
2.4 KiB
C
|
|
/*
|
||
|
|
* Copyright 2024 NVIDIA Corporation. All rights reserved.
|
||
|
|
*
|
||
|
|
* Licensed under the Apache License v2.0 with LLVM Exceptions.
|
||
|
|
* See https://llvm.org/LICENSE.txt for license information.
|
||
|
|
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||
|
|
*/
|
||
|
|
|
||
|
|
/**
|
||
|
|
* NVTX semantic headers require nvToolsExtPayload.h to be included beforehand.
|
||
|
|
*/
|
||
|
|
|
||
|
|
#ifndef NVTX_SEMANTIC_ID_COUNTERS_V1
|
||
|
|
#define NVTX_SEMANTIC_ID_COUNTERS_V1 2
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Flags to extend the semantics of counters.
|
||
|
|
*/
|
||
|
|
#define NVTX_COUNTERS_FLAGS_NONE 0
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Convert the fixed point value to a normalized floating point value.
|
||
|
|
* Unsigned [0f : 1f] or signed [-1f : 1f] is determined by the underlying type
|
||
|
|
* this flag is applied to.
|
||
|
|
*/
|
||
|
|
#define NVTX_COUNTERS_FLAG_NORMALIZE (1 << 1)
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Visual tools should apply scale and limits when graphing.
|
||
|
|
*/
|
||
|
|
#define NVTX_COUNTERS_FLAG_LIMIT_MIN (1 << 2)
|
||
|
|
#define NVTX_COUNTERS_FLAG_LIMIT_MAX (1 << 3)
|
||
|
|
#define NVTX_COUNTERS_FLAG_LIMITS \
|
||
|
|
(NVTX_COUNTERS_FLAG_LIMIT_MIN | NVTX_COUNTERS_FLAG_LIMIT_MAX)
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Counter time scopes.
|
||
|
|
*/
|
||
|
|
#define NVTX_COUNTERS_FLAG_TIMESCOPE_POINT (1 << 5)
|
||
|
|
#define NVTX_COUNTERS_FLAG_TIMESCOPE_SINCE_LAST (2 << 5)
|
||
|
|
#define NVTX_COUNTERS_FLAG_TIMESCOPE_UNTIL_NEXT (3 << 5)
|
||
|
|
#define NVTX_COUNTERS_FLAG_TIMESCOPE_SINCE_START (4 << 5)
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Counter value types.
|
||
|
|
*/
|
||
|
|
#define NVTX_COUNTERS_FLAG_VALUETYPE_ABSOLUTE (1 << 10)
|
||
|
|
/** Delta to previous value of same counter type. */
|
||
|
|
#define NVTX_COUNTERS_FLAG_VALUETYPE_DELTA (2 << 10)
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Datatypes for the `limits` union.
|
||
|
|
*/
|
||
|
|
#define NVTX_COUNTERS_LIMIT_I64 0
|
||
|
|
#define NVTX_COUNTERS_LIMIT_U64 1
|
||
|
|
#define NVTX_COUNTERS_LIMIT_F64 2
|
||
|
|
|
||
|
|
/**
|
||
|
|
*\brief Specify counter semantics.
|
||
|
|
*/
|
||
|
|
typedef struct nvtxSemanticsCounter_v1 {
|
||
|
|
/** Header of the semantic extensions (with identifier, version, etc.). */
|
||
|
|
struct nvtxSemanticsHeader_v1 header;
|
||
|
|
|
||
|
|
/** Flags to provide more context about the counter value. */
|
||
|
|
uint64_t flags;
|
||
|
|
|
||
|
|
/** Unit of the counter value (case-insensitive). */
|
||
|
|
const char* unit;
|
||
|
|
|
||
|
|
/** Should be 1 if not used. */
|
||
|
|
uint64_t unitScaleNumerator;
|
||
|
|
|
||
|
|
/** Should be 1 if not used. */
|
||
|
|
uint64_t unitScaleDenominator;
|
||
|
|
|
||
|
|
/** Determines the used union member. Use defines `NVTX_COUNTER_LIMIT_*`. */
|
||
|
|
int64_t limitType;
|
||
|
|
|
||
|
|
/** Graph limits {minimum, maximum}. */
|
||
|
|
union limits_t {
|
||
|
|
int64_t i64[2];
|
||
|
|
uint64_t u64[2];
|
||
|
|
double d[2];
|
||
|
|
} limits;
|
||
|
|
} nvtxSemanticsCounter_t;
|
||
|
|
|
||
|
|
#endif /* NVTX_SEMANTIC_ID_COUNTERS_V1 */
|