CUDA编程
文章平均质量分 56
soldier123333
这个作者很懒,什么都没留下…
展开
-
Nsight Eclipse Edition新建工程
首先我想新建一个普通的c++的工程,步骤如下:File->CUDA C/C++ Project; 选择新建一个空项目,Finishi就行。右键工程名test->New->Folder; Finishi,这是建了一个文件夹,如果你需要建很多.cpp源文件,都可以放在这个文件夹里。右键源文件夹名src->New->Source File; 该步骤是添加源/头文件,这里有两个地方需要注原创 2017-07-29 15:04:47 · 1058 阅读 · 0 评论 -
VS2013 CUDA8.0 第一个CUDA程序
今晚在看《GPU高性能运算之CUDA》时,看到书中的例子,就想写个CUDA程序练练手,可是之前写的CUDA工程都是在Nsight Eclipse Edition写的,现在想用VS写个CUDA程序,突然不知道该怎么下手,上网查了一些资料,整理在此,方便日后查看,首先本文部分内容参考了博客: vs2013下编写你的第一个CUDA程序,作者写的很详细,我基本就是按照他的步骤来的。1.上一篇博客写原创 2017-08-09 21:12:30 · 4520 阅读 · 2 评论 -
《GPU高性能编程CUDA实战》—— 《笔记三》——点积运算
点积运算注释都已经写在代码里面了需要注意的问题:1.数的个数超过了thread的总数,所以thread有个递增,每个thread要计算多个数 2.点积的运算结果是标量,两个输入矢量中相应元素相乘之后,不是将值保存到第三个输出矢量中,而是将这些值相加得到一个标量输出值。//***************************点积运算****************///*原创 2017-08-10 14:33:49 · 720 阅读 · 1 评论 -
《GPU高性能编程CUDA实战》—— 《笔记一》——使用线程实现GPU上的矢量求和
使用线程实现GPU上的矢量求和//**************使用线程实现GPU上的矢量求和**********///* 时间:2017-8-9 参考书:《GPU高性能编程CUDA实战》 */#include #include #define N 10using namespace std;__global__ void add(int *a,int *b原创 2017-08-09 10:02:48 · 281 阅读 · 0 评论 -
《GPU高性能编程CUDA实战》 《学习笔记二》
在GPU上对任意长度的矢量求和//**************在GPU上对任意长度的矢量求和**********///* 时间:2017-8-9 页数:46 参考书:《GPU高性能编程CUDA实战》 */#include #include #define N 33*1024using namespace std;__global__ voi原创 2017-08-09 15:40:47 · 284 阅读 · 0 评论 -
CUDA知识点
线程块坐标:blockIdx 线程坐标:threadIdx 在CUDA中,kernel函数是以线程块为单位执行的 对于一维的block,线程的threadID就是threadldx.x;对于大小为(Dx,Dy)二维的block,线程的threadID就是threadIdx.x+threadIdx.y*Dx;每个block之间没有同步与通信机制,其执行顺序也互不影响,因此block之间为互相独立原创 2017-08-09 09:58:47 · 499 阅读 · 0 评论 -
#pragma unroll的用法
在默认情形下,编译器对已知次数的小循环进行展开,#pragma unroll 可以用来控制任意一个给定的循环。但 #pragma unroll必须放在被控制的循环的前面,后面可以带展开次数选项。后跟参数1则编译器不会展开循环。如果没有参数,并且循环次数是一常数时编译器会将循环完全展开,如果不是常数就根本不会展开。原创 2017-08-01 13:05:07 · 9428 阅读 · 0 评论 -
为什么在cuda中调用__syncthreads()显示未定义标识符
这是因为__syncthreads()位于头文件#include “device_functions.h”里面,所以要将这个头文件加到代码中原创 2017-08-01 12:27:51 · 11736 阅读 · 5 评论 -
基于Nsight Eclipse Edition的高斯滤波的实现(二)
基于Nsight Eclipse Edition的高斯滤波的实现(一)——GPU代码添加源文件的时候,后缀为.cu,这样nvcc才会把工程当做CUDA工程进行编译,如果源文件为.cpp,那么nvcc编译的时候,会把工程当成CPU工程进行 编译。首先新建工程,步骤如下:File->New->CUDA C/C++ Project,选一个空的工程,Finish 由于不在公司,所以暂时引用网上的图片,周一上原创 2017-07-29 20:55:40 · 313 阅读 · 0 评论 -
基于Nsight Eclipse Edition的高斯滤波的实现(一)
基于Nsight Eclipse Edition的高斯滤波的实现(一)——CPU代码首先写了一个在CPU运行的高斯滤波的函数,部分内容参考自博客:CUDA卷积操作—使用constant memory实现高斯滤波这里我并没有使用高斯卷积核,为了使对比明显,我使用了3×3的全为1的卷积核。图片的读取和保存,我使用的opencv,这样更简单一些,先给出CPU运行中的代码:#include "stdio.h原创 2017-07-29 18:01:29 · 290 阅读 · 0 评论 -
CUDA卷积操作—使用constant memory实现高斯滤波
先转载一篇CUDA卷积的实现,对比一下GPU与CPU中的代码有什么不同:原文地址:CUDA卷积操作—使用constant memory实现高斯滤波高斯滤波就是使用高斯模板和图片进行卷积运算,高斯函数及模板如下图所示: 卷积前后的效果图如下:constant memory的使用及CUDA编程的相关内容,在代码注释中有详细介绍。 GPU代码如下所示:#include "cuda_runtime.h"转载 2017-07-28 21:11:15 · 1019 阅读 · 0 评论 -
CUDA 8.0 + VS2013 + win10 x64开发环境搭建
首先给出原文地址; CUDA 8.0 + VS2013 + win7 x64开发环境搭建下面是我按照上述教程的操作过程记录:1.安装VS2013。这个就不说了2.安装cuda_8.0。 我是默认安装的。。。。如果不是默认安装,一定要记得安装的路径。3.设置环境变量(按照原文安装就行):安装完毕后,在计算机上点右键,打开属性->高级系统设置->环境变量,可以看到系转载 2017-08-09 21:03:58 · 564 阅读 · 0 评论