CUDA
SYP_
whh
展开
-
CUDA 学习二: 核函数的调用
按照GPU高性能编程cuda实战进行学习。原创 2018-08-05 09:35:03 · 2143 阅读 · 0 评论 -
CUDA——Occupancy(占有率)
CUDA: Occupancy(占用率)详解占用率是指每个多处理器(Streaming Multiprocessor,SM)的活动线程束(warps)数量与实际的活动warps数量的比率。 高的占用率不一定能提升性能,但低的占用率会降低内存延迟隐藏的作用,Higher occupancy does not always equate to higher performance-there ...原创 2018-12-26 19:50:42 · 1351 阅读 · 2 评论 -
CUDA——warp篇
CUDA ---- Warp解析Warp逻辑上,所有thread是并行的,但是,从硬件的角度来说,实际上并不是所有的thread能够在同一时刻执行,接下来我们将解释有关warp的一些本质。Warps and Thread Blockswarp是SM的基本执行单元。一个warp包含32个并行thread,这32个thread执行于SMIT模式。也就是说所有thread执行同一条指令,...转载 2018-12-26 19:20:20 · 3302 阅读 · 1 评论 -
CUDA——cudaDeviceProp数据结构
cudaDeviceProp数据结构cudaDeviceProp数据类型针对函式cudaGetDeviceProperties定义的,cudaGetDeviceProperties函数的功能是取得支持GPU计算装置的相关属性,比如支持CUDA版本号装置的名称、内存的大小、最大的thread数目、执行单元的频率等。如下所示:struct cudaDeviceProp { char n...原创 2018-12-26 19:09:09 · 5361 阅读 · 2 评论 -
CUDA 学习笔记七
这节是关于Branch Divergence and Unrolling Loop。Avoiding Branch Divergence有时,控制流依赖于thread索引。同一个warp中,一个条件分支可能导致很差的性能。通过重新组织数据获取模式可以减少或避免warp divergence(该问题的解释请查看warp解析篇)。The Parallel Reduction Problem...转载 2018-08-07 10:47:33 · 269 阅读 · 0 评论 -
CUDA 学习笔记六
Exposing Parallelism这部分主要介绍并行分析,涉及掌握nvprof的几个metric参数,具体的这些调节为什么会影响性能会在后续博文解释。代码准备下面是我们的kernel函数sumMatrixOnGPUD: __global__ void sumMatrixOnGPU2D(float *A, float *B, float *C, int NX, int N...转载 2018-08-07 10:38:36 · 197 阅读 · 0 评论 -
CUDA 学习笔记五
Warp逻辑上,所有thread是并行的,但是,从硬件的角度来说,实际上并不是所有的thread能够在同一时刻执行,接下来我们将解释有关warp的一些本质。Warps and Thread Blockswarp是SM的基本执行单元。一个warp包含32个并行thread,这32个thread执行于SMIT模式。也就是说所有thread执行同一条指令,并且每个thread会使用各自的da...转载 2018-08-07 10:34:49 · 323 阅读 · 0 评论 -
CUDA 学习笔记四
GPU架构SM(Streaming Multiprocessors)是GPU架构中非常重要的部分,GPU硬件的并行性就是由SM决定的。以Fermi架构为例,其包含以下主要组成部分:CUDA cores Shared Memory/L1Cache Register File Load/Store Units Special Function Units Warp Schedul...转载 2018-08-07 10:32:08 · 242 阅读 · 0 评论 -
CUDA 学习笔记二
前言线程的组织形式对程序的性能影响是至关重要的,本篇博文主要以下面一种情况来介绍线程组织形式:2D grid 2D block一些基本的描述:gridDim.x-线程网络X维度上线程块的数量gridDim.y-线程网络Y维度上线程块的数量blockDim.x-一个线程块X维度上的线程数量blockDim.y-一个线程块Y维度上的线程数量blockIdx.x-线程网络X维度上的线程块索...转载 2018-08-07 10:28:33 · 264 阅读 · 0 评论 -
CUDA 学习笔记一
本系列的CUDA转自:http://www.cnblogs.com/1024incn/tag/CUDA/版权归原作者所有,仅供学习。由于各种需求,所以略微了解学习一下gpu的CUDA怎么操作?CUDA简介CUDA是并行计算的平台和类C编程模型,我们能很容易的实现并行算法,就像写C代码一样。只要配备的NVIDIA GPU,就可以在许多设备上运行你的并行程序,无论是台式机、笔记本抑或平...转载 2018-08-07 10:22:11 · 289 阅读 · 0 评论 -
CUDA 编程指南
随着多核CPU和众核GPU的到来,并行编程已经得到了业界越来越多的重视,CPU-GPU异构程序能够极大提高现有计算机系统的运算性能,对于科学计算等运算密集型程序有着非常重要的意义。这一系列文章是根据《CUDA C语言编程指南》来整理的,该指南是NVIDIA公司提供的CUDA学习资料,介绍了CUDA编程最基本最核心的概念,是学习CUDA必不可少的阅读材料。初学CUDA,笔记错误之处在所难免,还请...转载 2018-07-29 17:16:14 · 5779 阅读 · 0 评论 -
如何理解CUDA中的cudaMalloc()的参数
对指针和地址比较熟悉的童鞋可以比较容易的理解这个概念,为了更好的让更多的人理解cudaMalloc的参数,写这篇文章,以飨读者。首先看下此运行时函数的原型:[cpp]view plaincopycudaError_tcudaMalloc(void**devPtr,size_tsize);此函数返回值是CUDA中定义的一个错误代码。主要的第一个参数。...转载 2019-03-05 21:09:10 · 2195 阅读 · 0 评论