Either the CMake config needs to be amended, or the directory structure in the wheel needs to be amended to reflect what the CMake file is looking for.Įverything works just fine on Linux and MacOs (which have sane linking models and directory structures), so this is a uniquely Windows problem. The wheel contains the ".lib" files directly in the "lib" folder and ".dll" files in the "bin" folder of the wheel, but the CMake config file tries to find these in " Library/redist/intel64/vc14". The CMake config file distributed with this package references the wrong directory structure compared to the contents of the wheel. For our example, numbers has no library dependencies. Unfortunately, there is another problem with the "tbb-devel" Python package. addexecutable(sampleApp main.cpp numbers/numbers.cpp numbers/numbers.h ) Ex: Including the library main.cpp include 'numbers/numbers.h' This will build the library into our example application and will not require linking to any new libraries other than the libraries numbers needs to build. Second, to try and circumvent the problem above on Windows, I tried to use TBB as a threading backend for MKL. Simple configuration files placed in each source directory (called CMakeLists.txt files) are used to generate standard build files (e.g., Makefiles on Unix and projects/workspaces in Windows. Ideally, one would distribute this as part of a "intel-openmp-devel" package, that is a dependency of "mkl-devel" The file libiomp5md.lib (link file, not the statically linked version) needs to be present to link the application, and CMake fails to find MKL when this is not present. Unfortunately, I've run into a couple of problems:įirst, on Windows the OpenMP link stub file is missing in the mkl-devel wheel, meaning that one cannot build and link a program that uses intel threading using this distribution. I've been putting together a new build pipeline for a library I've been working on, and I was hoping to use the python distributions of mkl to greatly simplify the build system - and avoid installing the whole oneAPI base package in the CI system.
0 Comments
Leave a Reply. |