2013-06-14 4 views
0

나는 둘 다 콘솔에 cout을 통해 작성하는 CUDA 응용 프로그램 세트를 보유하고 있습니다. VSight 및 NSight 플러그인이있는 호스트 시스템과 NSight 서비스가있는 대상 시스템이 있습니다. 그러나 콘솔 앱을 실행하면 실제로 대상 컴퓨터에서 실행됩니다 (말 그대로 콘솔을 팝업합니다).원격 NSight 세션에서 콘솔 출력을 어떻게 캡처합니까?

그래서 여기에 질문이 있습니다. 호스트에서 콘솔을 표시하고 대상에서 실행할 GPU 만 가져 오는 방법은 무엇입니까? 이것은 가능한가?

감사합니다.

답변

0

CUDA 응용 프로그램은 대상 컴퓨터에서 완전히 실행되므로 응용 프로그램의 콘솔이나 UI는 대상 컴퓨터에서만 볼 수 있습니다. VS 측 (호스트 시스템)의 GPU 코드에 중단 점을 설정할 수 있으며 중단되어야합니다.
응용 프로그램이 너무 빨리 종료되고 예상대로 커널을 시작하지 않는 경우 (그리고 중단 점에 도달하지 않은 경우) 대상 컴퓨터 (예 : CUDART)에 필요한 DLL을 모두 배포하지 않았기 때문일 수 있습니다.

+0

나는 모든 것을 이해합니다. 아직 내 문제가 남아 있습니다. –

1

짧은 대답은 현재 불가능하다는 것입니다. 대상의 응용 프로그램은 Nsight 모니터 프로세스에 의해 실행되지만 Nsight 모니터는 현재 출력을 호스트로 다시 전달하지 않습니다.
현재 유일한 옵션은 응용 프로그램의 출력을 대상에 캡처하여 어떻게 든 자기 자신을 돌보고 어떻게 든 호스트에 표시하는 것입니다.
이 기능이 중요한 경우 Nvidia 개발자 계정을 통해 기능 요청을 제출하는 것이 좋습니다.

+0

엄밀히 말하면 NVIDIA의 관심사는 아닙니다. 어쩌면 VS가 뭔가를 가지고 있다고 생각 했었어. (원격 디버깅과 관련이 없습니다.) –

+0

@DmitriNesteruk CUDA 디버깅을 수행 할 때 VS는 Nsight의 프론트 엔드 일 뿐이며 VS와 대상 시스템에서 실행되는 코드 사이에는 연결이 없습니다. 호스트가 동일한 시스템입니다. – RoBiK