blob: e04c99f0124f20e4c54509b39fc515ec931ecf3d [file] [log] [blame]
try:
from torch._C import _nvtx
except ImportError:
class _NVTXStub(object):
@staticmethod
def _fail(*args, **kwargs):
raise RuntimeError("NVTX functions not installed. Are you sure you have a CUDA build?")
rangePushA = _fail
rangePop = _fail
markA = _fail
_nvtx = _NVTXStub() # type: ignore[assignment]
__all__ = ['range_push', 'range_pop', 'mark']
def range_push(msg):
"""
Pushes a range onto a stack of nested range span. Returns zero-based
depth of the range that is started.
Arguments:
msg (string): ASCII message to associate with range
"""
return _nvtx.rangePushA(msg)
def range_pop():
"""
Pops a range off of a stack of nested range spans. Returns the
zero-based depth of the range that is ended.
"""
return _nvtx.rangePop()
def mark(msg):
"""
Describe an instantaneous event that occurred at some point.
Arguments:
msg (string): ASCII message to associate with the event.
"""
return _nvtx.markA(msg)