Add oneDNN#937
Conversation
|
I merged this with the recent master (https://github.com/marian-nmt/marian-dev/tree/graemenail-onednn) and tested with the regression tests that we have. Intgemm tests and one wngt19 8bit test fail, but I guess this is expected and in fact can be also because of #933. In our tests, except tests with quantized 8bit models tested on CPU, it also throws the abort here. Other tests pass. As for other comments, as discussed earlier, instead of replacing MKL with oneDNN, we would like to have this backward compatible at least for some time and to keep the previous behavior as default. So oneDNN would be enabled via CMake flag and MKL is used by default if detected. |
|
Thanks for the comments @snukky. On the LSH abort, it's a while since I looked at this, I don't believe oneDNN provides all the BLAS functions required. From a quick check, I'd guess this #706 (comment) is still the status of non-GEMM BLAS in oneDNN. I had started on the oneDNN + MKL implementation, I'll dig it out. |
|
Closing in favour of #967 |
TODO
Description
Replaces MKL with oneDNN. This PR should enable completely open-source releases of Marian.
This PR also includes a caching of boost, and a cleaning of the debug build directory. These can be broken off into a separate PR if necessary. During testing, windows builds would fail from running out of space building both debug and release. Since disabling oneDNN JIT profiling the build sizes are smaller.
Related: marian-nmt/marian-regression-tests#86
Closes: #706
List of changes:
cblas_sgemm_batchinprod.cpp)mkl_somatcopyintensor_operators.cpp)mkl_somatcopyinpacked_gemm.cpp)The following have some MKL component, and have not been touched:
src/microsoftcodevs/*Added dependencies: Intel oneDNN (removing Intel MKL)
How to test
Ran the 1 million sentence testset of WNGT21 through the MKL and oneDNN versions.
Using the
wngt19model from regression tests.Setup
Ran
#cputagged regression tests. Non-intgemm tests pass.Regression test results
The static binaries are now larger (merge #938 first for comparison).
Checklist