![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
cuda
文章平均质量分 86
ithiker
"All problems in computer science can be solved by another level of indirection."
展开
-
CUDA中的几种并行计算模型
BackgroundCUDA编程中由于thread space和input space通常是不同的:Thread Space最多可以是5D,2D Grid + 3D BlockInput Space通常是1D,有时也有2D的矩阵等这就导致了我们需要将inputs映射到threads中去,比如我在《CUDA中线程与数据的对应关系》中所写的,主要就是考虑线程数和数据数下的映射关系。如果我们有一个1D的Input array, 采用不同的thread space, thread index和inp原创 2021-06-08 17:35:34 · 1394 阅读 · 3 评论 -
CUDA中线程与数据的对应关系
引子由于NVIDIA GPU采用的是SIMT的运行模式,CUDA编程中线程数量与数据的对应关系是什么呢?首先,我们来看一个经典的例子:#include <stdio.h>#define N (2048*2048)#define THREADS_PER_BLOCK 512__global__ void add(int *a, int *b, int *c){ int index = threadIdx.x + blockIdx.x * blockDim.x; c[index]原创 2021-03-28 21:24:22 · 1284 阅读 · 0 评论 -
CUDA Hello World 程序
@[TOC]CUDA Hello world 程序CUDA(Compute Unified Device Architecture)是NVIDIA(英伟达)公司基于其生产的图形处理器GPU(Graphics Processing Unit)开发的一个并行计算平台和编程模型。基于CPU编程,程序都是运行在CPU上的;基于GPU编写的程序,程序可以运行在CPU上,也可以运行在GPU上。这样,通过增...原创 2018-12-26 11:20:08 · 3483 阅读 · 0 评论 -
NVIDIA CUDA原理和基础知识
为什么使用GPU为什么现在使用GPU(Graphics Processing Unit)编程越来越多,主要是因为GPU相对于CPU的运算速度,内存带宽均有较大的优势,下面是摘自《CUDA C PROGRAMMING GUIDE》中的图片:浮点数运算速度:内存带宽:GPU为什么性能高这是因为GPU中硬件更多的用于data processing而不是data caching 或 flow...原创 2019-01-21 17:45:08 · 11081 阅读 · 6 评论 -
NVIDIA CUDA nbody problem源码分析
N体问题(n-body problem)是一个非常著名物理问题,大刘的《三体》的开篇中就有一篇以三个太阳(三体)为背景展开过。具体的,是指已知N个物体的初始位置、速度和质量,在经典力学情况下它们的后续运动情形,包括预测它们的轨迹等等。目前N&amp;amp;amp;amp;amp;amp;amp;gt;=3的N体问题是没有解析解的。给定N个物体,以及每个物体的位置xix_ixi和初始速度viv_ivi (1≤i≤N1 \leq i \leq N1...原创 2019-02-02 22:44:16 · 7118 阅读 · 0 评论