[cmake-developers] Is there an official FindMKL module?
Siebren Reker
siebren.reker at gmail.com
Thu Aug 27 11:16:34 EDT 2015
Hi Tim,
On Thu, Aug 27, 2015 at 4:32 PM, Tim Gallagher <tim.gallagher at gatech.edu>
wrote:
> Siebren,
>
> We've never really used static linking so I am not sure if it ever really
> worked. I can try and let you know.
>
Could you please do so? Just to verify that I'm not doing something
obviously wrong
> However, I'm having flashbacks here to something I thought I had done
> before. I dug through my emails and back in 2012 I had signed up to
> maintain a new module that provided a macro to interface with the MKL tool
> and generated the proper linking based on what it reported. My colleague
> and I had written it because we were tired of the difficulties in the
> current modules. This new module provided a macro and the FindBLAS and
> FindLAPACK modules would call the macro to get the link information.
>
Sounds clean, but are you sure the tool is always available?
> I got push access to create the topic branch but then I don't know what
> happened. I don't know if I never pushed it, or it never got
> tested/approved/checked, no clue. I actually still have all of the modules
> and changes I had made, but it was in version 2.8. I wish I could remember
> if I had actually pushed it to CMake or not, but I really don't remember
> why it never happened.
>
> So anyway, now that we're discussing it again, if the CMake community
> wants the MKL support improved, I can dust off the modules and see what it
> would take to get it officially in the stream.
>
I'd be more than happy to test this. I've found a number of hits on Google
for FindMKL.cmake files. I certainly wasn't alone in having trouble to get
this to work (doesn't mean much of course).
best,
Siebren
> Tim
>
> ------------------------------
> *From: *"Siebren Reker" <siebren.reker at gmail.com>
> *To: *"tim gallagher" <tim.gallagher at gatech.edu>
> *Cc: *cmake-developers at cmake.org
> *Sent: *Thursday, August 27, 2015 6:32:17 AM
> *Subject: *Re: [cmake-developers] Is there an official FindMKL module?
>
>
> Hi Tim,
>
> Quick add-on to my previous email. With BLA_STATIC ON, I see from the
> CMakeError.log that the static libraries ARE found (I was trusting the),
> but the linking of the test program goes wrong:
> undefined reference to `mkl_blas_sgemv`
> But that function IS implemented in one of the three libraries that is
> found, in my case in libmkl_sequential.a
>
> So this is probably a linking/ library ordering error.
> Indeed, Intel fora and the link advisor I mentioned earlier also report
> the need for grouping these as in
> -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a
> ${MKLROOT}/lib/intel64/libmkl_core.a
> ${MKLROOT}/lib/intel64/libmkl_sequential.a -Wl,--end-group
>
> Is my understanding correct, and can this be fixed?
>
> kind regards,
> Siebren
>
>
> On Thu, Aug 27, 2015 at 11:50 AM, Siebren Reker <siebren.reker at gmail.com>
> wrote:
>
>> Hi Tim,
>>
>> That is encouraging, thanks. I went back and tried harder this time, when
>> I specified BLA_VENDOR precisely and leave BLA_STATIC off, I am able to get
>> to the correct versions.
>> In the very same directory where the shared libraries are found, I have
>> the static libraries as well, but BLA_STATIC on in that case does not find
>> the libraries.
>>
>> I've read up a bit on this now, so maybe the following information is
>> helpful:
>> This is a CMake 3.3.0 installation
>> My project has both C and Fortran enabled
>> I call it as follows:
>>
>> set( BLA_STATIC ON)
>> set( BLA_VENDOR "Intel10_64lp_seq")
>> find_package( BLAS )
>>
>> Is BLA_STATIC = ON working for you?
>>
>> A separate question I have is if the linker command that will be produced
>> afterwards is of course different from the one supplied by Intel in their
>> tool. Should that not concern me?
>>
>> kind regards,
>> Siebren
>>
>>
>> On Wed, Aug 26, 2015 at 4:59 PM, Tim Gallagher <tim.gallagher at gatech.edu>
>> wrote:
>>
>>> We sometime struggled to get it working, but we never had to resort to
>>> using a FindMKL -- FindBLAS and FindLAPACK work just fine for us, provided
>>> we do things "correctly."
>>>
>>> So long as we have sourced the mklvars script that ships with Intel MKL
>>> and we put:
>>>
>>> BLA_VENDOR=Intel10_64lp_seq ccmake /path/to/source/dir
>>>
>>>
>>> Then everything works fine and we have no issues. So we have to give
>>> CMake a hint that we want to pick the Intel version rather than the generic
>>> one (and we're using the sequential, 64bit MKL -- if you look in FindBLAS
>>> you can see other vendor types).
>>>
>>> Have you had things fail when you setup your environment variables using
>>> the scripts Intel provides and when you set the BLA_VENDOR hint as an
>>> environment variable?
>>>
>>> Tim
>>>
>>> ------------------------------
>>> *From: *"Siebren Reker" <siebren.reker at gmail.com>
>>> *To: *cmake-developers at cmake.org
>>> *Sent: *Wednesday, August 26, 2015 10:18:44 AM
>>> *Subject: *[cmake-developers] Is there an official FindMKL module?
>>>
>>>
>>> Hello,
>>>
>>> I am using the find_package() command to load settings for the Intel
>>> Math Kernel Library (MKL). This works through a custom FindMKL.cmake module
>>> that I've made for myself.
>>>
>>> However, when looking at:
>>> https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/
>>> I can tell that what I've done is likely only correct for my specific
>>> case, and certainly not robust against library version changes and various
>>> other changes (openmp, static vs dynamic linking etc.).
>>>
>>> Instead of a FindMKL.cmake module, an alternative is to have MKL be
>>> discovered in the FindBLAS or FindLAPACK modules, but according to what I
>>> can find on the bug tracker, that solution is also in a fairly broken state:
>>> Bug 14138: http://www.cmake.org/Bug/view.php?id=14138
>>> Bug 13543: http://www.cmake.org/Bug/view.php?id=13543
>>> Bug 13528: http://www.cmake.org/Bug/view.php?id=13528
>>>
>>> Google tells me that many people have (like me) created their own
>>> FindMKL.cmake module, which are equally specific and tailored.
>>>
>>> Is anyone aware of a more "official" FindMKL module available somewhere,
>>> or at least something that is being somewhat maintained, either by someone
>>> at Kitware or Intel? Or of a plan to develop something like that?
>>>
>>> kind regards,
>>> Siebren Reker
>>>
>>> --
>>>
>>> Powered by www.kitware.com
>>>
>>> Please keep messages on-topic and check the CMake FAQ at:
>>> http://www.cmake.org/Wiki/CMake_FAQ
>>>
>>> Kitware offers various services to support the CMake community. For more
>>> information on each offering, please visit:
>>>
>>> CMake Support: http://cmake.org/cmake/help/support.html
>>> CMake Consulting: http://cmake.org/cmake/help/consulting.html
>>> CMake Training Courses: http://cmake.org/cmake/help/training.html
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://public.kitware.com/mailman/listinfo/cmake-developers
>>>
>>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20150827/3266d0a0/attachment.html>
More information about the cmake-developers
mailing list