Files
triton-tvm-ffi/python/triton_tvm_ffi/driver.py
T
2026-01-28 02:16:10 +08:00

49 lines
1.5 KiB
Python

from __future__ import annotations
from typing import Mapping, Type
from triton.backends.nvidia.driver import CudaDriver
from .utils import get_device_properties
class TVMFFIUtils(object):
def __new__(cls: Type[TVMFFIUtils]) -> TVMFFIUtils:
if not hasattr(cls, "instance"):
cls.instance = super().__new__(cls)
return cls.instance
def __init__(self, *args, **kwargs) -> None:
super().__init__(*args, **kwargs)
from triton.backends.nvidia.driver import CudaUtils
self._utils: CudaUtils = CudaUtils()
def load_binary(self, *args, **kwargs):
return self._utils.load_binary(*args, **kwargs)
def get_device_properties(self, device_id: int) -> Mapping[str, int]:
return get_device_properties(device_id)
def cuOccupancyMaxActiveClusters(self, *args, **kwargs):
return self._utils.cuOccupancyMaxActiveClusters(*args, **kwargs)
def set_printf_fifo_size(self, *args, **kwargs):
return self._utils.set_printf_fifo_size(*args, **kwargs)
def fill_tma_descriptor(self, *args, **kwargs):
return self._utils.fill_tma_descriptor(*args, **kwargs)
def launch(self, *args, **kwargs):
return self._utils.launch(*args, **kwargs)
def build_signature_metadata(self, *args, **kwargs):
return self._utils.build_signature_metadata(*args, **kwargs)
class TVMFFIDriver(CudaDriver):
def __init__(self, *args, **kwargs) -> TVMFFIDriver:
super().__init__(*args, **kwargs)
self.utils: TVMFFIUtils = TVMFFIUtils()
del CudaDriver