This paper suggests a visual debugging plaftorm based on the game engine, Unity3D for massive parallel processing routines implemented in CUDA. In general, it is tiresome to debug or check the accuracy of numerical geometry information results calculated in a parallel way by GPU; usually, developers would pick and check each numerical value by rummaging overwhelming lines of seemingly meaningless numbers. This manual process is less productive and time-consuming. Also, it is not easy to produce some continuous movements of geometry information to check the validity of implemented CUDA codes for realtime geometry processing applications. To solve those problems, this paper presents a way to use Unity3D game engine to visually and interactively debug CUDA implementations. Also, some practical test results are presented with discussions on limitations of Unity3D as a CUDA debugging platform.
프로그램 개발에 있어 디버깅은 매우 중요한 요소이다. 개발 과정에서 디버깅을 통해 버그를 대부분 잡을 수 있지만 제품이 출시된 이후에도 프로그램 버그를 잡을 수 있는 시스템이 필요하다. 이를 위해 포스트 모템 디버깅에 대해 살펴보고 프로세스 덤프에 대해 논의한다. 또한 프로그램이 다운되었는데 프로세스 덤프가 생성되지 않는 상황에 대해 원인을 분석해 보도록 한다. 아울러 검증된 예외 핸들러라 하더라도 프로세스 덤프를 남기지 못하는 상황을 이해하고 이런 상황을 타개하기 위해 EHModule(Exception Handler Module)를 구현한다. 구현한 EHModule의 핵심 루틴을 설명하고 해당 모듈의 특징 및 효용성에 대해 언급한다.