![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CUDA
文章平均质量分 72
smsmn
在学校曾获得过福建省大学生程序设计竞赛并参加过ACM/ICPC亚洲区的预选赛,曾获得过高等数学竞赛一等奖和全国数学建模竞赛福建赛区一等奖;对C#、.net和SQL熟悉,在学校用.net和C#做过教学管理系统;在学校通过了全国计算机四级和大学英语四级的考试。<br/>在工作的这一两年除了用C/C++进行三维开发之外,也涉及了网络编程的开发,对ASIO和socket熟悉。<br/>在杭州和厦门这段时间都是使用OpenGL进行开发,前者是做虚拟现实,后者是底层导航引擎开发。<br/>总之,我对于C/C++开发特别感兴趣,也想在三维、嵌入式、视频监控系统或者游戏方面有所发展。
展开
-
深入浅出谈CUDA(一)
<br />深入浅出谈CUDA(一): 书签<br />“CUDA 是 NVIDIA 的 GPGPU 模型,它使用 C 语言为基础,可以直接以大多数人熟悉的 C 语言,写出在显示芯片上执行的程序,而不需要去学习特定的显示芯片的指令或是特殊的结构。”<br />CUDA是什么?能吃吗?<br />编者注:NVIDIA的GeFoce 8800GTX发布后,它的通用计算架构CUDA经过一年多的推广后,现在已经在有相当多的论文发表,在商业应用软件等方面也初步出现了视频编解码、金融、地质勘探、科学计算等领域的产品转载 2011-04-11 16:45:00 · 1504 阅读 · 0 评论 -
CUDA中Bank conflict冲突
<br /> 其实这两天一直不知道什么叫bank conflict冲突,这两天因为要看那个矩阵转置优化的问题,里面有讲到这些问题,但是没办法,为了要看懂那个bank conflict冲突,我不得不去找资料,说句实话我现在不是完全弄明白,但是应该说有点眉目了,现在我就把网上找的整理一下,放在这边,等哪天完全弄明白了我就在修改里面的错误。<br /> Tesla 的每个 SM 拥有 16KB 共享存储器,用于同一个线程块内的线程间通信。为了使一<br />个 half-warp 内的线程能够在一个内原创 2011-04-20 14:37:00 · 11758 阅读 · 3 评论 -
CUDA学习(四)
<br />一.纹理存储器介绍<br />纹理存储器(texture memory)是一种只读存储器,由GPU用于纹理渲染的的图形专用单元发展而来,因此也提供了一些特殊功能。纹理存储器中的数据位于显存,但可以通过纹理缓存加速读取。在纹理存储器中可以绑定的数据比在常量存储器可以声明的64K大很多,并且支持一维、二维或者三维纹理。在通用计算中,纹理存储器十分适合用于实现图像处理或查找表,并且对数据量较大时的随机数据访问或者非对齐访问也有良好的加速效果<br />纹理缓存有两个作用。首先,纹理缓存中的数据可以被重原创 2011-04-13 15:33:00 · 1313 阅读 · 0 评论 -
深入浅出谈CUDA(三)
“CUDA 是 NVIDIA 的 GPGPU 模型,它使用 C 语言为基础,可以直接以大多数人熟悉的 C 语言,写出在显示芯片上执行的程序,而不需要去学习特定的显示芯片的指令或是特殊的结构。”第一个CUDA程序CUDA 目前有两种不同的 API:Runtime API 和 Driver API,两种 API 各有其适用的范围。由于 runtime API 较容易使用,一开始我们会以 runetime API 为主。CUDA 的初始化首先,先建立一个档案 first_cuda.cu。如果是使用 Visual转载 2011-04-11 22:49:00 · 1127 阅读 · 0 评论 -
CUDA在VS2008下的安装
<br />一、首先安装CUDA软件包,可以从NVIDIA官方网站上下载,我选择的是当前的最新版本3.2. 需要下载的东西有3个,分别是:<br />1.先安装开发驱动(cudatoolkit_3.2.7_win_32.msi);<br />2.安装Toolkit。默认路径是:C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v3.2<br />3.最后安装SDK文件,默认路径是:C:/ProgramData/NVIDIA Corporation/NVID原创 2011-04-11 16:47:00 · 1417 阅读 · 1 评论 -
CUDA学习(三)
<br /> 今天我讲讲CUDA所用到的编译器nvcc:<br /> nvcc编译器根据配置编译CUDA C代码,可以生成三种不同的输出:PTX、CUDA二进制序列和标准C。nvcc可编译同时包含主机代码(在主机上执行的代码)和设备代码(在设备上执行的代码)的源文件。nvcc的基本流程包括分离主机和设备代码并将设备代码编译成汇编形式(PTX)或/和二进制形式(cubin对象)。生成的主机代码要么被输出为C代码供其它工具编译,要么在编译的最后阶段被nvcc调用主机编译器输出为目标代码。 应用在运原创 2011-04-12 16:59:00 · 1450 阅读 · 0 评论 -
CUDA学习(一)
<br /> 想想学习CUDA的时间也应该有十来天了,也该是做一个小总结了,说说我理解的CUDA,它到底是什么东西?<br /> 其实说到CUDA,还真的没几个人知道,说实话,我也听说不久,主要因为它2007年才刚发布,也是这几年才刚兴起,国内那就更慢了。<br /> CUDA它中文的名字是统一计算设备架构,CUDA是一种将GPU作为数据并行计算设备,听到并行这个名称,我相信很多热爱计算机的朋友就特别兴奋,因为这意味着速度会很快,确实,CUDA就是为了提高计算速度的一个计算机架构。<br原创 2011-04-12 16:40:00 · 1022 阅读 · 0 评论 -
用CUDA来判断素数程序
<br /> 使用CUDA判断是否为素数程序,每个线程判断一个数是否可以被整除,将每线程判断结果写入shared memory内,然后统计结果,如果全部不能被整除,那就是素数,代码如下:<br />#include <stdio.h>#include <stdlib.h>#include <cuda_runtime.h>#define TEST 999961#define THREAD_NUM 256#define BLOCK_NUM 32long data[T原创 2011-04-11 12:01:00 · 1610 阅读 · 0 评论 -
CUDA学习(二)
<br /> 今天我就来讲讲有关于CUDA的编程模型:<br /> 1.主机和设备<br /> CUDA 编程模型将CPU作为主机(Host),GPU作为协处理器或者设备(Device),在一个系统中可以存在一个主机和若干个设备。<br /> 在这个模型中,CPU与CPU协同工作,各司其职。CPU负责进行逻辑性强的事物处理和串行计算,GPU则专注于执行高度线程化的并行处理任务。CPU、GPU各自拥有相互独立的存储器地址空间:主机端的内存和设备端的显存。<br /原创 2011-04-12 16:48:00 · 1147 阅读 · 0 评论 -
深入浅出CUDA(四)
<br />“CUDA 是 NVIDIA 的 GPGPU 模型,它使用 C 语言为基础,可以直接以大多数人熟悉的 C 语言,写出在显示芯片上执行的程序,而不需要去学习特定的显示芯片的指令或是特殊的结构。”<br />改良第一个 CUDA程序<br />在上一篇文章中,我们做了一个计算一大堆数字的平方和的程序。不过,我们也提到这个程序的执行效率并不理想。当然,实际上来说,如果只是要做计算平方和的动作,用 CPU 做会比用 GPU 快得多。这是因为平方和的计算并不需要太多运算能力,所以几乎都是被内存带宽所限制。转载 2011-04-12 15:26:00 · 1019 阅读 · 0 评论 -
一个CUDA的小例子(向量相加)
<br />一个实现用CUDA技术来实现向量相加的小例子:<br />用每一个线程来计算两个向量相对应的数据:<br />#include<stdio.h>#include<cutil_inline.h>//主机端变量float* h_A;float* h_B;float* h_C;//设备端变量float* d_A;float* d_B;float* d_C;bool noprompt = false;//Functionsvoid Cleanu原创 2011-04-11 22:53:00 · 2922 阅读 · 3 评论 -
卷积的意义
<br />卷积 <br />最近总是和卷积打交道,工作需要,每天都要碰到它好几次,不胜烦恼,因为在大学时候学信号与系统的时候就没学会,我于是心想一定要把卷积完全搞明白。正好同办公室的同学也问我什么是卷积,师姐昨天也告诉我说:"我也早就想把这个问题搞明白了!"经过一段时间的思考之后,有一些很有趣的体会和大家分享。<br />听说卷积这种运算式物理学家发明的,在实际中用得不亦乐乎,而数学家却一直没有把运算的意义彻底搞明白。仔细品以下,还是有那么点滋味的。<br />下面先看一下剑桥大学的教科书对卷积的定义:转载 2011-04-20 16:40:00 · 1032 阅读 · 0 评论