below code is giving me the error
Error: process didn’t terminate successfully
========= CUDA-MEMCHECK
========= Internal error (20)
========= No CUDA-MEMCHECK results found
~
could any one help me with this , thanks in advance .
#include <stdio.h>
#include “cuda.h”
#define h 10
#define w 10
device void devFunction(int * arr_d , int *drr_d,int pitch)
{
int i,j;
for(i=0;i<10;++i)
{
arr_d[i]=arr_d[i]+1;
//drr_d[1][i]=drr_d[1][i]+1;
}
for(i=0;i<10;++i)
{
int *row=(int*)(drr_d+(i*pitch));
for(j=0;j<10;++j)
{
row[j]=row[j]+1;
}
}
}
global void test(int arr_d ,int drr_d,int pitch)
{
devFunction(arr_d,drr_d,pitch);
}
int main()
{
int *arr_h=(int*)malloc(sizeof(int)*10); // working fine for 1D array
int * arr_d;
cudaMalloc((void**)&arr_d,sizeof(int)*10);
int i;
for(i=0;i<10;i++)
{
arr_h[i]=i;
}
cudaMemcpy(arr_d,arr_h,sizeof(int)*10,cudaMemcpyHostToDevice);
//test<<<1,1>>>(arr_d);
//cudaMemcpy(arr_h,arr_d,sizeof(int)*10,cudaMemcpyDeviceToHost);
/*for(i=0;i<10;i++)
{
printf("%d",arr_h[i]);
}
*/
int ** drr_h=(int**)malloc (sizeof(int*)*10);
/*for(i=0;i<10;i++)
{
drr_h[i]=(int*)malloc(sizeof(int)*10);
}*/
int j;
for(i=0;i<10;i++)
{
for(j=0;j<10;j++){
printf("%d\n",drr_h[i][j]);
}}
int *drr_d;
size_t pitch;
cudaMallocPitch((void**)&drr_d,&pitch,sizeof(int)*10,10);
cudaMemcpy2D(drr_d,pitch,drr_h,sizeof(int) *10, 10 * sizeof(int), 10, cudaMemcpyHostToDevice);
test<<<1,1>>>(arr_d,drr_d,pitch);
//printf("%d\n",pitch); //value is 512
cudaMemcpy2D(drr_h,10*sizeof(int),drr_d, pitch, 10 * sizeof(int),10, cudaMemcpyDeviceToHost);
printf("\n");
return 0;
}