栏杆上的红宝石 2017-02-14 06:57 采纳率: 0%
浏览 1319

初学cuda,简单程序无输出结果

#include "cuda_runtime.h"
#include "device_launch_parameters.h"

#include
#include
#include

typedef struct
{
BYTE r;
BYTE b;
BYTE g;
}RGB;

global void func(BYTE *gray, RGB img[][500], int width)
{
int i = threadIdx.x;
for (int j = 0; j < width; j++)
{
gray[(img[i][j].r * 38 + img[i][j].g * 75 + img[i][j].b * 15) >> 7]++;
}
}

int main()
{
BITMAPFILEHEADER fileHeader;
BITMAPINFOHEADER infoHeader;
FILE* pfin;
BYTE gray[256] = { 0 };
RGB img[256][256] = { 0 };

cudaError_t cudaStatus;

pfin = fopen("1.bmp", "rb");
//ReadtheBitmapfileheader;
fread(&fileHeader, sizeof(BITMAPFILEHEADER), 1, pfin);
//ReadtheBitmapinfoheader;
fread(&infoHeader, sizeof(BITMAPINFOHEADER), 1, pfin);
//the size of the picture
int size = infoHeader.biWidth*infoHeader.biHeight;
//read the file
fread(img, sizeof(RGB), size, pfin);
int width = infoHeader.biWidth;

BYTE *dev_gray;

cudaMalloc((void **)&dev_gray,width*sizeof(BYTE));

func<<<1,width>>>(dev_gray, img, width);

cudaMemcpy(gray, dev_gray, width*sizeof(BYTE),cudaMemcpyDeviceToHost);

cudaFree(dev_gray);

getchar();
return 0;

}

想要的结果是结果在gray数组中 但无结果 是内存的问题还是什么问题
应该如何修改呢

  • 写回答

1条回答 默认 最新

  • dabocaiqq 2017-02-15 15:45
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?