| import importlib.util |
| import shutil |
| import os |
| import ctypes |
| import logging |
|
|
|
|
| torch_spec = importlib.util.find_spec("torch") |
| for folder in torch_spec.submodule_search_locations: |
| lib_folder = os.path.join(folder, "lib") |
| test_file = os.path.join(lib_folder, "fbgemm.dll") |
| dest = os.path.join(lib_folder, "libomp140.x86_64.dll") |
| if os.path.exists(dest): |
| break |
|
|
| with open(test_file, 'rb') as f: |
| contents = f.read() |
| if b"libomp140.x86_64.dll" not in contents: |
| break |
| try: |
| mydll = ctypes.cdll.LoadLibrary(test_file) |
| except FileNotFoundError as e: |
| logging.warning("Detected pytorch version with libomp issue, patching.") |
| shutil.copyfile(os.path.join(lib_folder, "libiomp5md.dll"), dest) |
|
|