小编a5e*_*ren的帖子

CUDA:在大型2D阵列上共享内存

对于类赋值我有一个简单的CUDA问题,但教授添加了一个可选任务来实现使用共享内存的相同算法.我无法在截止日期之前完成它(例如,转入日期是一周前),但我仍然很好奇所以现在我要问互联网;).

基本的任务是按顺序和在CUDA中实现红黑连续过度放松的混合版本,确保在两者中得到相同的结果,然后比较加速.就像我说的那样,使用共享内存进行操作是可选的+ 10%附加组件.

我将发布我的工作版本和伪代码我试图做的事情,因为我现在手中没有代码,但如果有人需要,我可以稍后用实际代码更新.

在有人说之前:是的,我知道使用CUtil是蹩脚的,但它使比较和计时器更容易.

工作全局内存版本:

#include <stdlib.h>
#include <stdio.h>
#include <cutil_inline.h>

#define N 1024

__global__ void kernel(int *d_A, int *d_B) {
    unsigned int index_x = blockIdx.x * blockDim.x + threadIdx.x;
    unsigned int index_y = blockIdx.y * blockDim.y + threadIdx.y;

    // map the two 2D indices to a single linear, 1D index
    unsigned int grid_width = gridDim.x * blockDim.x;
    unsigned int index = index_y * grid_width + index_x;

    // check for boundaries and write out the result
    if((index_x …
Run Code Online (Sandbox Code Playgroud)

cuda

5
推荐指数
1
解决办法
4849
查看次数

标签 统计

cuda ×1