CUDA.NET 2.3.7 Released

Dear all,

We would like to announce for the release of CUDA.NET 2.3.7.

This version addresses various issues with runtime API and types. The change was in data types and structures compliance with the native wrapper of CUDA Runtime API, to support cross-platform environments operating in 32 or 64 bit mode. The structures now support the SizeT structure we introduced in the previous CUDA.NET release.

Link to the download page.

Please send us your comments and feedback.

22 Replies to “CUDA.NET 2.3.7 Released”

  1. Hello,

    I was wondering if you could provide some sample projects that are for VB .Net 2005 or 2008 express edition? The examples are in C# and I cannot load them.

    Duncan

  2. Hello,
    I successfully downloaded, installed, compiled and ran CUDA.NET and the examples you have provided. When I run the simpleFFT example on my 64-Bit machine the computation returns an error in the L2-norm (about 0.7 – depending of course on the random values it uses). I was wondering if this error comes from the fact that I’m running simpleFFT on a 64-Bit machine. Is that possible?

    Thank’ a lot for providing CUDA.NET!

    Hermann

    1. Hey,
      In fact that is more relevant to the precision your GPU performs calculations with.
      Computing FFT’s involves using the exponent, sine & cosine functions, which are known not to be as exact as the CPU (do not conform to fully IEEE 754 standard, due to these functions). Still, you may expect at maximum a ULP 4 error (accurate as to 4 digits for the smallest number expressed in float/double).

      Better as on the CUDA forums too, since this example is based on the CUDA SDK, so others would experience it too through C/C++ or other environments.

      Regards,
      CASS :).

  3. Hi,

    if I run the simpleFFT example from CUDA SDK (which is in essence the same code) I don’t get these big errors from computing the L2-norm between forward/backward FFTs. Btw, my GPU is a 8800GTS (G92).

    Any more hints where this big error might come from? I don’t see any bugs in your simpleFFT example.

    all the best,
    Hermann

  4. Hello again,

    I repeated the computation on a different (32-Bit) computer with a 8400GS card with the same result as before: L2-norm around 0.6 to 0.8 as the result of your example project simpleCUFFT based on CUDA.NET.

    Regards,
    Hermann

  5. Hello,
    just as a follow up to my previous messages: I found a bug in your simpleCUFFT example in the function PadData. Now I got correct results with max ULP 4 error.

    Regards,
    Hermann

  6. Hi

    I am using your latest version of CUDA.NET. Unfortunately, when a use any of the CUDARuntime methods I get:

    Unable to load DLL ‘cudart’: The specified module could not be found.

    Am I missing something?

    Sergio

    1. Hi Sergio,

      The cudart.dll file is part of NVIDIA CUDA Toolkit installation.
      The driver API would work in any environment with NVIDIA drivers installed, but for the runtime API you need to install the Toolkit.

  7. Thanks!

    I have another quick question. Sometimes in CUDA it is recommended to use templates to get some performance speedup. How do I pass the parameter to the template in CUDA.NET?

    For example, if my CUDA function is:

    template __global__ static void map(…..

    How do I pass that blocksize in CUDA.NET?

  8. Hi,

    I have the problem Sergio met a couple of months ago. I am trying to use CUDA Runtime methods but get the message error :

    Unable to load DLL ‘cudart’: The specified module could not be found.

    I had installed the toolkit and actually have a dll named “cudart32_30_14.dll”. Is it a wrong one ? I copied and pasted it in the folder containing CUDA.NET.dll but it still doesn’t work.

    Am I doing something wrong ?

    Thank you

    1. Actually no, you should look for a cudart.dll file under the bin directory of the CUDA installation.
      If none exists, then you could create a copy of cudart32_30_14.dll file to become cudart.dll.

  9. Hi Sergio,

    The cudart.dll file is part of NVIDIA CUDA Toolkit installation.
    The driver API would work in any environment with NVIDIA drivers installed, but for the runtime API you need to install the Toolkit.

  10. Hi,

    I have the problem Sergio met a couple of months ago. I am trying to use CUDA Runtime methods but get the message error :

    Unable to load DLL ‘cudart’: The specified module could not be found.

    I had installed the toolkit and actually have a dll named “cudart32_30_14.dll”. Is it a wrong one ? I copied and pasted it in the folder containing CUDA.NET.dll but it still doesn’t work.

    Am I doing something wrong ?

    Thank you

  11. Hello,
    like hvh, i get an error message as result. It’s also L2-norm error. hvh said tat he got rid of this error message by manipulating PadData-method. Would you share with me how to do this?

    Or maybe otherwise: Do i need this PadData-method for FFT functionality?

    Kind regards

  12. The Async example does not work:

    cuda.CopyDeviceToHostAsync(d_a, a, stream);
    Error: This method is not generic.

    Rewriting the method to:
    unsafe
    {
    fixed (int* p = a)
    {
    cuda.CopyDeviceToHostAsync(d_a, new IntPtr(p), (uint)a.Length * 4, stream);
    }
    }

    always returns ErrorInvalidValue.

    Any help is greatly appreciated, I need to do async calls.

    Thank you very much!

  13. Whoops, the non-generic method which does not work is supposed to be:
    cuda.CopyDeviceToHostAsync(d_a, a, stream);

  14. Turns out the async operation can only work with non-pageable host memory which has to be allocated by AllocHost first.

    Strange thing though that i cannot use FreeHost to free up this host memory, it always fails..

Comments are closed.