in optimum/quanto/library/extensions/extension.py [0:0]
def lib(self):
if self._lib is None:
# We only load the extension when the lib is required
version_file = os.path.join(self.build_directory, "pytorch_version.txt")
if os.path.exists(version_file):
# The extension has already been built: check the torch version for which it was built
with open(version_file, "r") as f:
pytorch_build_version = f.read().rstrip()
if pytorch_build_version != torch.__version__:
shutil.rmtree(self.build_directory)
warnings.warn(
f"{self.name} was compiled with pytorch {pytorch_build_version}, but {torch.__version__} is installed: it will be recompiled."
)
os.makedirs(self.build_directory, exist_ok=True)
self._lib = load(
name=self.name,
sources=self.sources,
extra_cflags=self.extra_cflags,
extra_cuda_cflags=self.extra_cuda_cflags,
build_directory=self.build_directory,
)
if not os.path.exists(version_file):
with open(version_file, "w") as f:
f.write(torch.__version__)
return self._lib