pytorch / csprng

Cryptographically secure pseudorandom number generators for PyTorch
https://github.com/pytorch/csprng
BSD 3-Clause "New" or "Revised" License
105 stars 24 forks source link

OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized. #115

Open pbelevich opened 3 years ago

pbelevich commented 3 years ago

Windows + py39 + pip:

pip install --no-cache-dir --pre torchcsprng -f https://download.pytorch.org/whl/test/cu111/torch_test.html
python test_csprng.py -v
test_exponential_kstest (__main__.TestCSPRNG) ... OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.
OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can degrade performance or cause incorrect results. The best thing to do is to ensure that only a single OpenMP runtime is linked into the process, e.g. by avoiding static linking of the OpenMP runtime in any library. As an unsafe, unsupported, undocumented workaround you can set the environment variable KMP_DUPLICATE_LIB_OK=TRUE to allow the program to continue to execute, but that may cause crashes or silently produce incorrect results. For more information, please see http://www.intel.com/software/products/support/.
pbelevich commented 3 years ago

Maybe related to https://github.com/pytorch/pytorch/issues/49405 https://github.com/pytorch/csprng/issues/108

ladzin commented 2 years ago

I ran into the same error. I found there are two libiomp5md.dll, one in "Library\bin", another one in "Lib\site-packages\torch\lib". The workaround

import os
os.environ['KMP_DUPLICATE_LIB_OK']='True'

works, but is there a better solution?