IT168首页 | 产品报价 | ChinaUnix社区 | ITPUB社区 | 文库 | 博客 | 自测 | 专题 | ITPUB学院

CUDA

CUDA体系架构支持怎么样的通信方法呢?本文将为你介绍CUDA通信机制

27日更新
CUDA通信机制

由于最近要做Cg运算平台到Cuda平台的算法移植工作,所以最近正考虑做一个GPGPU和Cpu运算效率的比较公正,但是由于手头的笔记本电脑仅仅对Cuda支持不好(上次安装Cuda后显卡烧坏了),所以这里先做一个使用Cg编程的矩阵运算(加法):

27日更新
GPGPU对CPU和OpenMP的运算效率比较

离散数据的二维卷积: 其中,Ar、Ac分别是A的行数与列数。应用很多,比如对图像做高斯平滑(去噪),拿高斯核与输入图像做卷积。 convolutionSeparable之所以”Separable”,是因为它在row、col两个维上分别做了卷积操作。

27日更新
CUDA SDK 2.3のconvolutionSeparable

在上一篇的《nVidia CUDA API》中,已經大概介紹了一些寫 CUDA 程式時,必須知道的 API;接下來,就先開始簡單的 CUDA 程式吧! 這邊舉一個簡單的向量相加的程式來當例子。

27日更新
簡單的 CUDA 程式:VectorAdd

CUDA 的 API 架構,大概分成「C 語言的 extension」、「runtime library」兩部分。extension 的部分,提供了 C 的一些延伸,來訂一 CUDA 的變數、程式等等;在最簡單的 case 裡,應該只要用到 extension 的部分就夠了~而 runtime library 的部分,則又提供了一些 CUDA device 的控制函式,以及一些針對 GPU 編寫的特殊的函式。

27日更新
nVidia CUDA API(上)

在《nVidia CUDA API(上)》的部分,已經大致說明了 extension 的部分;這邊要來講的則是 runtime library 的部分。

27日更新
nVidia CUDA API(下)

在运用cuda进行md5crack的时候,遇到一个问题,既cuda是并行的,他不向cpu那样会一句一句的执行。因此在执行过程中有用的线程在当前grid中的索引就显得很重要,那为我们生成md5的字典起到了非常重要的作用。但是,也因为他的串行,很多事情不像cpu那样方便了,因为我们必须从gpu的角度去看问题。现在就让我们看一下具体的问题。

27日更新
密码生成算法

在《nVidia CUDA API(下)》中有提到 CUDA SDK 裡有提供一些基本的裝置管理的界面,也就是像是「cudaSetDevice( int )」這一類的函式。基本上,這些 function 的功用、用法在該篇文章中講的應該是夠了~

27日更新
簡單的 CUDA 程式:DeviceInfo

延續上一篇講 thread block,這一篇能然是繼續講 transpose 這個範例程式;不過這一篇,則是將焦點放在 shared memory 的使用,也就是 transpose 這個最佳化過的 kernel 函式。

27日更新
CUDA Shared Memory:transpose

在 Heresy 寫的前兩篇 sample 程式(VectorAdd、DeviceInfo)裡,都是很簡單的程式;像 VectorAdd 裡,也是刻意把 vector size 設小,避掉 thread 數目超過 block 限制的問題,以避免要用到複數個 block。但是實際上,應該都是會超過 thread block 的大小限制的(畢竟 G80 的 block 大小只有到 512…)~

27日更新
CUDA Thread Block:transpose

今天尝试用cuda把FFT实现,遇到了难题。直接调用cufft库的话,内存拷贝与数据处理的时间比大约是1:2。但是据说cufft并不是最高效的,所以想自己锻炼一下。

27日更新
关于写显卡内存的问题

通用的一些接口,前一章节也有提高过:数学函数,时间函数,同步函数,原子操作; 2.控制Device的函数;就是得到设备信息,管理设备信息的函数。设置那块显卡工作,得到那块显卡的性能。

27日更新
CUDA编程接口(一)

以下为VS2005的配置,VS2003和VS2008与此类似。 1、安装Visual Studio 2005环境。 2、安装开发助手Visual Assist X。 3、从 http://www.nvidia.cn/object/cuda_get_cn.html 下载CUDA相关软件,并按次序安装。

27日更新
CUDA开发环境配置

纹理存储器(texture memory)是一种只读存储器,由GPU用于纹理渲染的的图形专用单元发展而来,因此也提供了一些特殊功能。纹理存储器中的数据位于显存,但可以通过纹理缓存加速读取。在纹理存储器中可以绑定的数据比在常量存储器可以声明的64K大很多,并且支持一维、二维或者三维纹理。在通用计算中,纹理存储器十分适合用于实现图像处理或查找表,并且对数据量较大时的随机数据访问或者非对齐访问也有良好的加速效果。

27日更新
CUDA纹理存储器的特性及其使用

开始接触CUDA,我安装好后完全不知道怎么运行demo,当然也没有见到详细的安装说明。下面说说我的经验。

27日更新
关于CUDA的配置与入门(for Greenhand)

以下内容摘自CUDA编程手册 版本2.1 并参考并引用了2.0中文版编程手册中的内容,并修正了一些术语和错误。本章节介绍CUDA编程模型的主要的概念并勾画出其是如何以C的形式进行表述。关于对应CUDA的C的描述的更加详细的内容将会在第四章给出。

27日更新
CUDA 2.1 编程模型

CUDA和支持CUDA的设备正在共同发展,在新一代产品中提供了更多的性能和功能。NVIDIA最近引入的GeForce 200系列和Tesla 10系列产品,展示了这种发展的迅速,其硬件功能几乎是上一产品线同一价格水平可用功能的两倍,而且200系列还增加了一些有价值(而且不可或缺)的新功能。

27日更新
享受下一代CUDA硬件的极速乐趣

本专栏细心的读者已经了解了之前专栏中讨论的两个反向数组示例,可能对为什么共享存储器版本比全局存储器版本速度更快仍然感到困惑。请回想一下共享存储器版本reverseArray_multiblock_fast.cu,内核将数组数据从全局存储器复制到共享存储器,然后再复制回全局存储器,而较慢的内核reverseArray_multiblock.cu只将数据从全局存储器复制到全局存储器。因为全局存储器性能比共享存储器慢100-150倍,所以慢得多的全局存储器性能占据了两个示例的绝大部分运行时。为什么共享存储器版本更快?

27日更新
使用CUDA profiler探索全局存储器

平时我们使用的内存都是Pageable(交换页)的,而另一个模式就是Pinned(Page-locked),实质是强制让系统在物理内存中完成内存申请和释放的工作,不参与页交换,从而提高系统效率,需要使用cudaHostAlloc和cudaFreeHost来分配和释放。

27日更新
CUDA下在Host端分配的几种内存模式

受到来自实时、高分辨率3D图形的市场的永不满足需求的推动,可编程的图像处理单元(Graphic Processor Unit, GPU)演化为具备强大计算能力以及高内存带宽的高度的并行性,多线程性,多核处理器 。

27日更新
CUDA 2.1 简介
金秋十月 与你饮酒论道
热门文章
it168文库会议频道上线

热门标签

热点推荐