Comments (7)
Thank you for the detailed bug report, including a reproducer! This project doesn't cover oneMKL binary product and the better way to escalate issues is the oneMKL Forum. You can read more about difference between oneMKL interfaces project and Intel oneMKL release here.
That said, the Intel oneMKL team will take a look at this issue now that you've brought it to our attention. Thanks!
from onemkl.
We took a look, and it seems like the link line may be incorrect. Please consider using the Link Line Advisor to configure the link command according to your program features. In particular, Intel® oneAPI Math Kernel Library for DPC++ only supports using the mkl_intel_ilp64 interface library.
Linking with the mkl_intel_ilp64 interface library and defining the compilation option -DMKL_ILP64 allow the program to run with the expected behavior:
1 2 3 4 5 6 7 8 9 10
1 0 2 0 3 0 4 0 5 0
While linking to the mkl_intel_lp64 interface library resulted in the same output you reported.
Example link line:
dpcpp dgetrf.cpp -DMKL_ILP64 -I${MKLROOT}/include -L${MKLROOT}/lib/intel64 -lmkl_sycl -lmkl_intel_ilp64 -lmkl_tbb_thread -lmkl_core -lsycl -lOpenCL -lpthread -lm -ldl
Thanks, and please let us know if this doesn't solve the issue.
from onemkl.
Hi. Thank you. That does indeed solve the issue.
from onemkl.
I'm sorry I didn't show my link line in the original post.
I have used the link line advisor before, it is a great tool.
In other parts of my code I use the original 32 bit fortran BLAS and LAPACK interfaces directly. I wonder how I will be able to combine both these 32 bit interfaces and the 64 bit oneAPI interfaces in a single library.
from onemkl.
Hi @pghysels, so far it's not possible, but we will investigate how we can enable mixing of lp64/ilp64 APIs in one library. Is it important to have 32 bit fortran API in your application?
from onemkl.
The 32 bit Fortran interface is used extensively in our code. I could refactor this to make the BLAS/LAPACK integer size a template parameter or make it configurable at compile time. But this would require considerable changes. We didn't think we would ever need 64 bit LAPACK.
This 32 bit interface is also used in some of our dependencies, for instance SLATE, (which does not currently support MKL with 64 bit integers) and ButterflyPACK, which is written in Fortran and calls the 32 bit interfaces directly.
from onemkl.
Thanks @pghysels, I will keep this issue updated with any information about enabling lp64/ilp64 mixing support in Intel oneMKL.
from onemkl.
Related Issues (20)
- [BLAS] Wrong namespace usage in BLAS Documentation HOT 5
- pthreads not found HOT 6
- [DFT] compute_forward (forward_ip_rr) function template in forward.hpp overrides compute_forward (forward_op_cc) if in and out types are the same HOT 10
- How to setup CMakeLists to use OneMKL on a GPU (Intel Arc/Nvidia sm_89) HOT 9
- Implement CuBlas/MKL int8, float mixed precision gemm_batch
- Examples fail to build with AdaptiveCpp HOT 1
- [DFT][Unit Tests] External Unit test set fails if either USM or Buffer memory is not supported HOT 4
- MKL FP16 GEMM crash on MTL iGPU HOT 4
- [CMake] Project version does not match release tag
- [CMake] oneMKL version macros HOT 2
- PR workflow for selective testing doesn't work as expected
- When trying to use oneMKL with the portBLAS backend there is a check for Intel, AMD or Nvidia GPU. HOT 3
- v0.5 release notes HOT 9
- [Feature Request] Support value_or_pointer arguments for oneMKL functions HOT 2
- Add prefixes to macros in in config.hpp.in HOT 2
- Build with open-source DPC++-LLVM (`clang++`) broken due to compiler removal of `sycl/detail/pi.hpp`
- [ROCFFT] RocFFT fails tests when using ROCm 6.0 or later HOT 4
- gesvd return empty result on cuda backend if M<N
- oneMKL only has `dgmm_batch` variant: doesn't map to cublas
- Using MKL::MKL to resolve the -fsycl issue with AdaptiveCpp fails. HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from onemkl.