《CUDA By Example》【Chapter 04】CUDA C 并行编程

概述

GPU计算的应用前景在很大程度上取决于能否从很多问题中发掘出大规模并行性。
本章介绍如何启动并行执行的设备核函数。

矢量求和(基于CPU和GPU)

add_loop_cpu.cu

#include "../common/book.h"

#define N   10

void add( int *a, int *b, int *c ) {
    int tid = 0;    // this is CPU zero, so we start at zero
    while (tid < N) {
        c[tid] = a[tid] + b[tid];
        tid += 1;   // we have one CPU, so we increment by one
    }
}

int main( void ) {
    int a[N], b[N], c[N];

    // fill the arrays 'a' and 'b' on the CPU
    for (int i=0; i<N; i++) {
        a[i] = -i;
        b[i] = i * i;
    }

    add( a, b, c );

    // display the results
    for (int i=0; i<N; i++) {
        printf( "%d + %d = %d\n", a[i], b[i], c[i] );
    }

    return 0;
}

add_loop_gpu.cu

#include "../common/book.h"

#define N   10

__global__ void add( int *a, int *b, int *c ) {
    int tid = blockIdx.x;    // this thread handles the data at its thread id
    if (tid < N)//在核函数内部检查下标,避免内存访问越界;
        c[tid] = a[tid] + b[tid];
}

int main( 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CUDA作为一种并行计算平台和编程模型,通过利用GPU的强大计算能力,可大幅提高计算密集型应用程序的执行速度。《CUDA by Example》是一本深入介绍CUDA编程技术的书籍。 《CUDA by Example》这本书详细地介绍了CUDA平台的基本概念和编程模型,并通过实际的示例代码来演示如何使用CUDA编写高效的并行计算程序。 首先,书中详尽介绍了CUDA编程的基础知识,包括CUDA线程模型、内存模型、编程规范等。通过了解这些基本概念,读者可以更好地理解如何在CUDA程序中利用GPU的并行计算能力。 其次,书中通过示例代码演示了如何使用CUDA C语言来编写并行计算程序。读者可以学习到如何启动GPU上的线程块,以及如何在线程间进行数据通信和同步。同时,书中还介绍了如何使用CUDA库函数来加速常见的计算任务,例如矩阵乘法、图像处理等。 此外,书中还介绍了CUDA的性能优化技术,例如共享内存的使用、数据对齐、访存模式优化等。这些技术可以帮助读者更好地利用GPU的计算资源,从而提高程序执行的效率。 总的来说,《CUDA by Example》这本书通过深入浅出的方式,系统地介绍了CUDA编程技术。不仅可以帮助读者理解CUDA的基本概念和编程模型,还能通过丰富的示例代码提供实际应用的参考。无论是初学者还是有一定经验的开发者,都可以从这本书中获得对CUDA编程的深入了解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值