CUDA二维矩阵加法

本文介绍了如何使用CUDA进行二维矩阵加法操作。通过定义CUDA内核函数`add`,并配合`cudaMalloc`、`cudaMemcpy`以及设备到主机的数据传输,实现了两个2x2矩阵相加的功能。在主函数中,对矩阵进行初始化,然后在GPU上执行加法操作,并将结果拷贝回主机显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


#include<cuda_runtime_api.h>
#include<device_launch_parameters.h>
#include<stdio.h>
__global__ void add(int a[][2], int b[][2], int c[][2])
{
	int i = threadIdx.x + blockIdx.x * blockDim.x;
	int j = threadIdx.y + blockIdx.y * blockDim.y;
	if (i < 2 && j < 2)
	{
		c[i][j] = a[i][j] + b[i][j];
	}
}
int main()
{
	int (*a)[2] = new int[2][2];
	int (*b)[2] = new int[2][2];
	int (*c)[2] = new int[2][2];

	a[0][0] = 1; a[0][1] = 2; a[1][0] = 3; a[1][1] = 4;
	b[0][0] = 1; b[0][1] = 2; b[1][0] = 3; b[1][1] =4;

	cudaError_t error = cudaSuccess;

	int (*device_a)[2],(*device_b)[2],(*device_c)[2];

	error = cudaMalloc((void **)&device_a, sizeof(int)* 4);
	error = cudaMalloc((void **)&device_b, sizeof(int)* 4);
	error = cudaMalloc((void **)&device_c, sizeof(int)* 4);

	cudaMemcpy(device_a, a, sizeof(int)* 4, cudaMemcpyHostToDevice);
	cudaMemcpy(device_b, b, sizeof(int)* 4, cudaMemcpyHostToDevice);

	//    dim3 threadsPerB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值