
CUDA
文章平均质量分 77
绕梁九日
这个作者很懒,什么都没留下…
展开
-
CUDA最佳实践(二)
5. 得到正解 得到正确的计算结果是我们的最初目的,但是使用CUDA这种并行编程模型是很容易出错的,这时我们就需要一些方法和工具来帮助我们验证计算结果的正确性,同时,在CUDA编程中也有一些值得我们注意的问题。5.1 正确性验证 正确性验证主要有两种方法: 1、引用比较(Reference Comparison) 引用比较的核心思想是原创 2013-07-30 10:28:33 · 2288 阅读 · 0 评论 -
CUDA代码笔记(一)SimpleMultiGPU
这一系列的文章是CUDA5.5样例代码的阅读笔记,每篇文章针对某一特定的样例代码。本篇文章所涉及的项目是simpleMultiGPU。项目所在的位置:0_Simple/simpleMultiGPU源程序的分析首先我们查看该程序的内核函数(kernel function),以了解程序中GPU所完成的核心功能:__global__ static void reduceK原创 2013-09-11 21:49:52 · 4785 阅读 · 0 评论 -
CUDA编程指南阅读笔记(七)
为方便起见后面的内容将按照话题来分类~异步并行执行主机和设备间并行执行 为了支持主机和设备的并行执行,CUDA提供了一些异步函数。异步是指设备在完成功能执行之前就将控制权交还给主机线程,以便主机线程继续执行。这些函数有: 1、内涵启动(Kernel Launches); 2、同一设备内存中两个地址块之间的数据传输;原创 2013-09-03 17:28:09 · 3928 阅读 · 1 评论 -
CUDA快速傅里叶变换(cuFFT)阅读笔记(一)
CUDA为开发人员提供了多种库,每一类库针对某一特定领域的应用,CUFFT库则是CUDA中专门用于进行傅里叶变换的函数库,这一系列的文章是博主近一段时间对cuFFT库的学习总结,主要内容是文档的译文,其间夹杂一些博主自己的理解。初学CUDA,理解有误之处在所难免,阅读本篇文章的读者如若发现请不吝指正。1. 简介 cuFFT是的全称是CUDA Fast Fourier Trans原创 2013-08-29 23:03:06 · 15510 阅读 · 1 评论 -
CUDA编程指南阅读笔记(六)
4. CUDA C语言编程接口 接上文。4.3 CUDA C Runtime4.3.3 共享内存(Shared Memory) 共享内存是CUDA设备中非常重要的一个存储区域,有效地使用共享内存可以充分利用CUDA设备的潜能,极大提升程序性能。那么,共享内存有哪些特点呢? 1、共享内存(shared Memory)是集成在GPU处理器芯原创 2013-08-17 12:58:53 · 2462 阅读 · 1 评论 -
CUDA编程指南阅读笔记(五)
4. CUDA C语言编程接口 接上篇文章继续写。4.3 CUDA C Runtime CUDA C Runtime使用cudart动态链接库实现(cudart.dll或者cudart.so),运行时中所有的入口函数都以cuda为前缀。4.3.1 初始化 CUDA C Runtime函数库没有明确的初始化函数,在程序第一次调用Runt原创 2013-08-16 10:00:58 · 2443 阅读 · 0 评论 -
CUDA编程指南阅读笔记(四)
4. CUDA C语言编程接口 接上篇文章继续写。4.2 兼容性 1、二进制兼容性 二进制代码是设备相关的,使用NVCC编译器编译时,若指定-code选项,则会编译产生目标设备的二进制cubin对象。例如,编译时使用-code=sm_13会产生适用于计算能力1.3的二进制代码。二进制代码在CUDA计算设备上具有小版本的向前兼容性,但是在大版本上原创 2013-08-15 22:53:24 · 2225 阅读 · 0 评论 -
CUDA编程指南阅读笔记(三)
4. CUDA C语言编程接口 异构程序设计跟传统的串行程序设计差别是很大的,学习起来也是非常不容易的。NVIDIA非常够意思,为了简化CUDA的学习曲线,它采用了绝大多数程序员都熟悉的C语言作为其根基,CUDA C是NVIDIA为程序员提供的一类编程接口,它实际上是一个C语言的扩展,在C的基础上增加了一些新的语法和变量,并且提供了功能丰富的库函数,方便程序员使用GPU进行异构计算。原创 2013-08-15 18:41:31 · 4332 阅读 · 1 评论 -
CUDA编程指南阅读笔记(二)
3. CUDA基本概念(下)3.3 内存层次(Memory Hierarchy) 在GPU上CUDA线程可以访问到的存储资源有很多,每个CUDA线程拥有独立的本地内存(local Memory);每一个线程块(block)都有其独立的共享内存(shared memory),共享内存对于线程块中的每个线程都是可见的,它与线程块具有相同的生存时间;同时,还有一片称为全局内存(glob原创 2013-08-15 13:45:12 · 2449 阅读 · 0 评论 -
CUDA最佳实践(一)
近期开始学习CUDA编程,需要阅读很多资料,为了便于整理复习,特将阅读笔记记录,以备后用。这一系列文章是根据NVIDIA公司官方文档《CUDA C Best Practices》的内容来进行整理的,由于笔者刚开始进行CUDA的学习,而并行语言的学习不如串行语言如C、C++那样容易入门,因此理解错误之处在所难免,欢迎读到错误的各位批评指正。1. 学习目的 CUDA是一个C语言的扩充原创 2013-07-29 09:44:26 · 2486 阅读 · 0 评论 -
CUDA编程指南阅读笔记(一)
随着多核CPU和众核GPU的到来,并行编程已经得到了业界越来越多的重视,CPU-GPU异构程序能够极大提高现有计算机系统的运算性能,对于科学计算等运算密集型程序有着非常重要的意义。这一系列文章是根据《CUDA C语言编程指南》来整理的,该指南是NVIDIA公司提供的CUDA学习资料,介绍了CUDA编程最基本最核心的概念,是学习CUDA必不可少的阅读材料。初学CUDA,笔记错误之处在所难免,还请原创 2013-08-01 20:36:00 · 6206 阅读 · 4 评论 -
CUDA代码笔记(二) cudaOpenMP
cudaOpenMP项目展示了如何在cuda项目中运用openmp技术。该项目位于cuda samples文件夹下的0_Simple/cudaOpenMP文件夹下。在正式开始剖析代码之前,让我们先来了解一下openmp的背景知识。OpenMP根据百度百科,OpenMP是用于共享内存并行系统的多线程程序设计的一套指导性的编译处理方案。简单来讲,我们可以把OpenMP理原创 2013-09-23 20:34:33 · 6749 阅读 · 1 评论