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; }