cudafunc.cu 760 Bytes
#include "gaussian_blur3.cuh"
#include "gradient3.cuh"


void ivote3(float* out, float* img, float sigma, unsigned int x, unsigned int y, unsigned int z){
	//cpu_gaussian_blur_conv3<float>(Ib, img, rhs, x, y, z);
	
	unsigned int bytes = x * y * z * sizeof(float);
	float* gpuI0;
	cudaMalloc(&gpuI0, bytes);			
	//copy the image data to the GPU
	cudaMemcpy(gpuI0, img, bytes, cudaMemcpyHostToDevice);

	gpu_gaussian_blur3<float>(gpuI0, sigma, x, y, z);

	float* gpu_grad;
	cudaMalloc(&gpu_grad, bytes*3);
	
	gpu_gradient3(gpu_grad, gpuI0, x, y, z);

	//copy the image data back to the cpu
	cudaMemcpy(img, gpuI0, x*y*z*sizeof(float), cudaMemcpyDeviceToHost);
	cudaMemcpy(out, gpu_grad, bytes*3, cudaMemcpyDeviceToHost);

	cudaFree(gpuI0);
	cudaFree(gpu_grad);
}