Please help me write a CUDA DLL ......

Hello,

I am trying to write a geophysical algorithm in CUDA. The problem is that I have to stick with C# only. Now C# does not have native support for CUDA so I have to write a .dll file in CUDA C to use in a C# project. I have no experience in creating .dll files and would be very grateful if someone can outline the process for me and describing what each line does.

I am attaching a small CUDA C code that adds a float value to a float array in the GPU. Please tell me how to make a CUDA dll for the device function that I have supplied.

Thanks.

#include<stdio.h>

int main()

{

	float* a=(float*)malloc(100*sizeof(float));

	float b=0.5;

	float* c=(float*)malloc(100*sizeof(float));

	

	float* dev_a;

	float* dev_b

	float* dev_c;

	

	//Allocate memory in device

	cudaMalloc((void**)&dev_a,100*sizeof(float));

	cudaMalloc((void**)&dev_b,sizeof(float));

	cudaMalloc((void**)&dev_c,100*sizeof(float));

	

	//Copy variables

	cudaMemcpy(dev_a,grid,100*sizeof(float),cudaMemcpyHostToDevice);

	cudaMemcpy(dev_b,grid,sizeof(float),cudaMemcpyHostToDevice);

	

	add_gpu<<<10,10>>>(dev_a,dev_b,dev_c);

	

	cudaMemcpy(c,dev_c,100*sizeof(float),cudaMemcpyDeviceToHost);

	

	return 0;

	

	

}

__global__ void add_gpu(float *a,float *b, float *c)

{

	int ind=blockIdx.x*blockDim.x+threadIdx.x;

	c[ind]=a[ind]+b[ind];

}