对于类赋值我有一个简单的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 ×1