0

This is my first time trying to run the Alea TK MNIST example on my machine.

I installed CUDA 8 and everything in accordance with http://www.aleagpu.com/release/3_0_2/doc/installation.html

However running it I always get this error: Unable to load DLL 'curand64_80': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

Even though I can clearly see the curand64_80.dll in C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin

I've set the configuration as such (app.config):

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="aleaSettings" type="Alea.Settings, Alea"/>
  </configSections>
  <aleaSettings>
    <cuBLAS version="8.0"/>
    <cuRAND version="8.0"/>
  </aleaSettings>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
  </startup>
</configuration>

This is the full exception stack trace:

   at Alea.DynamicInterop.curandCreateGenerator.Invoke(IntPtr , RngType )
   at A.cdbbf7f52ce1317681b2fa10b7329e78e.-ctor@386-309.Invoke(Unit _arg3)
   at Alea.cuRAND.Generator..ctor(FSharpOption`1 cc2af9506f3fc494fecea785eae58ff3b, FSharpOption`1 cdd5e91d5c509dec430918468c49a7937, RngType c23e4321fb7f1de7409a3cd12e2cd5890)
   at (FSharpOption`1 , FSharpOption`1 , RngType )
   at AleaTK.GpuContext.CreateRandomGenerator(PseudoRandomType type)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at AleaTK.ExprImpl.PseudoRandomExpr`1.Execute(Assignment assignment, ILValue`1 output)
   at AleaTK.LExpr`1.Execute(Assignment assignment)
   at System.Threading.Tasks.Task.Execute()

What am I missing and how can I run the sample successfully?

Sam7
  • 3,062
  • 2
  • 33
  • 53
  • Is the folder where the DLL resides in your PATH or is the DLL in the same folder where your executable resides? Are you targeting 32-bit rather than 64? (The DLL name and location indicate it's the 64-bit version of the DLL.) – Ken White Jan 11 '17 at 04:00
  • Thanks. That was it. I just assumed the CUDA installation would take care of that... apparently not. – Sam7 Jan 11 '17 at 04:35

2 Answers2

1

Alea GPU 3.0.2 is looking for CUDA toolkit 7.5 by default. You seem to use CUDA toolkit 8.0. You have to configure Alea GPU accordingly. Refer to the documentation for details how to config the CUDA tookit version. Also make sure that you build and run 64 bit because several CUDA libraries are only available in 64bit. HTH.

Daniel
  • 1,150
  • 9
  • 19
1

Update the PATH environment variable to include C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin

I assumed that the CUDA installation would update my PATH environment variable, but it didn't

Community
  • 1
  • 1
Sam7
  • 3,062
  • 2
  • 33
  • 53