CUDA(5)之并行计算(向量和)

摘要

本文主要通过向量和计算,讲述GPU并行计算。就任务为简单的相关性弱的计算而言,GPU的并行计算速度远远快于CPU。下面我们就以向量和的GPU并行为例进行展开。

 

1. 并行计算经典代码

 

#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include 
#include 

#define N 100

__global__ void add(int *a, int *b, int *c) {
	int tid = blockIdx.x;
	if (tid>>(dev_a, dev_b, dev_c);

	// 复制GPU计算结果到CPU
	cudaMemcpy(c, dev_c, N*sizeof(int), cudaMemcpyDeviceToHost);

	// 输出结果
	for (int i=0; i

 

 

 

2. 关于add()函数

 

__global__ void add(int *a, int *b, int *c) {
	int tid = blockIdx.x;
	if (tid

之所以是blockId.x,顾名思义,当然有blockId.y和blockId.z,其目的在于方便GPU处理数学或者三维图像等问题。
 

 

3. 关于核函数<<<>>>参数

核函数的一般参数形式为Kernel<<>>(param list); 其中,Dg的单位为(1/blocks),Db的单位为(threads/block)。因此,注意,线程Thread数目=Dg乘以Db.

CUDA(5)之并行计算(向量和)_第1张图片

 

你可能感兴趣的:(GPU编程)