DOI QR코드

DOI QR Code

Parallelization of CUSUM Test in a CUDA Environment

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

  • 손창환 (홍익대학교 컴퓨터공학과) ;
  • 박우열 (홍익대학교 컴퓨터공학과) ;
  • 김형균 (홍익대학교 컴퓨터공학과) ;
  • 한경숙 (한국산업기술대학교 컴퓨터공학과) ;
  • 표창우 (홍익대학교 컴퓨터공학과)
  • Received : 2015.03.18
  • Accepted : 2015.05.10
  • Published : 2015.07.15

Abstract

We have parallelized the cumulative sum (CUSUM) test of NIST's statistical random number test suite in a CUDA environment. Storing random walks in an array instead of in scalar variables eliminates data dependence. The change in data structure makes it possible to apply parallel scans, scatters, and reductions at each stage of the test. In addition, serial data exchanges between CPU and GPU are removed by migrating CPU's tasks to GPU. Finally we have optimized global memory accesses. The overall speedup is 23 times over the sequential version. Our results contribute to improving security of random numbers for cryptographic keys as well as reducing the time for evaluation of randomness.

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

Keywords

Acknowledgement

Supported by : 홍익대학교, 정보통신기술진흥센터

References

  1. A. Rukhin, et al. (2010, April), "A statistical test suite for random and pseudorandom number generators for cryptographic applications," NIST Special Publication 800-22 (with revision 1a) [Online]. Available: http://csrc.nist.gov/groups/ST/toolkit/rng/documents/SP800-22rev1a.pdf
  2. P. L'Ecuyer, et al., "TestU01: A C library for empirical testing of random number generators," ACM Transactions on Mathematical Software (TOMS), Vol. 33, No. 4, pp. 22:1-40, Aug. 2007.
  3. G. Marsaglia (1996), "DIEHARD: a battery of tests of randomness," [Online]. Available: http://www.stat.fsu.edu/pub/diehard/
  4. NVIDIA Corporation (2013, July), CUDA C PROGRAMMING GUIDE [Online]. Available: http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html
  5. F. Spitzer, Principles of Random Walk, 2nd Ed., Springer, Mar. 1, 2001.
  6. P. Revesz, Random walk in random and non-random environments, 3rd Ed., World Scientific Pub Co., May 6, 2013.
  7. Li, Zhiyuan, "Array privatization for parallel execution of loops," ACM International Conference on Supercomputing 25th Anniversary Volume, pp. 21-23, 2014.
  8. A. Suciu, et al., "Byte-oriented Efficient Implementation of the NIST Statistical Test Suite," Proc. of 2010 IEEE International Conference on Automation, Quality and Testing, Robotics, Cluj-Napoca, Romania, May 2010.
  9. A. Suciu, et al., "Statistical Testing of Random Number Sequences using Graphics Processing Units," IEEE Proc. of the Fourth Balkan Conference in Informatics, pp. 39-43, Sep. 2009.
  10. A. Suciu, et al., "Statistical Testing of Random Number Sequences using CUDA," IEEE Proc. of the IEEE International Conference on Intelligent Computer Communication and Processing, pp. 369-374, Aug. 2010.
  11. W. Park, et al., "Parallelization of NIST Statistical Randomness Test Suite in CUDA Environment," Proc. of the KIISE 2013 Fall Conference, Vol. 40, pp. 75-77, 2013. (in Korean)
  12. S. Sung, et al., "Parallelization of the NIST's Statistical Test Suite for Random Number Generators," Proc. of the KIISE 2012 Fall Conference, Vol. 39, No. 2(A), pp. 7-9, Nov. 2012. (in Korean)
  13. C. Son, et al., "Parallel Implementation of Random Excursions Test in CUDA Environment," Journal of KIISE : Computer Systems and Theory, Vol. 41, No. 2, pp. 57-66, 2014. (in Korean)
  14. C. Son., (2015), "Parallel Implementation of Random Excursions Test and Random Excursions Variant Test in CUDA Environment," Hongik University, Korea. (in Korean)
  15. A. Suciu, et al., "Parallel implementation of the NIST Statistical Test Suite," Intelligent Computer Communication and Processing (ICCP), 2010 IEEE International Conference on. IEEE, pp. 363-368, 2010.
  16. D. B. Kirk and W. W. Hwu, Programming Massively Parallel Processors: A Hands-on Approach, 2nd Ed., Morgan Kaufmann, Dec. 28, 2012.
  17. M. McCool, et al., Structured Parallel Programming: Patterns for Efficient Computation, Morgan Kaufmann, Jul. 9, 2012.