GPU 코드 디버깅
그래픽 처리 장치 (GPU)에서 실행 되는 c + + 코드를 디버깅할 수 있습니다.Visual Studio 지 원하는 디버깅 GPU 경쟁 검색을 프로세스를 시작 하 고 연결 및 통합 디버깅 창에 포함 되어 있습니다.
지원 되는 플랫폼
Debugging is supported on Windows 7, Windows 8, Windows Server 2008 R2, and Windows Server 2012.소프트웨어 에뮬레이터에서 디버깅을 위한 Windows 8, 또는 Windows Server 2012 필요 합니다.하드웨어를 디버깅 하는 데 사용 중인 그래픽 카드의 드라이버를 설치 해야 합니다.모든 하드웨어 공급 업체가 모든 디버거 기능을 구현합니다.제한 공급 업체 설명서를 참조 하십시오.
[!참고]
Visual Studio 지 원하는 GPU를 디버깅 하려면 독립 하드웨어 공급 업체 자신의 드라이버 대상을 확인 하 고 VSD3DDebug 인터페이스를 구현 하는 DLL을 만들어야 합니다.
GPU 디버깅 구성
디버거 코드 CPU와 GPU의 코드를 동일한 응용 프로그램 실행 하는 분리할 수 없습니다.기본적으로 CPU 코드에 디버거를 중단 합니다.GPU의 코드를 디버깅 하려면 다음 두 단계 중 하나를 사용 하십시오.
에 형식 디버깅 목록에 표준 도구 모음에서 선택 GPU만.
솔루션 탐색기, 프로젝트 바로 가기 메뉴에서 선택 속성.에 속성 페이지 대화 상자에서 디버깅, 선택한 다음 GPU만 에 디버거 형식 목록.
시작 하 고 응용 프로그램에 연결
시작 및 중지 GPU를 디버깅 하려면 Visual Studio 디버깅 명령을 사용할 수 있습니다.자세한 내용은 Visual Studio 디버거 시작, 중단, 탐색 및 중지을 참조하십시오.GPU 코드 해당 프로세스를 실행 하는 경우 GPU 디버거가 실행 중인 프로세스에만 첨부할 수도 있습니다.자세한 내용은 방법: 실행 중인 프로세스에 연결을 참조하십시오.
현재 타일 커서 및 커서까지 실행을 실행
GPU에서 디버깅 하는 경우 커서 위치까지 실행 하기 위한 두 가지 옵션이 있습니다.두 옵션에 대 한 명령은 코드 편집기의 바로 가기 메뉴에서 사용할 수 있습니다.
커서까지 실행 명령은 커서 위치에 도달 하 고 다음 중단 될 때까지 응용 프로그램을 실행 합니다.이 커서를 현재 스레드 실행 의미 하지는 않습니다. 대신, 커서 지점에 도달 하는 첫 번째 스레드가 중단을 트리거하 게 의미 합니다.자세한 내용은 [NIB] 12/13 방법: 커서 위치까지 실행을 참조하십시오.
커서 현재 타일 실행 명령은 모든 스레드가 현재 바둑판의 커서와 다음 나누기에 도달할 때까지 응용 프로그램을 실행 합니다.
Windows 디버깅
특정 디버깅 창을 사용 하 여 검사, 플래그를 고 GPU 스레드를 동결할 수 있습니다.자세한 내용은 다음을 참조하십시오.
스레드와 프로세스(디버그 위치 도구 모음)
데이터 동기화 예외
디버거에서 실행 하는 동안 여러 데이터 동기화 조건을 식별할 수 있습니다.조건이 검색 되 면 디버거에서 중단 상태가 됩니다.두 가지 옵션이 있습니다-중단 또는 계속.사용 하는 예외 대화 상자에서 구성할 수 있습니다 여부에 디버거에서 이러한 조건을 검색 하 고 또한 어떤 조건을에 대 한 중단 됩니다.자세한 내용은 예외 처리(디버깅)을 참조하십시오.사용할 수도 있습니다는 옵션 대화 상자에서 기록 되는 데이터는 데이터의 값을 변경 되지 않는 경우 디버거에서 예외 무시 하도록 지정 합니다.자세한 내용은 옵션 대화 상자, 디버깅, 일반을 참조하십시오.
문제 해결
액셀러레이터 키를 지정합니다.
코드를 실행 하는 경우 GPU의 코드에 중단점 적중만 accelerator::direct3d_ref (REF) 액셀러레이터 키입니다.코드에서 바로 연결을 지정 하지 않으면 REF 가속기 자동으로 선택 되어 있는 가속기 형식 디버깅 프로젝트 속성에서.액셀러레이터 키 코드를 명시적으로 선택 하는 경우 디버깅 하는 동안 REF 가속기를 사용 하지 않습니다 하 고 GPU 하드웨어 디버깅 지원 되지 않은 중단점은 적중 되지 않습니다.REF 가속기를 사용 하 여 디버깅 하는 동안 코드를 작성 하 여이 문제를 해결할 수 있습니다.자세한 내용은 프로젝트 속성 및 accelerator 및 accelerator_view 개체 사용 및 C++ 디버그 구성에 대한 프로젝트 설정.
조건부 중단점
조건부 중단점 코드 GPU에서에서 지원 되지만 모든 식 장치에서 확인할 수 있습니다.식 장치에서 확인할 수 없는 디버거를 계산 됩니다.디버거 장치 보다 느리게 실행 하 게 될 것입니다.
오류: 디버깅 선택한 액셀러레이터 키 형식이 구성 문제가 있습니다.
프로젝트 설정 및 디버깅 하는 pc 구성 사이 불일치가 있을 경우이 오류가 발생 합니다.자세한 내용은 C++ 디버그 구성에 대한 프로젝트 설정을 참조하십시오.
오류: 디버깅 선택한 액셀러레이터 키 형식에 대 한 디버그 드라이버는 대상 컴퓨터에 설치 되지 않았습니다.
원격 PC에 디버깅 하는 경우이 오류가 발생 합니다.원격 PC에 드라이버 설치 여부 디버거 런타임 전까지 알 수 없습니다.드라이버는 그래픽 카드의 제조업체에서 사용할 수 있습니다.
오류: 원격 사이트에서 제한 시간 검색 및 복구 (TDR) 비활성화 해야 합니다.
C + + AMP 계산 Windows 제한 시간 검색 및 복구 (TDR) 과정에서 설정 된 기본 시간 간격을 초과 하는 것이 가능 합니다.이런 경우 계산이 취소 되 고 데이터가 손실 됩니다.자세한 내용은 c + + AMP에 처리 TDRs.