CUDA 환경에서 CUSUM 검증의 병렬화

NIST통계적 난수 검증 모음에 속한 누적 합(CUSUM) 검증을 CUDA 환경에서 병렬화하였다. 배열 사유화를 적용하여 스칼라 변수에 저장하던 랜덤 워크(random walk) 값을 배열 변수에 저장하여 데이터 의존성을 제거하였다. 자료 구조 변경에 따라 알고리즘 각 단계에 병렬 스캔, 스캐터 및 병렬축약 적용이 가능하게 되었다. 또한 CPU를 사용하여 진행되던 부분을 GPU가 담당하게 하여 두 프로세서 사이의 데이터 이동으로 인해 발생하는 직렬화를 해소하였다. 마지막으로 전역 메모리 접근을 최적화하여 전체적으로 순차적 구현 대비 약 23배에 달하는 성능 향상을 달성하였다. 이 결과는 검증 모음의 실행시간 단축과 더불어 암호 키 보안 향상을 위한 난수 연구에 기여할 것으로 예상된다.