What happens if application links against multiple cudart_XXX.dll's

Hi, i’m curious whether a application which links against multiple cudart_XXX.dlls works correctly (in Windows).
Imagine following situation: Library A uses internally CUDA and links against cudart_XXX.dll from Cuda Toolkit 3.1. Library B uses internally CUDA and links against cudart_YYY.dll from Cuda Toolkit 3.2. Now an application uses both libraries A and B.
Is there a chance that the application will work properly (in windows) ?

My application does not work in such situation, though I do not know exactly why. I think it will not work. And I think it is one of cuda problems… Maybe I am wrong here, just my experience.

I have to agree, that would be somewhat nasty if it does not work. Because generally, it is not a problem in windows if a application uses libraries A and B which are linked to different versions X and Y of a library Z, if two things are fullfilled:

  • Both libraries A and B have the library Z not ‘on the interface’ (use it only internally)
  • The different version X and Y are ‘versioned’ (have their version number somewhere contained in .lib and .dll name)

One has to consider that, in practice, its often quite complicated to ensure that every library which are used in an application is linked against same cuda toolkit version. You might have only the binaries of some specific library, etc. etc.

I would appreciate it if some of the NVIDIA developers here in the forum could give me some information regarding this issue… thx…