key point: kernel内部使用new[], delete[]分配存储空间
#include <iostream>
#include <sys/time.h>#include <cuda.h>
#include <curand_kernel.h>
#include <cuda_runtime.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
__global__ void dev_alloc()
{
int num = 10;
int* array = new int[num];
for(int i = 0; i<num; i++)
array[i] = i+1;
for(int i = 0; i<num; i++)
printf("array: %d, ", array[i]);
printf("\n");
delete[] array;
}
int main()
{
srand((unsigned int)time(NULL));
cudaSetDevice(0);
dev_alloc<<<1,1>>>();
cudaDeviceSynchronize();
cudaDeviceReset();
return 0;
}