mirror of
https://github.com/tinygrad/tinygrad.git
synced 2026-06-14 00:45:16 +08:00
27 lines
1.4 KiB
Python
27 lines
1.4 KiB
Python
# CUPTI autogen loader for nv_pma
|
|
# To regenerate: REGEN=1 python -c "import extra.nv_pma.cupti"
|
|
import importlib, pathlib
|
|
from tinygrad.helpers import getenv
|
|
|
|
root = pathlib.Path(__file__).parents[3]
|
|
here = pathlib.Path(__file__).parent
|
|
|
|
def load(name, dll, files, **kwargs):
|
|
if not (f:=here/f"{name}.py").exists() or getenv('REGEN'):
|
|
kwargs['args'] = kwargs.get('args', [])
|
|
f.write_text(importlib.import_module("tinygrad.runtime.support.autogen").gen(name, dll, files, **kwargs))
|
|
return importlib.import_module(f"extra.nv_pma.cupti.{name}")
|
|
|
|
def __getattr__(nm):
|
|
match nm:
|
|
case "cupti":
|
|
return load("cupti", "'/usr/local/cuda/targets/x86_64-linux/lib/libcupti.so'", [
|
|
"/usr/local/cuda/include/cupti_result.h", "/usr/local/cuda/include/cupti_activity.h",
|
|
"/usr/local/cuda/include/cupti_callbacks.h", "/usr/local/cuda/include/cupti_events.h",
|
|
"/usr/local/cuda/include/cupti_metrics.h", "/usr/local/cuda/include/cupti_driver_cbid.h",
|
|
"/usr/local/cuda/include/cupti_runtime_cbid.h", "/usr/local/cuda/include/cupti_profiler_target.h",
|
|
"/usr/local/cuda/include/cupti_profiler_host.h", "/usr/local/cuda/include/cupti_pmsampling.h",
|
|
"/usr/local/cuda/include/generated_cuda_meta.h", "/usr/local/cuda/include/generated_cuda_runtime_api_meta.h"
|
|
], args=["-D__CUDA_API_VERSION_INTERNAL", "-I/usr/local/cuda/include"], parse_macros=False)
|
|
case _: raise AttributeError(f"no such autogen: {nm}")
|