⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vectoradd.cu

📁 一个简单的基于CUDA的示例代码
💻 CU
字号:
__global__ void VectorAdd( float* arrayA, float* arrayB, float* output )
{
	int	idx = threadIdx.x;
	output[idx] = arrayA[idx] + arrayB[idx];
}

extern "C" void add_vector_gpu( float* a, float* b, float *c, int size );
void add_vector_gpu( float* a, float* b, float *c, int size )
{
	int	data_size = size * sizeof(float);

	// part1, allocate data on device
	float	*dev_A,	*dev_B,	*dev_C;
	cudaMalloc( (void**)&dev_A, data_size );
	cudaMalloc( (void**)&dev_B, data_size );
	cudaMalloc( (void**)&dev_C, data_size );

	// part2, copy memory to device
	cudaMemcpy( dev_A, a, data_size, cudaMemcpyHostToDevice );
	cudaMemcpy( dev_B, b, data_size, cudaMemcpyHostToDevice );

	// part3, run kernel
	VectorAdd<<< 1, size >>>( dev_A, dev_B, dev_C );

	// part4, copy data from device
	cudaMemcpy( c, dev_C, data_size, cudaMemcpyDeviceToHost );

	// part5, release data
	cudaFree(dev_A);
	cudaFree(dev_B);
	cudaFree(dev_C);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -