효과적인 CUDA 디버깅을 위한 CUDA 커널 분리 소프트웨어 도구

인공지능, 빅데이터 처리 등 다양한 분야에서 GPU를 이용한 병렬 처리 방법이 보편화 되면서 GPU 기반 병렬 처리에 대한 중요성이 점차 증가하고 있다. 그러나 GPU 기반 병렬 처리 소프트웨어의 개발 과정에서 보편적으로 널리 사용되는 디버거(Nvidia NSight)는 병렬 처리 기본 단위인 CUDA 커널(kernel)이 여러 개 존재할 때 내부적인 문제로 인하여 효율적인 디버깅을 수행할 수 없는 상황이 빈번하게 발생한다. 본 논문에서는 이러한 문제를 해결하기 위해 실행 중인 전체 CUDA 소스 코드에서 디버깅이 필요한 커널만을...

Full description

Saved in:
Bibliographic Details
Published in디지털콘텐츠학회논문지 Vol. 21; no. 2; pp. 373 - 380
Main Authors 양정아(Jung Ah Yang), 박태정(Taejung Park)
Format Journal Article
LanguageKorean
Published 한국디지털콘텐츠학회 01.02.2020
Subjects
Online AccessGet full text
ISSN1598-2009
2287-738X
DOI10.9728/dcs.2020.21.2.373

Cover

More Information
Summary:인공지능, 빅데이터 처리 등 다양한 분야에서 GPU를 이용한 병렬 처리 방법이 보편화 되면서 GPU 기반 병렬 처리에 대한 중요성이 점차 증가하고 있다. 그러나 GPU 기반 병렬 처리 소프트웨어의 개발 과정에서 보편적으로 널리 사용되는 디버거(Nvidia NSight)는 병렬 처리 기본 단위인 CUDA 커널(kernel)이 여러 개 존재할 때 내부적인 문제로 인하여 효율적인 디버깅을 수행할 수 없는 상황이 빈번하게 발생한다. 본 논문에서는 이러한 문제를 해결하기 위해 실행 중인 전체 CUDA 소스 코드에서 디버깅이 필요한 커널만을 추출하고 실제 실행 상황에서 해당 커널에 입력되는 입력값을 추출해서 단위 테스트 수행을 자동화하는 소프트웨어 도구의 개발을 제안한다. 제안하는 도구는 개발 중인 CUDA 병렬 코드의 실행 흐름을 그대로 유지한 채로 디버깅이 필요한 특정 커널에 초점을 맞춰 디버깅을 수행할 수 있는 코드를 자동으로 생성한다. 본 논문에서는 제안하는 소프트웨어 도구의 구조와 원리를 소개하고 실제 NSight만으로 디버깅이 불가능한 사례에 적용하여 성공적으로 디버깅을 수행하는 사례를 소개한다. With the advent of artificial intelligence and big data analysis, the parallel processing technique based on the GPU has been playing a critical role in these fields. Unfortunately, the common debugger, NSight from Nvidia often fails to work when there are lots of CUDA kernels, which are basic parallel execution units due to internal limitations of NSight. In this paper, we present a software tool which can extract the kernel in the problem and its input information in the CUDA source code without affecting the original parallel execution of CUDA codes. We also introduce a case study where our software tool has been applied to the actual software development process for GPU-based parallel processing to prove the validity of the proposed unit tester. KCI Citation Count: 0
Bibliography:http://dx.doi.org/10.9728/dcs.2020.21.2.373
ISSN:1598-2009
2287-738X
DOI:10.9728/dcs.2020.21.2.373