CUDA
文章平均质量分 54
zhuxianjianqi
这个作者很懒,什么都没留下…
展开
-
CUDA5.0 + Visual Studio 2010 的环境配置
根据前人所写的cuda4.0的配置,我配置了一下cuda5.0,配置过程有一些差 别,经过一番调试后成功。所以总结了一下Cuda5.0的配置, 给大家一参考吧。 1 安装环境 操作系统:Win8 32 位专业版 显卡型号:NVIDIA gtx650ti2 软件准备 (1)Microsoft Visual Studio 2010 (2)Visual Assist X原创 2013-04-08 11:18:29 · 5984 阅读 · 0 评论 -
cuda异步并行执行
异步函数使得主机端与设备端并行执行:控制在设备还没有完成前就被返回给主机线程;包括:kernel启动; 以Async为后缀的内存拷贝函数; device到device内存拷贝函数;存储器初始化函数,比如cudaMemset(),cudaMemset2D(),cudaMemset3D();一些设备能够在kernel执行期间,执行pinned memor原创 2013-12-20 10:40:29 · 3282 阅读 · 0 评论 -
__constant__关键字要点
不能用extern关键字声明为外部变量。原创 2013-11-19 10:27:10 · 1390 阅读 · 0 评论 -
CUDA中如何在设备上分配全局变量
[cpp] view plaincopy假设定义了全局变量 __device__ int *a; 我需要一个数组,动态分配,那么直接调用cudaMalloc来为a分配内存的话,是不行的。具体做法如下[cpp] view plaincopyint *tmp;原创 2013-11-19 09:57:21 · 9138 阅读 · 0 评论 -
code generation的问题
在VS平台下这个选项貌似是要手动指定的根据本机卡计算能力进行相应的设置我的显卡是3.0的设定 compute_30,sm_30若默认compute_10,sm_10效率不是很高。此问题有待研究原创 2013-05-09 14:49:21 · 1599 阅读 · 0 评论 -
SM,SP和GRID,BLOCK,THREAD之间的对应关系是什么?
SM,SP是硬件结构GRID,BLOCK,THREAD是软件概念从硬件角度讲,一个GPU由多个SM组成(当然还有其他部分),一个SM包含有多个SP(以及还有寄存器资源,shared memory资源,L1cache,scheduler,SPU,LD/ST单元等等),1.x硬件,一个SM包含8个SP,2.0是32个,2.1是48个,3.0和3.5是192个。以及SP目前也称为CUDA原创 2013-05-09 14:53:51 · 8997 阅读 · 0 评论 -
CUDA编程疑问答疑
子说 18:57:32 我有一个问题子说 18:58:50 比如有几个int 型的常数,需要在gpu显存里传入一份嘛子说 18:59:04 还是在函数调用的时候传入子说 18:59:09 哪一种更好19:14:27 作为函数的参数即可19:14:50 你要copy到global memory里面再用也可以19:15:02 作为参数可能更好一点原创 2013-05-08 19:26:41 · 812 阅读 · 0 评论 -
cuda入门:runtime API创建CUDA程序
CUDA 目前有两种不同的 API:Runtime API 和 Driver API,两种 API 各有其适用的范围。由于 runtime API 较容易使用,一开始我们会以 runetime API 为主。 CUDA 的初始化 首先,先建立一个档案 first_cuda.cu。要使用 runtime API 的时候,需要 include cuda_runtime.h。所以,在原创 2013-05-07 13:27:37 · 3068 阅读 · 0 评论 -
cuda优化要点
一、选择好的并行方式选择好的算法,以发掘更多的数据并行性二、保持SM忙碌尽量利用所有的SM参与计算,可以通过加大数据量或减少线程块大小达到目的。三、优化存储器利用保证全局存储器合并访问(相邻线程访问段对齐的相邻地址)使用速度更快的constant或shared存储器原创 2013-05-07 10:42:55 · 968 阅读 · 0 评论 -
cuda编程优化小技巧之分支优化
cuda编程优化原则之一就是要减少分支分支优化 消除分支结构的小技巧 例如:if( a>b ){a=c;} else {a=0;} 可以替换为:a=( a>b )*c;原创 2013-05-07 10:33:37 · 1995 阅读 · 2 评论 -
cuda编程之数据更新小技巧
不知道大家有没有遇到这样的情况:在某个迭代计算过程中,数组new的计算需要old的值,当计算完成后,需要把new的值写入old再下一次迭代?如果这里使用memcpy的方式,当数据量较大的时候会很耗时的!解决方法:交换指针也就是把指向设备内存new和old的指针进行交换,这样就避免了memcpy的时间消耗~当然用过的人无视以上内容~交换方法:定义一个函数voi原创 2013-05-09 23:57:57 · 1216 阅读 · 0 评论 -
CUDA计算能力的一个衡量标准
计算能力SM中SP的数量1.08 1.181.281.382.0322.1483.01923.5192原创 2013-04-18 09:49:04 · 1828 阅读 · 0 评论 -
我的cuda显卡数据
CUDA Device Query (Runtime API) version (CUDART static linking) Detected 1 CUDA Capable device(s) Device 0: "GeForce GTX 650 Ti" CUDA Driver Version / Runtime Version 5.0 / 5.0 CUDA C原创 2013-04-16 15:02:35 · 3575 阅读 · 0 评论 -
CUDA笔记之二:硬件与拓扑原理篇
这部分是一些枯燥的硬件知识的总结,但是对优化CUDA程序有着至关重要的作用,在后面的文章里,我将尽量结合实例来讲解这些东西 1 GPU硬件i GPU一个最小单元称为Streaming Processor(SP),全流水线单事件无序微处理器,包含两个ALU和一个FPU,多组寄存器文件(register file,很多寄存器的组合),这个SP没有cache。事实上,现代GP转载 2013-04-15 13:10:17 · 1228 阅读 · 0 评论 -
CUDA笔记之一:实践编程篇
这两天想看看GPU编程的东西,可是资料太稀少了,NVIDIA公司出的那个倒霉文档根本没法入门。现在算是东拉西扯的找到了一些资料,入了点门。先写点笔记吧,等有时间了,写个完整的pdf出来,和大家共享。1 硬件架构 CUDA编程中,习惯称CPU为Host,GPU为Device。2 并行模型 Thread:并行基本单位 Block:相互合作的一组线程。可以彼此同步转载 2013-04-15 13:09:25 · 1197 阅读 · 0 评论 -
CUDA设备的计算能力总览
CUDA GPUsNVIDIA GPUs power millions of desktops, notebooks, workstations and supercomputers around the world, accelerating computationally-intensive tasks for consumers, professionals, s原创 2013-04-15 11:21:12 · 5724 阅读 · 1 评论 -
CUDA程序如何解决 warning C4819?
用VS2010编译CUDA示例时,有很多C4819警告:warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss 按网上说的一个个的重新原创 2013-04-09 16:36:09 · 4682 阅读 · 0 评论 -
bank conflict
Shared memory 是以 4 bytes 为单位分成 banks。因此,假设以下的数据: __shared__ int data[128];那么,data[0] 是 bank 0、data[1] 是 bank 1、data[2] 是 bank 2、…、data[15] 是 bank 15,而 data[16] 又回到 bank 0。由于 warp 在执行时是以 half-warp原创 2014-01-12 14:15:06 · 2539 阅读 · 0 评论