CUDA:如何从全局函数调用主机函数 1#包括 2#包括 3#包括“cuda.h” 4 _;全局__;无效malloctest() 5 { 6 char*ptr=(char*)malloc(123); 7 printf(“线程%d获得了一个指针:%p\n”,threadIdx.x,ptr); 8免费(ptr); 9 } 10 int main() 11 { 12个cudaDeviceSetLimit(cudaLimitMallocHeapSize,128*1024*1024); 13 malloctest(); 14 cudaDeviceSynchronize(); 15返回0; 16 } nvcc警告:“compute_10”和“sm_10”体系结构已被弃用,可能会在将来的版本中删除。 cu(6)(第9列):错误:不允许从全局函数(“malloctest”)调用主机函数(“malloc”) cu(7):错误:不允许从全局函数(“malloctest”)调用主机函数(“printf”) cu(8):错误:不允许从全局函数(“malloctest”)调用主机函数(“free”)
如何提供?谢谢e,我找到了答案,我应该将gpu拱门改为3.0CUDA:如何从全局函数调用主机函数 1#包括 2#包括 3#包括“cuda.h” 4 _;全局__;无效malloctest() 5 { 6 char*ptr=(char*)malloc(123); 7 printf(“线程%d获得了一个指针:%p\n”,threadIdx.x,ptr); 8免费(ptr); 9 } 10 int main() 11 { 12个cudaDeviceSetLimit(cudaLimitMallocHeapSize,128*1024*1024); 13 malloctest(); 14 cudaDeviceSynchronize(); 15返回0; 16 } nvcc警告:“compute_10”和“sm_10”体系结构已被弃用,可能会在将来的版本中删除。 cu(6)(第9列):错误:不允许从全局函数(“malloctest”)调用主机函数(“malloc”) cu(7):错误:不允许从全局函数(“malloctest”)调用主机函数(“printf”) cu(8):错误:不允许从全局函数(“malloctest”)调用主机函数(“free”),cuda,Cuda,如何提供?谢谢e,我找到了答案,我应该将gpu拱门改为3.0 1 #include<stdlib.h> 2 #include<stdio.h> 3 #include"cuda.h" 4 __global__ void malloctest() 5 { 6 char * ptr=(char *)malloc(123); 7 printf("thread %d got a pointer:%p\n",threadIdx.
1 #include<stdlib.h>
2 #include<stdio.h>
3 #include"cuda.h"
4 __global__ void malloctest()
5 {
6 char * ptr=(char *)malloc(123);
7 printf("thread %d got a pointer:%p\n",threadIdx.x,ptr);
8 free(ptr);
9 }
10 int main()
11 {
12 cudaDeviceSetLimit(cudaLimitMallocHeapSize,128*1024*1024);
13 malloctest<<<1,5>>>();
14 cudaDeviceSynchronize();
15 return 0;
16 }
nvcc warning : The 'compute_10' and 'sm_10' architectures are deprecated, and may be removed in a future release.
malloctest.cu(6) (col. 9): error: calling a __host__ function("malloc") from a __global__ function("malloctest") is not allowed
malloctest.cu(7): error: calling a __host__ function("printf") from a __global__ function("malloctest") is not allowed
malloctest.cu(8): error: calling a __host__ function("free") from a __global__ function("malloctest") is not allowed
e、 如果我找到了答案,我应该将gpu拱门改为3.0
1 #include<stdlib.h>
2 #include<stdio.h>
3 #include"cuda.h"
4 __global__ void malloctest()
5 {
6 char * ptr=(char *)malloc(123);
7 printf("thread %d got a pointer:%p\n",threadIdx.x,ptr);
8 free(ptr);
9 }
10 int main()
11 {
12 cudaDeviceSetLimit(cudaLimitMallocHeapSize,128*1024*1024);
13 malloctest<<<1,5>>>();
14 cudaDeviceSynchronize();
15 return 0;
16 }
nvcc warning : The 'compute_10' and 'sm_10' architectures are deprecated, and may be removed in a future release.
malloctest.cu(6) (col. 9): error: calling a __host__ function("malloc") from a __global__ function("malloctest") is not allowed
malloctest.cu(7): error: calling a __host__ function("printf") from a __global__ function("malloctest") is not allowed
malloctest.cu(8): error: calling a __host__ function("free") from a __global__ function("malloctest") is not allowed