chapter5里重要的例子是dot,来解释一个block内多个thread的共享内存和同步。__shared__共享内存:“对于在GPU上启动的每个线程块,cuda c编译器都将创建该变量的一个副本。线程块中的每个线程都共享这块内存,并和其他线程块无关,这使一个线程块中多个线程能够在计算上进行通信...
分类:
其他好文 时间:
2014-06-23 00:32:59
阅读次数:
289
主要是在研究访问共享内存会产生bank conflict时,自己产生的疑惑。对于这...
分类:
其他好文 时间:
2014-06-22 00:39:19
阅读次数:
477
1. 基于Horn-Schunck模型的光流算法 1.1 光流的约束条件 光流 的假设条件认为图像序列,在时间t 的某一像素点与在时间t+1的这一像素点的偏移量保持不变,即 。这就是灰度值守恒假设,通过Taylor展开,就能得到光流的约束条件(OFC): ,其中下标表示图像的梯度。 1.2 Horn...
分类:
其他好文 时间:
2014-06-20 23:36:48
阅读次数:
639
1、OPENCVGPU重新编译+自己的文件 注意点: 1、生成OPENCV.sln解决方案后,在ALL_build的属性中,添加相应目录: ALL_BUILD中的Debug和Release上的Microsoft.Cpp.Win32.user CUDA 路径: Include Directories:...
分类:
其他好文 时间:
2014-06-15 06:14:29
阅读次数:
225
编译环境:windows8.1Anaconda python2.7Visual studio 2012CUDA6.0Pthread for windowsIntel Math Kernel Librarycuda-convnet 原始文件下载地址:https://github.com/dnouri/...
《cuda programming 》 Shane Cook 第5章
第一节cpu和gpu有各自独立的内存空间,两者不可以直接访问。每个线程的执行代码是一样的,数据不同。Thread---->Warp------>Block------>Grid入门代码是并行加法:
1.cpu端的数组 ...
分类:
其他好文 时间:
2014-06-10 00:37:13
阅读次数:
295
#include
__global__ void childKernel(int i)
{
int tid = blockIdx.x*blockDim.x+threadIdx.x;
printf("parent:%d,child:%d\n",i,tid);
for(int j=i;j<i+10;j++)
{
printf(",%d",j);
}
printf("\n");...
分类:
其他好文 时间:
2014-06-03 03:58:15
阅读次数:
206
前言 在并发,多线程环境下,同步是一个很重要的环节。同步即是指进程/线程之间的执行顺序约定。
本文将介绍如何通过共享内存机制实现块内多线程之间的同步。 至于块之间的同步,需要使用到 global
memory,代价较为高昂,目前使用的情况也不多,就先不介绍了。块内同步函数:__syncthre...
分类:
其他好文 时间:
2014-05-31 11:25:25
阅读次数:
257
前言 编写 CUDA 程序真心不是个简单的事儿,调试也不方便,很费时。那么有没有一些现成的
CUDA 库来调用呢? 答案是有的,如 CUBLAS 就是 CUDA 专门用来解决线性代数运算的库。 本文将大致介绍如何使用 CUBLAS 库,同时演示一个使用
CUBLAS 库进行矩阵乘法的例子。CU...
分类:
其他好文 时间:
2014-05-30 11:29:24
阅读次数:
403