OpenACC를 사용하고 Tesla GPU에서 사용하기 위해 PGI 컴파일러로 컴파일 한 C++ 코드를 작성했습니다."잘못된 주소 공간"오류 디버그
경고없이 컴파일이 성공합니다.
이call to cuStreamSynchronize returned error 717: Invalid address space
call to cuMemFreeHost returned error 717: Invalid address space
인터넷이 문제가 자동으로 양탄자 아래에 휩쓸되도록 enabling unified memory을 제안하는 것보다 다른, 이것에 대해 많이 알고하지 않는 것 :
나는 두 가지 오류를 프로그램을 실행 얻을. 나는 그런 종류의 해결책이 아니다.
어떻게 디버깅해야합니까?
CPU에서만 실행되는 C++ 코드를 사용하면 gdb를 실행하고 역 추적을 수행하고 "아 하!"라고 말합니다.
하지만 지금은 코드 과 사이에 GPU와 데이터가 흐르고 있습니다. 나는 어떤 도구를 사용할 지조차 모른다.
대체적으로 문제가 없어 질 때까지 줄을 주석 처리하는 것이 좋습니다.하지만 너무 차선책으로 보입니다.
감사합니다. Mat! 이 문제를 테스트하기까지는 며칠이 걸리지 만 제안 된 주소로 문제가되는 코드 (재현 가능한 예일만큼 짧음)가 포함 된 이메일을 보냈습니다. – Richard
문제는 로컬 변수가 원자 단위로 사용된다는 것입니다. Atomics는 공유 메모리 또는 전역 메모리에서만 사용할 수 있습니다. 이 문제를 해결하고 코드 성능을 개선하기위한 제안 된 변경 사항이있는 업데이트 된 소스 파일을 보내 드렸습니다. –