From 4e18dd78d32eb65cce3c81822da3672f970e0fd8 Mon Sep 17 00:00:00 2001 From: nimlgen <138685161+nimlgen@users.noreply.github.com> Date: Sat, 23 Mar 2024 15:20:15 +0300 Subject: [PATCH] faster program start in llvm (#3897) --- tinygrad/runtime/ops_llvm.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tinygrad/runtime/ops_llvm.py b/tinygrad/runtime/ops_llvm.py index 21ef7a6dd9..869940652d 100644 --- a/tinygrad/runtime/ops_llvm.py +++ b/tinygrad/runtime/ops_llvm.py @@ -27,7 +27,8 @@ class LLVMProgram: self.fxn = device.engine.get_function_address(name) def __call__(self, *bufs, vals:Tuple[int, ...]=(), wait=False): - self.cfunc = ctypes.CFUNCTYPE(ctypes.c_int, *([ctypes.c_void_p]*len(bufs)), *([ctypes.c_int32]*len(vals)))(self.fxn) + if not hasattr(self, 'cfunc'): + self.cfunc = ctypes.CFUNCTYPE(ctypes.c_int, *([ctypes.c_void_p]*len(bufs)), *([ctypes.c_int32]*len(vals)))(self.fxn) return cpu_time_execution(lambda: self.cfunc(*bufs, *vals), enable=wait) class LLVMDevice(Compiled):