CUDA 矩阵编写 小试牛刀

简单矩阵CUDA运算

在cuda里面运算,都需要再GPU里面分配空间,OpenCV中可以用GpuMat 

__global__ void Add(int *A,int *B,int *C){
	int i=threadIdx.x;
        //x可以理解成index,
	//二维数组的话,y*width+x 可以理解成线性存储的index
 	C[i]=A[i]+B[i];
}
int main(){
	int N=10;
	int A[10]={1,2,3,4,5,6,7,8,9,10};
	int B[10]={3,3,3,3,3,3,3,3,3,3};
	int *cuA,*cuB,*cuC;int C[N];
	cudaMalloc((void**)&cuC,sizeof(int)*N);//分配空间
	cudaMalloc((void**)&cuA,sizeof(int)*N);
	cudaMalloc((void**)&cuB,sizeof(int)*N);
	cudaMemcpy(cuA,A,sizeof(int)*N,cudaMemcpyHostToDevice);
	cudaMemcpy(cuB,B,sizeof(int)*N,cudaMemcpyHostToDevice);
	Add<<<1,N>>>(cuA,cuB,cuC);
	cudaMemcpy(&C,cuC,sizeof(int)*N,cudaMemcpyDeviceToHost);
	cudaFree(cuA);//释放空间
	cudaFree(cuB);
	cudaFree(cuC);
	//2D
	//A[][],B[][],C[][]
	//const dim3 blockDim(8,8);//2的幂
	//const dim3 gridDim((width+blockDim.x-1)/blockDim.x,(height+blockDim.y-1)/blockDim.y);
	//Add<<<gridDim,blockDim>>>(A,B,C);
	
}


一个简易的矩阵运算 就算是完成了,够简单的.....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值