0
는 내가 처음으로 다음과 같은 멀티 GPU CUDA 코드가 :왜 여러 GPU CUDA 코드가 실패 했습니까?
int main(void) {
int count;
cudaGetDeviceCount(&count);
float** gtt = new float*[count];
for (int i=0; i< count; i++) {
cudaSetDevice(i);
int j;
cudaGetDevice(&j);
printf("get device %d\n",j);
cudaMalloc((void**)>t[i], 2*sizeof(float));
cudaFree(gtt[i]);
}
}
나는 동일한 노드 3 개 장치를 찾았지만, 두 번째 GPU 실행에 세그먼트 오류가 발생했습니다. 저는 4010의 CUDA 버전과 2.0의 계산 기능을 가지고 있습니다.
각 API 호출에 오류 검사를 추가해야합니다. 중요한 정보가 누락 될 수 있습니다. – talonmies
@ talonmies 나는 했어.하지만 같은 일로 끝났어. –
segfaults는 일반적으로 CPU 범위 밖의 메모리에 액세스하고 있음을 의미합니다. cudaMalloc을하기 전에 ptr gtt [i]를 출력하십시오. –