utils.py 877 B

1234567891011121314151617181920212223242526272829303132333435
  1. from triton.language import core
  2. @core.extern
  3. def memrealtime(_semantic=None):
  4. """
  5. Returns a 64-bit real time-counter value
  6. """
  7. target_arch = _semantic.builder.options.arch
  8. if 'gfx11' in target_arch or 'gfx12' in target_arch:
  9. return core.inline_asm_elementwise(
  10. """
  11. s_sendmsg_rtn_b64 $0, sendmsg(MSG_RTN_GET_REALTIME)
  12. s_waitcnt lgkmcnt(0)
  13. """,
  14. "=r",
  15. [],
  16. dtype=core.int64,
  17. is_pure=False,
  18. pack=1,
  19. _semantic=_semantic,
  20. )
  21. else:
  22. return core.inline_asm_elementwise(
  23. """
  24. s_memrealtime $0
  25. s_waitcnt vmcnt(0)
  26. """,
  27. "=r",
  28. [],
  29. dtype=core.int64,
  30. is_pure=False,
  31. pack=1,
  32. _semantic=_semantic,
  33. )