用户
 找回密码
 立即注册
cuglizhen 该用户已被删除
发表于 2013-3-21 15:54:28
55463
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<cuda.h>
__global__ void MyKernel(cudaPitchedPtr devPitchedPtr,int width, int height, int depth)
{
char* devPtr=devPitchedPtr.ptr;
size_t pitch = devPitchedPtr.pitch;
size_t slicePitch=pitch*height;
for ( int z = 0; z < depth; ++z)
  {
  char* slice = devPtr+z*slicePitch;
  for ( int y = 0; y < height; ++y)
   {
   float *row = (float*)( slice + y *pitch);
   for ( int x = 0; x < width; ++x)
    {
    float element = row[x];
    }
   }
  }
}
int  main(void)
{
//  clock_t start, finish;
//        double  duration = 0.0;
  int width = 64, height = 64, depth = 64;
  cudaExtent extent = make_cudaExtent(width*sizeof(float),height, depth);
  cudaPitchedPtr devPitchedPtr;
  cudaMalloc3D(&devPitchedPtr, extent);

//  start = clock();
  MyKernel<<<100, 512>>>(devPitchedPtr, width, height, depth);

  
//  finish = clock();
//  duration = (float)(finish - start);
        printf("\nP=\n");
        //for(int i=0;i<Width*Width;i++)
/*  for(int i=0;i<3;i++)
        {
                if(i%Width==0)
     printf("\n");
                printf(" %f",P);
        }
        printf("\n");*/
//  printf(" %f  mS\n",duration);
//  free(P);

  
  getchar();
  return 0;
}

使用道具 举报 回复
发表于 2013-3-21 16:16:40
你既然知道cudaPitchedPtr里的ptr成员是void *类型,你还发此文干嘛??

“自回复式询问?”

您的帖子将在5分钟后移动往灌水区。谢谢合作。
使用道具 举报 回复 支持 反对
发表于 2013-3-21 16:35:42
横扫千军 发表于 2013-3-21 16:16
你既然知道cudaPitchedPtr里的ptr成员是void *类型,你还发此文干嘛??

“自回复式询问?”

我不知道怎么改啊,大哥
使用道具 举报 回复 支持 反对
发表于 2013-3-21 16:51:44
cuglizhen 发表于 2013-3-21 16:35
我不知道怎么改啊,大哥

...你确定你不是胡闹么?

将你自己用红线划的地方,char *... = 改为: char *...= (char *)即可。

你真的不是胡闹么???
使用道具 举报 回复 支持 反对
发新帖
您需要登录后才可以回帖 登录 | 立即注册