
CUDA
Maria21
这个作者很懒,什么都没留下…
展开
-
cuda向量加法时间
#include#include#include#includevoid output(float *arr,int n);//输出向量中的元素值void VectorAdd(float *A,float *B,float *C,int n);//CPU上计算两向量相加//device code__global__ void VecAdd(float *A,fl转载 2014-12-04 22:29:26 · 666 阅读 · 0 评论 -
cuda内核(kernel)参数详解
cuda内核(kernel)参数详解核函数是GPU每个thread上运行的程序。必须通过__gloabl__函数类型限定符定义。形式如下: __global__ void kernel(param list){ }核函数只能在主机端调用,调用时必须申明执行参数。调用形式如下: Kernel>>(par转载 2015-01-04 14:08:52 · 2746 阅读 · 0 评论 -
AMD OpenCL 大学课程
AMD OpenCL大学课程是非常好的入门级OpenCL教程,通过看教程中的PPT,我们能够很快的了解OpenCL机制以及编程方法。下载地址:http://developer.amd.com/zones/OpenCLZone/universities/Pages/default.aspx 教程中的英文很简单,我相信学OpenCL的人都能看得懂,而且看原汁原味的英文表述,更有利于我们了解各种转载 2015-01-22 14:49:33 · 1198 阅读 · 0 评论 -
CUDA: 程序优化的15个策略
在《CUDA程序优化策略》这篇文章中,我们介绍过CUDA优化的常见策略。今天我们会对CUDA优化策略进行详细讲解。具体策略如下: 1. memory coalescing,保证内存融合。因为global memory在CC为1.x上是按照half wrap进行访问读写的,而在2.x上是按照wrap进行访问读写的。在显存中,有多个存储器控制器,负责对显存的读写,因此,一定要注意存储器控转载 2015-01-20 22:22:53 · 687 阅读 · 0 评论 -
cuda 1000 32 block 256 threads 2 改进
[cpp] view plaincopy#include "cuda_runtime.h" #include "device_launch_parameters.h" #include #include using namespace std; #define data_size 10000 #define threa转载 2015-01-20 21:41:35 · 492 阅读 · 0 评论 -
取模、乘法和除法运算在CPU和GPU上的效率
问题: 将整数n分解为i和j,满足下面关系:n = j * idim + i 其中idim为常量。 以下为三种算法实现: 1) i = n % idim,j = (n - i) / idim 2) j = n * ridim,i = n - j * idim,其中ridim = 1.0f / idim,为转载 2015-01-20 21:40:11 · 2256 阅读 · 0 评论 -
CUDA: 程序优化的15个策略
在《CUDA程序优化策略》这篇文章中,我们介绍过CUDA优化的常见策略。今天我们会对CUDA优化策略进行详细讲解。具体策略如下: 1. memory coalescing,保证内存融合。因为global memory在CC为1.x上是按照half wrap进行访问读写的,而在2.x上是按照wrap进行访问读写的。在显存中,有多个存储器控制器,负责对显存的读写,因此,一定要注意存储器控转载 2015-01-20 22:25:52 · 711 阅读 · 0 评论 -
CUDA中Bank conflict冲突
其实这两天一直不知道什么叫bank conflict冲突,这两天因为要看那个矩阵转置优化的问题,里面有讲到这些问题,但是没办法,为了要看懂那个bank conflict冲突,我不得不去找资料,说句实话我现在不是完全弄明白,但是应该说有点眉目了,现在我就把网上找的整理一下,放在这边,等哪天完全弄明白了我就在修改里面的错误。 Tesla 的每个 SM 拥有 16KB 共享存储器,用于转载 2014-12-08 23:06:37 · 554 阅读 · 0 评论 -
CUDA shared memory使用
序言:明年就毕业了,下半年就要为以后的生活做打算。这半年,或许就是一个抉择的时候,又是到了一个要做选择的时候。或许是自己的危机意识比较强,一直都觉得自己做得不够好,还需要积累和学习。或许是知足常乐吧,从小山沟,能到香港,一步一步,自己都比较满足,只是心中一直抱着一个理想,坚持做一件事情,坚持想做点事情,踏踏实实,曾经失败过,曾经迷茫过,才学会了坚持,学会了坚毅,才体会了淡定和从容。人生路上,一路走转载 2014-12-08 19:02:39 · 1254 阅读 · 0 评论 -
CUDA与OpenGL交互开发
最近在学习OpenGL,过程中需要使用CUDA进行并行计算。因此,需要解决OpenGL与CUDA的交互问题。学习记录如下:Step1. 共享数据区想到交互,不难想到通信,数据共享等词语。这里使用的是共享数据的方式来完成OpenGL与CUDA的交互。而OpenGL与CUDA都有着自己独特的类型定义。因此,对于共享的数据区,我们需要给它起两个不同的名字,分别为OpenGL以及C转载 2015-01-10 16:44:32 · 944 阅读 · 0 评论 -
在CUDA如何使用二维数组(**[M][N])
总有些童鞋想知道怎么在CUDA中使用二维数组([M][N]这种类型),其实这个很简单,不过你要完全弄明白,必须对指针,地址等概念非常清楚才行。写这篇博客解决下大家这个问题:1、首先讲述一下在一般C语言中如何使用二维数组。[cpp] view plaincopyint r, c; int **arr = (int**)malloc(ROW转载 2015-01-25 19:14:27 · 1380 阅读 · 0 评论