-
Notifications
You must be signed in to change notification settings - Fork 6.8k
Fix compilation for large tensor with MKL #19067
Conversation
Hey @anko-intel , Thanks for submitting the PR
CI supported jobs: [unix-cpu, website, windows-gpu, sanity, edge, centos-gpu, clang, miscellaneous, windows-cpu, centos-cpu, unix-gpu] Note: |
08c47e6
to
d2f1bd0
Compare
2d73d73
to
4c95d87
Compare
Unauthorized access detected. |
@mxnet_bot run ci [centos-gpu] |
@mxnet-bot run ci [centos-gpu, unix-gpu] |
Jenkins CI successfully triggered : [unix-gpu, centos-gpu] |
Test passed. Looks like it was just being flaky |
Unauthorized access detected. |
1 similar comment
Unauthorized access detected. |
4c95d87
to
573011f
Compare
573011f
to
67c5b08
Compare
@mxnet-bot run ci [centos-cpu] |
Jenkins CI successfully triggered : [centos-cpu] |
67c5b08
to
b4d19fc
Compare
re-triggerred sanity |
cb5dec2
to
6dd567e
Compare
6dd567e
to
9434d01
Compare
a649634
to
0647c7f
Compare
When Mxnet is compiled with -DUSE_CUDA=1 -DUSE_INT64_TENSOR_SIZE=ON -DUSE_BLAS=mkl interface for det and slogdet operators have API with int64_t type for pivot, but internally CUDA path support only int type. It requires additional conversion on GPU path to have common API.
+ some cleanup
0647c7f
to
24b698d
Compare
@mxnet-bot run ci [windows-cpu] |
Jenkins CI successfully triggered : [windows-cpu] |
PR is ready! Would you review @leezu |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you!
…19174) This PR forces static link to libopenblas.a on all CI pipelines to avoid the name clashing issue (except for windows where visual studio does not support static link to openblas according to this https://github.com/xianyi/OpenBLAS/wiki/How-to-use-OpenBLAS-in-Microsoft-Visual-Studio see bottom). On ubuntu and centos7 we changed from apt get/ yum openblas and lapack to building openblas(blas+lapack) from source. Also we add support LAPACKE api for non-mkl builds. The background is: In mxnet we wrap lapack functions in c_lapack_api.h so that we hide the differences in the underlying blas/lapack libraries such as mkl, openblas, atlas, and accelerate. For mkl we use/wrap the LAPACKE (https://www.netlib.org/lapack/lapacke.html) c interfaces which are the cleanest. For the rest of the libraries we wrap the old CLAPACK interfaces. Openblas is by default built with lapack support and the binary will contain a full set of LAPACKE functions. Thus this poc adds a build option with which we can use the LAPACKE apis even for openblas. This change will make ilp64 blas/lapack support easier as now we have the same wrapping logic or both mkl and openblas with USE_LAPACKE_INTERFACE = ON. Support for ilp64 mkl #19067 will automatically mean support for ilp64 openblas. Known issue: linux distros ship openblas binaries WITHOUT lapack so this option can only work if we build openblas from source. This is not a problem for our mxnet binary distributions as we always use our own openblas build there. However, For users building mxnet from source they must be advised against using this option unless they also build openblas from source
It fixes the issue #18954
The main changes: