Anda di halaman 1dari 2

#include "cuda_runtime.

h"
#include "device_launch_parameters.h"

#include <stdio.h>

#define n 9
__global__ void cross(int *a,int *b,int *c,int *d)
{
for(int i=0;i<n;i++)
{
if((i>=3)&&(i<6))
{
c[i]=b[i];
d[i]=a[i];
}
else
{
c[i]=a[i];
d[i]=b[i];
}
}
}
int main()
{
int a[n],b[n],c[n],d[n];
int *dev_a,*dev_b,*dev_c,*dev_d;
for(int i=0;i<n;i++)
{
a[i]=i;
b[i]=i+2;
}
printf("Before swapping the lists are \n");
for(int i=0;i<n;i++)
{
printf("%d ",a[i]);
}
printf("\n");
for(int i=0;i<n;i++)
{
printf("%d ",b[i]);
}
printf("\n");

cudaMalloc((void**)&dev_a,n*sizeof(int));
cudaMalloc((void**)&dev_b,n*sizeof(int));
cudaMalloc((void**)&dev_c,n*sizeof(int));
cudaMalloc((void**)&dev_d,n*sizeof(int));
cudaMemcpy(dev_a,a,n*sizeof(int),cudaMemcpyHostToDevice);
cudaMemcpy(dev_b,b,n*sizeof(int),cudaMemcpyHostToDevice);
cross<<<1,n>>>(dev_a,dev_b,dev_c,dev_d);
cudaMemcpy(c,dev_c,n*sizeof(int),cudaMemcpyDeviceToHost);
cudaMemcpy(d,dev_d,n*sizeof(int),cudaMemcpyDeviceToHost);
printf("After swapping the lists are \n");
for(int i=0;i<n;i++)
{
printf("%d ",c[i]);
}
printf("\n");
for(int i=0;i<n;i++)
{
printf("%d ",d[i]);
}
printf("\n");

Anda mungkin juga menyukai