CUDA UDF 1.0.0

   (0 reviews)

scintilla4evr

1 Screenshot

About This File

This is a small wrapper UDF for NVIDIA CUDA Driver API. It enables AutoIt scripts to execute pre-compiled .cubin programs on NVIDIA GPU's and receive data from them.


1 person likes this



User Feedback

You may only provide a review once you have downloaded the file.

There are no reviews to display.

  • Similar Content

    • scintilla4evr
      By scintilla4evr
      First, let me shock you. AutoIt is SLOW. I know, right!
      But really, it may seem fast enough for "regular" automation and stuff, but when it comes to processing large datasets (image processing for example), it's horrendously slow.
      There are 2 solutions to this problem:
      Write the processing code in, for example C or C++ and compile it to a DLL, and then use it in AutoIt Ditch the CPU and let GPU do the processing. You see, CPU is not suited for processing large data in parallel. While it may have some extra cores, but it still not enough.
      That's where the GPU comes in. CPU with its 8 or more cores is nowhere close the amount of those on GPU - reaching thousands (2560 CUDA cores in GeForce GTX 1080, for example).
      With this potential, NVIDIA decided to create CUDA - a feature available in all current NVIDIA GPU's allowing developers to harness their computing potential.
      After this not so short introduction to GPU computing, here is the CUDA UDF. Features include:
      Running precompiled programs (use NVCC from CUDA Toolkit, available here) Transferring data into and out of the GPU to the "host" (main RAM) CUDA UDF
    • Andreik
      By Andreik
      Does anyone tried with success to compile a dll with a function that use CUDA and then to call the function from AutoIt? Actually the compilation seems to be easy but it might be a little hard to call the function. Here is what I have:
      cuda.cu
      #include <cuda.h> #include <cuda_runtime.h> #include <device_launch_parameters.h> __global__ void cuda__add(int *a, int *b, int *c) { *c = *a + *b; } extern "C" __declspec(dllexport) int Add(int a, int b) { int c; int *dev_a,*dev_b,*dev_c; int size = sizeof(int); cudaMalloc((void**)&dev_a, size); cudaMalloc((void**)&dev_b, size); cudaMalloc((void**)&dev_c, size); cudaMemcpy(dev_a, &a,sizeof(int), cudaMemcpyHostToDevice); cudaMemcpy(dev_b, &b,sizeof(int), cudaMemcpyHostToDevice); cuda__add<<< 1,1 >>>(dev_a,dev_b,dev_c); cudaMemcpy(&c, dev_c,size, cudaMemcpyDeviceToHost); cudaFree(&dev_a); cudaFree(&dev_b); cudaFree(&dev_c); return c; } I am able to open the dll but the function is not visible somehow and I get error 3 when I call it from AutoIt.