Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.

IVF has disabled my CVF

groupw_bench
Beginner
534 Views

My problem is that since installing IVF 9.1 and MKL 8.1, I'm unable tobuild my program using CVF 6.6 with MKL 6.1. When I try, CFV throws linker error LNK1104, "cannot open file 'libguide.lib'. I haven't had trouble linking this program with this system for years, so something about the IVF/MKL installation has messed with CVF.

As far as I can tell, libguide.lib isn't even part of the MKL 6.1 package, so I don't understand why CVF is even looking for it or knows that it exists. I've verified that CVF is linking with the old v. 6.1 mkl_s.lib library file, and the default directory settingsalso seem to be intact. There's no mkl.cfg file anywhere on my system. There's no reference to any of the IVF or MKL 8.1 directories in the PATH environment variable. CVF is integrated with the Visual Studio 6 IDE, and IVF with the Visual Studio 2005 environment.

I want to continue using the old software for maintenance of the current version of my program, and use the new compiler and maybe MKL for the next version. Besides simplifying maintenance updates, I also need to use the old software until I get the new software working -- so far I haven't been able to get my program to run after compiling with IVF. But now neither the old or the new software is functional.

How can I undo what IVF has done to CVF, so I can continue using CVF? Do I have to uninstall IVF in order to get my old software running again?

0 Kudos
2 Replies
TimP
Honored Contributor III
534 Views
libguide is not part of the CVF installation, so your hypothesis that this indicates damage to your CVF seems unlikely. More likely, your installation of MKL 8.1 has messed up the paths associated with MKL 6.1. MKL always has had dependency on libguide, and always has supplied a libguide of its own. The libguide in 6.1 surely will be incompatible with 8.1 and with recent versions of ifort.
It may be possible to continue using MKL 6.1 with CVF, if you take care to keep all paths straight, removing any MKL paths which you have allowed to be installed in your System Properties environment variables, and using separate VS project settings, as you appear to be doing. If you say you don't have the incentive to tackle this complication, I would agree with you and say why not remove MKL 6.1 and use 8.1 exclusively.
0 Kudos
groupw_bench
Beginner
534 Views

Thanks very much. I hadn't realized that libguide was also part of MKL 6.1. Once I learned that, fixing the problem was simple. I had specified a particular directory for library files, and had copied mkl_s.lib and what I thought were all the other necessary files there. Apparently it had been getting libguide from the original MKL installation directory, and had a path there which was changed with the 8.1 installation. I simply copied the MKL 6.1 version of libguide.lib to the directory I'm using for CVF library files, and CVF was returned to functionality.

Here's why I don't abandon CVF yet. I have a large installed base of customers running a program compiled with CVF including MKL 6.1. In the process of developing the application, I found that certain optimizations would cause crashes and obscure problems, so I've fiddled with them until everything works. I also found that certain MKL routines would cause trouble -- for example, MKL 6.1's ZGET32 would cause some computers to hang, so I use asubstitute hacked together from Netlib source code and MKL function calls. It's been working fine for several years now. From time to time my program requires a bug fix or minor correction requiring recompilation. Considering my history with CVF 6.6 and MKL 6.1, I'm not about to abruptly change to a new compiler and MKL package and begin shipping its output to my customers. I'm using IVF for developing the next version of my program, which will be released only after extensive beta testing which will hopefully catch most of the problems before they end up in the customers' hands. In the meantime, updates to the current program version will be done with the combination that's proven itself to work.

Thanks again -- I'm relieved to have the old system working again.

0 Kudos
Reply