36 lines
877 B
Python
36 lines
877 B
Python
from triton.language import core
|
|
|
|
|
|
@core.extern
|
|
def memrealtime(_semantic=None):
|
|
"""
|
|
Returns a 64-bit real time-counter value
|
|
"""
|
|
target_arch = _semantic.builder.options.arch
|
|
if 'gfx11' in target_arch or 'gfx12' in target_arch:
|
|
return core.inline_asm_elementwise(
|
|
"""
|
|
s_sendmsg_rtn_b64 $0, sendmsg(MSG_RTN_GET_REALTIME)
|
|
s_waitcnt lgkmcnt(0)
|
|
""",
|
|
"=r",
|
|
[],
|
|
dtype=core.int64,
|
|
is_pure=False,
|
|
pack=1,
|
|
_semantic=_semantic,
|
|
)
|
|
else:
|
|
return core.inline_asm_elementwise(
|
|
"""
|
|
s_memrealtime $0
|
|
s_waitcnt vmcnt(0)
|
|
""",
|
|
"=r",
|
|
[],
|
|
dtype=core.int64,
|
|
is_pure=False,
|
|
pack=1,
|
|
_semantic=_semantic,
|
|
)
|