小编Nar*_*aki的帖子

减少CUDA

我刚刚开始学习CUDA编程,我对减少有些困惑.

我知道全局内存与共享内存相比有很多访问延迟,但是我可以使用全局内存来(至少)模拟类似于共享内存的行为吗?

例如,我想总结一个长度正好的大数组的元素BLOCK_SIZE * THREAD_SIZE(网格和块的维度都是幂2),我试图使用下面的代码:

    __global__ void parallelSum(unsigned int* array) {

    unsigned int totalThreadsNum = gridDim.x * blockDim.x;
    unsigned int idx = blockDim.x * blockIdx.x + threadIdx.x;

    int i = totalThreadsNum / 2;
    while (i != 0) {
            if (idx < i) {
                array[idx] += array[idx + i];
        }
        __syncthreads();
        i /= 2;
    }
}
Run Code Online (Sandbox Code Playgroud)

我比较了这段代码的结果和在主机上串行生成的结果,奇怪的是:有时结果是相同的,但有时它们显然是不同的.在这里使用全局内存是否有任何原因?

cuda reduction thrust cub

2
推荐指数
1
解决办法
1021
查看次数

在 VS2010 下使用 OpenGL 的“缺少 glut32.dll”

我在VS2010下用OpenGL做程序很久了。直到现在,该程序始终可以独立运行(我的意思是不是从 vs2010 运行而是双击 IDE 的一侧)。“缺少glut32.dll”显示让我把它放在同一个目录下。

有人可能会说我可能会在 system32 中丢失 glut32.dll(或者在我的情况下,64 位 Windows 中的 syswow64)。当我把它放在目录中时,它被证明是正确的。问题是:我以前从未删除过它。怎么会是这种情况?

opengl

1
推荐指数
2
解决办法
1万
查看次数

标签 统计

cub ×1

cuda ×1

opengl ×1

reduction ×1

thrust ×1