cuda
文章平均质量分 71
todayq
这个作者很懒,什么都没留下…
展开
-
CUDA入门——环境搭建,hello world cuda(1)
环境搭建hello cuda#include const int N = 16; const int blocksize = 16; __global__ void hello(char *a, int *b) { a[threadIdx.x] += b[threadIdx.x];} int main(){ char a[N] = "Hello \0\0\0\原创 2013-12-02 16:50:56 · 2154 阅读 · 0 评论 -
cuda图像卷积
__global__ void convolution_2D_kernel(float*P,float*N,int height,int width,int channels,const float *M){__shared__ float Ns[BLOCK_WIDTH][BLOCK_WIDTH*3];int tx=threadIdx.x;int ty=threadIdx.y;int原创 2014-02-02 14:51:27 · 5079 阅读 · 0 评论 -
CUDA学习笔记之 CUDA存储器模型
CUDA存储器模型:GPU片内:register,shared memory;板载显存:local memory,constant memory, texture memory, texture memory,global memory;host 内存: host memory, pinned memory. register: 访问延迟极低; 基转载 2014-02-17 15:08:12 · 991 阅读 · 0 评论 -
List Reduction
// MP Reduction// Given a list (lst) of length n// Output its sum = lst[0] + lst[1] + ... + lst[n-1];#include #define BLOCK_SIZE 512 //@@ You can change this#define wbCheck(stmt) do {原创 2014-02-07 13:42:57 · 1058 阅读 · 0 评论 -
手把手教你cuda5.5与VS2010的编译环境搭建
目前版本的cuda是很方便的,它的一个安装里面包括了Toolkit`SDK`document`Nsight等等,而不用你自己去挨个安装,这样也避免了版本的不同步问题。1 cuda5.5的下载地址,官方网站即可: https://developer.nvidia.com/cuda-downloads 在里面选择你所对应的电脑版本即可。2 VS2010这个没什么说的了,网上各种转载 2013-11-29 17:21:32 · 1090 阅读 · 0 评论 -
利用shared memeory减少对global memory的访问
近来采用cuda加速,对时间做了下测试,发现cuda版本和c版本的code运行时间基本上没什么大的改善。非常惊讶!因为之前对gpu抱了很大的希望。为什么会事与愿违呢?仔细研究code,发现,时间的损耗很大一部分都花在数据copy和读取上。于是又开始翻看资料……发现将操作数一次拷贝到share memory是个不错的idea。原创 2014-01-20 09:17:45 · 992 阅读 · 0 评论 -
cuda直方图计算——利用shared memory统计直方图
先写个错误的version,折腾了我一天呀__global__ void CalHistKernel(int*imgData,int*bins,int datasize){ __shared__ int _bins[3]; int tx=threadIdx.x; int idx=blockIdx.x*blockDim.x+threadIdx.x; if(tx原创 2014-01-23 13:58:34 · 2432 阅读 · 0 评论 -
矩阵乘法
声明矩阵结构体如下:typedef struct{int width;int height;float* elements;}Matrix;串行版本:void MatMul(const Matrix A,const Matrix B,Matrix C){ for(int row=0;row<C.height;row++) { for(int c原创 2014-01-21 13:49:00 · 1212 阅读 · 0 评论 -
CUDA 错误类型
CUDA error typesEnumerator: cudaSuccess The API call returned with no errors. In the case of query calls, this can also mean that the operation being queried is complete (see cudaEventQue转载 2013-12-19 10:34:31 · 23424 阅读 · 0 评论 -
cuda 矩阵乘法
原始矩阵乘法#include #include #define BLOCK_SIZE 1typedef struct{int width;int height;float* elements;}Matrix;__global__ void MatMulKernel(const Matrix,const Matrix,Matrix);void MatMul(const Mat转载 2013-12-04 16:33:15 · 1163 阅读 · 0 评论 -
cuda入门——结合opncv和cuda编程(2)
opencv读入图片,将图片数据传递到cuda处理#include#include#include#include#includeusing namespace std;using namespace cv;#define NUM_BLOCK 300 // Number of thread blocks #define NUM_THREAD 64 __g原创 2013-12-03 17:58:13 · 1364 阅读 · 0 评论 -
cuda结构体数组拷贝
逐一拷贝结构体元素code: struct cudaWeakr { int* loc; float* detaSb; };int main() { float arrayA[2][3] = { {1, 2 ,3},{11,22,33}}; int arrayB[3]={1, 2 ,3}; const int K=3; cudaWeakr*c原创 2013-12-11 12:55:48 · 3015 阅读 · 0 评论 -
cuda问题集
A1:我有N张图片,每张图片需要进行K次处理。我希望调用N个线程,每个线程处理一张图片,对每一张图片,我又希望能够调用K个线程,每个线程处理一次我该怎么做哦,求思路。Q1:N张图片对应N个block,每个block对应k个线程。__global__ kernelPicAdd ( uchar *pic1, uchar *pic2 ){ // get index i = ..;原创 2013-12-18 14:58:49 · 986 阅读 · 0 评论 -
List Scan
my code:// MP Scan// Given a list (lst) of length n// Output its prefix sum = {lst[0], lst[0] + lst[1], lst[0] + lst[1] + ... + lst[n-1]}#include #define BLOCK_SIZE 512 //@@ You can change原创 2014-02-20 09:42:58 · 1124 阅读 · 0 评论