- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I need sparse matrix-vector multiplication in my code and want to use the MKL, as I want to also use the Xeon Phi cards in my system. However, the 64-bit version (the one activated by the -DMKL_ILP64 flag for the Intel compiler) seems to be broken
#include <iostream> #include <mkl.h> int main() { MKL_INT rows = 2; MKL_INT cols = 2; double const alpha = 1.0; double const val[] = {1.0, 1.0, 1.0}; MKL_INT indx[] = {0, 1, 1}; MKL_INT outer[] = {0, 2, 3}; MKL_INT const* pntrb = outer; MKL_INT const* pntre = outer + 1; double const x[] = {0.0, 1.0}; double const beta = 0.0; double y[] = {0.0, 0.0}; mkl_dcsrmv("N", &rows, &cols, &alpha, "G**C", val, indx, pntrb, pntre, x, &beta, y); std::cout << "y = {" << y[0] << ", " << y[1] << "}" << std::endl; }
When I compile the above code with: icpc -mkl, I get the output: "y = {1, 1}", which should be expected. When I do so with the -DMKL_ILP64 switch I get: "y = {0, 0}".
I need this fixed rather quickly, as our client really needs his Xeon Phi cards running this code. Can you please confirm this bug? I am using Intel Compiler version 16.0.3 20160415 as well as Intel MKL 11.3 Update 3.
Best regards,
Lars
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Lars, when you use compiler option -mkl or /Qmkl, then LP64 for the Intel® 64 architecture will be used.
Please have a look at the MKL's User's Guide - Using the /Qmkl Compiler Option
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for your help, I didn't know that this was the default when using the -mkl flag. I thought that by defining -DMKL_ILP64 the compiler would choose the correct linking when also defining the mkl flag. I think this should be coordinated within the Intel compiler. But anyway: this is no bug within the MKL. It works now using the Link Line Advisor.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page