cuRAND static library

The cuRAND documentation states the following:

I have toolkits 6.5, 7 and 7.5 installer and that file does not exist on my system, only curand.lib exists.

Does that file exist somewhere? Error in the documentation? Or in the installer?

Are you using a Windows platform? If so, the .lib suffix suggests a statically linked library, while .dll would suggest a dynamically linked library. So this could be a documentation error. What happens if you invoke

lib /LIST curand.lib

where ‘lib’ is the library manager of the MSVC toolchain.

c:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\lib\x64>lib /LIST curand.lib
Microsoft (R) Library Manager Version 10.00.40219.01
Copyright (C) Microsoft Corporation.  All rights reserved.

curand64_75.dll
[...]

So, curand.lib seems to be just the interface for curand64_75.dll, not a static library. There does not seem to be a statically linked CURAND library, at least I cannot find one. You might want to file a bug for this NVIDIA.

Right…
For cudart we have a thin cudart.lib that throws back to cudart____.dll, and a fat cudart_static.lib that does not need to .dll to be shipped with the application.

The documentation announces the same thing for curand, but the _static.lib file is missing.

it should be an issue in documentation. I have filed a bug report internally to track this issue.

Thanks @Ailleur.

I tried a few times to file the bug myself, but the webpage appeared to be bugged (!). I received error messages after pressing the submit message on my profile landing page, and I had 0 bugs submitted in the list.

Should I understand from your message that there is no plan to have a static library any time soon?

The web bug submission process includes a mechanism to attempt to detect threats in the submitted bug report. If a “threat” is detected, you will get an obscure web error when you attempt to submit the bug, and no report will be filed.

The specifics of the threat detection algorithm are not published for obvious reasons, and unfortunately it does generate false positives, somewhat frequently. For example, although I haven’t tried it, I think something of the form of a linux rm command that also specified sudo and other things that would wipe out your disk drive would be flagged by the threat detection system, and the bug report would be rejected (again, not via a clear direct message but via an obscure web error), if it contained that text anywhere. If you want to, try creating a posting here with such a text sequence - it will likely be detected.

If such a situation occurs, there are two suggestions which may be of interest

  1. Remove elements from your bug report in a trial-and-error fashion, until the bug report submission is successful. This can be admittedly tedious, however you can try a binary divide-and-conquer to speed it up a bit. Once the bug report is successful, you can edit it later to submit additional content.

  2. Post here. Although there is no guarantee that items posted on this forum will be automatically handled or automatically converted to a bug for you, in some instances I or other NVIDIA employees may see your posting and take action. Speaking for myself, I generally will not file a bug report on anyone’s behalf, unless I can reproduce the issue myself. My willingness and ability to do so depends on the nature of the actual report/issue, and other factors such as my available cycles.

7 years later - still no static libs for curand and cublas?

Don’t know about CURAND. Static linking with CUBLAS has been supported or a number of years, have you tried -lcublas_static in your build? Depending on which CUBLAS functionality you use, you may also need -lcublasLt_static.