라이프 게임을 OpenMP, CUDA로 구현했을 때의 벤치 마크

비교 내용



라이프 게임을 C++, OpenMP, CUDA를 사용하여 구현했을 때의 벤치마크입니다. 그리기 위해 OpenGL을 사용했습니다. 참고로 JavaScript를 사용했을 때의 수치도 실려 있습니다만, 알고리즘이 다르므로 참고 정도입니다.

CUDA 최적화 내용


  • 메모리 배치 (pinned memory)
  • Shared Memory
  • Stream (파이프 라인 화)
  • 메모리 복사 횟수 감소

  • 실행 환경


  • Core i7-6400 @3.4GHz
  • 4 cores (8 logical cores)

  • GeForce GTX 1070 @1.531GHz
  • 1920 CUDA Cores
  • 15 SMs
  • 256GByte/s (256 bit x 8Gbps)


  • 결과



    Generation Per Second (이 숫자가 클수록 빠름)


    크기
    512x512
    1024x1024
    2048 x 2048
    4096 x 4096
    8192 x 8192


    자바스크립트
    34
    9
    2.6
    0.63
    0

    C++
    500
    83
    19
    5.35
    1.2

    OpenMP
    1000
    250
    66
    19.61
    4.5

    CUDA
    1000
    1000
    250
    76.92
    18.18

    CUDA + Optimization
    1000
    1000
    1000
    125
    43.48


    세로축은 로그입니다.


    소스 코드 및 실행 결과 비디오



    Youtube Link to Youtube
    htps : // 기주 b. 코 m / 타케 - w / ぃ ふぇ め ふ

    좋은 웹페이지 즐겨찾기