CUDA
梦想难吗
每天进步一点点,与君共勉。
本人微信公众号:梦想难吗(微信号:mengxiangnanma)
新浪博客:梦想难吗(地址:http://blog.sina.com.cn/u/5294321827)
豆瓣:梦想难吗
知乎:梦想难吗
展开
-
GPU(CUDA)学习日记(二)--------VS2010不同工程之间调用DLL或者LIB
最近的算法利用不同工程生成动态库或是静态库,然后在主工程中调用,我应用的开发工具是VS2010,可以说,C++在中的不同工程之间的链接是很麻烦的!~~~ 本人首先生成的静态库LIB(因为比较简单,⊙﹏⊙b汗~~~)具体方法如下:1、工程属性中,将生成改为“.lib”,然后将“C/C++”中的“代码生成”项改为“多线程调试”(为了解决msvcprtd.lib重定义的问题)。2、原创 2012-08-01 16:48:44 · 3757 阅读 · 1 评论 -
GPU(CUDA)学习日记(十五) ------ CUDA 5 的一些介绍与下载
关于CUDA 5 的介绍的文章,主要还是以NVIDIA官方的介绍为主吧~http://video.sina.com.cn/v/b/78701598-2755345650.html下面这一篇文章是介绍CUDA 5 新性能的较为简略的文章。http://wenku.it168.com/d_000605327.shtmlWin7下CUDA5.0+VS2010环境配置 的文章:http:/原创 2013-03-22 10:38:11 · 1996 阅读 · 0 评论 -
GPU(CUDA)学习日记(十四)------CUDA软件更新信息 Parallel Nsight 3.0新特性以及NVAPI介绍
本文主要是介绍CUDA 5以及Parallel Nsight 3.0的新特性,最后会介绍一种可以获得GPU实时状态的NVAPI。本文参考的原文为以下三篇文章以及网站上介绍内容:介绍CUDA 5的新特性:http://blog.csdn.net/openhero/article/details/8561581,介绍Nsight 3.0candidate版的特性:http://blog.csdn.原创 2013-02-28 20:33:18 · 1976 阅读 · 0 评论 -
GPU(CUDA)学习日记(二)续二------ VS2010 不同工程之间调用DLL
首先,感谢http://ironurbane.iteye.com/blog/421954 文章,让我明白了不同工程之间调用DLL的步骤和一些需要注意的地方:1、生成DLL,需要.def文件的编辑,生成引入库lib文件,其中的格式可以直接写为:EXPORTS Rotation1 @1其中,Ritation为函数名,我的dll中的入口函数,@1代表第一个执行。此时的操作均在分工程中进原创 2012-08-01 20:15:21 · 2548 阅读 · 0 评论 -
GPU(CUDA)学习日记(十二)------ CUDA并行编程较有用的总结
Cuda并行编程学习时候需注意的一些基本概念1、Cuda的编程风格:spmp(单程序多数据)的并行编程风格。2、在多GPU下,cudaMemcpy()不能用于GPU之间的数据复制3、cudaMemcpy()传输的数据类型有四种:(1) 主机-主机(2) 主机-设备(3) 设备-主机(4) 设备-转载 2012-12-07 16:49:53 · 7846 阅读 · 2 评论 -
GPU(CUDA)学习日记(十三)------ CUDA内存简介
寄存器寄存器是GPU片上高速缓存, 执行单元可以以极低的延迟访问寄存器。寄存器的基本单元式寄存器文件,每个寄存器文件大小为32bit。局部存储器对于每个线程,局部存储器也是私有的。如果寄存器被消耗完。数据将被存储在局部存储器中。如果每个线程使用了过多的寄存器,或声明了大型结构体或数据,或者编译器无法确定数据的大小,线程的私有数据就有可能被分配到local memory中,一个线程的输入和中间变原创 2012-12-07 16:53:37 · 10100 阅读 · 0 评论 -
GPU(CUDA)学习日记(十一)------ 深入理解CUDA线程层次以及关于设置线程数的思考
GPU线程以网格(grid)的方式组织,而每个网格中又包含若干个线程块,在G80/GT200系列中,每一个线程块最多可包含512个线程,Fermi架构中每个线程块支持高达1536个线程。同一线程块中的众多线程拥有相同的指令地址,不仅能够并行执行,而且能够通过共享存储器(Shared memory)和栅栏(barrier)实现块内通信。这样,同一网格内的不同块之间存在不需要通信的粗粒度并行,而一个块原创 2012-12-07 16:30:17 · 19550 阅读 · 5 评论 -
GPU(CUDA)学习日记(八)------ Parallel Nsight2.2调试; CUDA:no source correspandence for breakpoint以及nvcc 命令行
这几天,在弄Parallel Nsight,作为新手的我,也能深深感觉到GPUDebugger --- parallel Nsight的强大,我的机器是win7 x64 + CUDA 4.2 + Parallel Nsight 2.2 ,其实2.2版本的Nsight已经能够单机调试GPU了!这一点真心给力啊!双机调试的经验已经在上一篇文章中介绍过了~其实单机调试也就是把客户端电脑的IP改为自己这台原创 2012-09-21 13:11:17 · 10272 阅读 · 1 评论 -
GPU(CUDA)学习日记(七)------ Parallel Nsight 双机调试经验 以及 一些比较基础的教程
1, 联通两台电脑:准备两台电脑,分别称为主机和调试机,在主机端运行vs2010,在调试机上进行调试,其中至少调试机应支持CUDA,使两台机器在同一个局域网,或直接将两台电脑用网线连接起来; 2, 在主机端设置调试机的IP:在vs2010的解决方案资源管理器中,右键vs2010项目,选择Nsight User Properties,如图所示,在Connection name对应的地原创 2012-09-20 19:00:22 · 7143 阅读 · 1 评论 -
GPU(CUDA)学习日记(十)------ Kernal 内核函数 参数的传递
之前做了一个项目,内核函数什么的编写都没有问题,但是处理完的图片就是会产生条纹,这个问题困扰了我很长时间(真的很长时间。。。),我的内核函数传入的参数有很多,我做过实验,在host函数中给所有的参数都cudamalloc显卡空间(当初以为这样处理会更省显存一些,毕竟是开辟的线性存储器globle memory空间),但是实验结果是每一个参数都开辟cudamalloc的话,速度会降低,显卡的显存也没原创 2012-09-27 19:23:23 · 5376 阅读 · 0 评论 -
GPU(CUDA)学习日记(九)------ CUDA存储器模型
CUDA存储器模型:GPU片内:register,shared memory;板载显存:local memory,constant memory, texture memory, texture memory,global memory;host 内存: host memory, pinned memory. register: 访问延迟极低;转载 2012-09-27 10:53:27 · 3503 阅读 · 1 评论 -
GPU(CUDA)学习日记(二)续------ VS2010 不同工程之间调用DLL
DLL的调用分为隐式的调用和显式的调用,首先,说明隐式的调用DLL,具体的说明可以参照:http://blog.csdn.net/diandian82/article/details/860061 ,LIB文件分为两种,一种是静态库文件,其中包含函数的声明以及实现,另一种是引入库或是输入库,它是由.def文件生成,在生成DLL文件的同时生成,用来包含DLL文件中的一些函数声明,从而调用DLL,具体原创 2012-08-01 18:09:53 · 1920 阅读 · 0 评论 -
GPU学习日记(一)------VS2010下如何配置CUDA4.2
现在在做一个基于GPU加速的特征提取算法,最近在学习基于CUDA的GPU编程。昨晚编了一晚上,发现自己的配置环境不对,“.cu”文件中无论些什么都能编译通过,所以应该是环境链接的问题,今天早上找了一下,发现:http://blog.csdn.net/traceorigin/article/details/7643007 这篇文章很有用,但是还没有具体的测试,应该是没有问题的~发现现在在搞GPU的人原创 2012-08-01 10:03:45 · 3177 阅读 · 0 评论 -
GPU(CUDA)学习日记(六)------ vector,动态数组,引用,编程调试经验总结等一些比较琐碎的记录
昨天,开发的GPU程序终于调通了第二个部分,中间经历了学习CUDA框架和编程、设计系统框架、完成编程等过程。遇到了很多问题,其中包括:vector数组的resize问题,动态数组的堆栈损坏问题,函数引用与变量取地址的问题,不同工程之间调用DLL的问题,基于CUDA的底层工程生成静态库出错的问题,将.cu文件按照“CUDA C/C++”方式编译时只能选择“多线程DLL调试”的问题(说明CUDA依赖第原创 2012-08-07 21:46:13 · 9263 阅读 · 0 评论 -
GPU(CUDA)学习日记(五)------ 动态数组一些说明以及Invalid address specified to RtlValidateHeap 错误
动态数组,可以说是想当方便的数据类型,它可以不限制数组的大小,动态的填充元素,同时在函数之间的调用也十分的灵活,但是需要应用delete[] a; a = NULL; 的语句将内存释放掉,这是需要注意的地方~关于动态数组的介绍,我找到了:http://daiyanfei.blog.51cto.com/698782/139513/ 比较好~ 但是CUDA中不允许调用指针,我在.cu的内核函原创 2012-08-03 21:57:13 · 2671 阅读 · 0 评论 -
GPU(CUDA)学习日记(三)------ CUDA基本架构介绍以及编程入门!~~
首先,介绍CUDA的架构:在CUDA架构下,线程的最小单元是thread,多个thread组成一个block,多个block再组成一个grid,不同block之间的thread不能读写同一shared memory共享内存,因此,block里面的thread之间的通信和同步所带来的开销是比较大的。SM以 32个 Thread 为一组的 Warp 来执行 Thread。Warp内的线程是静态原创 2012-08-02 22:15:17 · 6515 阅读 · 0 评论 -
GPU(CUDA)学习日记(四)----------VS2010 + win7 32位 + CUDA 4.2 环境配置以及一些小问题的解决
原帖地址:http://topic.csdn.net/u/20110615/12/bde220f8-cf7f-49fc-b201-05cc520eb441.html ,感谢之!学习了!~解决了我.cu文件很多波浪的问题。 基本安装: 1. 显卡驱动,到官网上去找最新的驱动吧~ 2. VS2010, VS2010sp1 慢慢装吧,耐心等待。 3. Vass转载 2012-08-03 11:06:32 · 3677 阅读 · 1 评论