Возможно ли, что cudaMalloc не удается выделить из-за отсутствия свободной памяти компьютера?
Несмотря на то, что память GPU доступна, происходит сбой cudaMalloc при заполнении ОЗУ (памяти компьютера).
Мой код может суммироватьсяследующий пример кода:
int main()
{
size_t N=sizeof(int)*100000000;
while(true)
{
int *d_a,*d_b;
if ( cudaSuccess !=cudaMalloc(&d_a, N)) printf("Error Allocating GPU Memory");
if ( cudaSuccess !=cudaMalloc(&d_b, N)) printf("Error Allocating GPU Memory");
cudaMemset(d_a,1,N);
cudaMemset(d_b,2,N);
int *h_a= (int *)malloc(N);
int *h_b=(int *)malloc(N);
if(!h_a || !h_b) printf("Error Allocating CPU Memory");
cudaMemcpy(d_a,h_a, N, cudaMemcpyHostToDevice);
cudaMemcpy(d_b,h_b, N, cudaMemcpyHostToDevice);
cudaFree(d_a);
cudaFree(d_b);
}
getch();
return 1;
}
В следующем коде не удается выделить память GPU, только когда память компьютера заполнена!Я получаю ошибку Error Allocating GPU Memory
вместо Error Allocating CPU Memory