【CUDA并行程序设计系列(3)】CUDA线程模型

前言

CUDA并行程序设计系列是本人在学习CUDA时整理的资料,内容大都来源于对《CUDA并行程序设计:GPU编程指南》、《GPU高性能编程CUDA实战》和CUDA Toolkit Documentation的整理。通过本系列整体介绍CUDA并行程序设计。内容包括GPU简介、CUDA简介、环境搭建、线程模型、内存、原子操作、同步、流和多GPU架构等。

本系列目录:

前一章的代码虽然是在GPU上执行,但并没有涉及到并行运行。GPU计算的应用情景在很大程度上取决于能否从许多问题中发掘出大规模并行性。本文将介绍CUDA的线程模型,通过实例代码(矢量加法和矩阵加法)演示CUDA下的并行程序设计。

矢量加法

我们通过比较在CPU和GPU的矢量加法的例子来看CUDA的并行执行,矢量加法CPU的代码如下:

#include <stdio.h>
#define N 10
void vecAdd(int *a, int *b, int *c)
{
      int tid = 0;
      while (tid < N)
      {
            c[tid] = a[tid] + b[tid];
            ++tid;
      }
}
int main(void)
{
      int a[N], b[N], c[N];

      for (int i = 0; i < N; ++i)
      {
            a[i] = -i;
            b[i] = i * i;
      }
      vecAdd (a, b, c);
      for (int i = 0; i < N; ++
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值