병렬 연산을 위한 가속 디바이스(accelerator)들이 출현하면서, 이기종 컴퓨팅(heterogeneous computing)의 성능 측정을 위한 벤치마크도 필요해졌다. Parboil 벤치마크와 더불어 GPU성능 측정을 위해 활용되는 Rodinia 벤치마크는 University of Virginia에서 연구되었고, (IISWC '09) Rodinia : A Benchmark Suite for Heterogeneous Computing 이라는 논문을 통해 소개되었다. 논문의 내용을 바탕으로 Rodinia의 특징에 대하여 생각해본다.
https://dl.acm.org/citation.cfm?id=1680782
Rodinia는 GPU와 멀티코어 CPU에서 병렬처리(parallelism)와 데이터 공유특성을 잘 드러내는 애플리케이션을 Berkeley dwarves에 따라 선택하여 구성되었다. 여기서 Dwarf는 연산과 통신 패턴(pattern of computation and communication)을 찾아낼 수 있는 알고리즘 방법론을 의미한다. 컴퓨터 구조, 병렬 컴퓨팅, 분석전문가를 포함한 여러 분야의 전문가들은 병렬 아키텍처와 새로운 프로그래밍 모델을 개발할 수 있도록 13개의 Dwarf 묶음을 설계하였다. Berkeley에서 연구된 dwarf 묶음을 실행할 때 나타나는 성능을 통해, 새로 연구되는 아키텍처 및 애플리케이션의 실제 성능을 예상해 볼 수 있었다. 2009년 당시(실제로는 2008년 소개되었던 벤치마크를 발전시켰다)에는 9개의 애플리케이션이 포함되어 있었고, 현재의 최신버전인 Rodinia 3.1에는 CUDA 성능 측정을 위한 총 23개의 애플리케이션이 포함되어 있다.
https://rodinia.cs.virginia.edu/doku.php?id=start
Rodinia의 workload는 서로 다른 종류의 병렬성(parallelism), 데이터 액세스 패턴, 데이터 공유 특성을 가지고 있다. 또 다양한 영역의 애플리케이션을 다루고 있으며, 비록 각 애플리케이션이 동인한 dwarf 기준으로 선택되었어도 실제 특성은 다르다. 마지막으로 애플리케이션의 입력 데이터 크기는 유연하게 선택하여 다양한 실험을 수행할 수 있다.
참고로 Rodinia 페이지에 따르면 현재 dwarf는 ( structured grid / unstructured grid / graph traversal / dense linear algebra / dynamic programming / N-body / sorting / finite state machine )로 8개이고, 애플리케이션의 도메인은 이미지 처리, 유체역학, 분자동역학, 그래프 알고리즘 등으로 여러 영역에 걸쳐 선택되었음을 알 수 있다.
발표 당시의 논문을 보면 Rodinia 벤치마크는 다음의 특성들을 멀티코어 CPU와 매니코어 GPU에서 비교하는 것에 중점을 뒀음을 알 수 있다.
1) parallelization and speedup
2) computation vs. communication
3) synchronization
4) power consumption
실험을 위해 Rodinia 메인 페이지에 링크된 다운로드 페이지에서 벤치마크를 받아도 좋고, 다른 연구자들이 올려놓은 github 페이지를 이용해도 좋을 것 같다.
https://github.com/yuhc/gpu-rodinia
단, 위의 깃헙페이지에는 data가 빠져 있어서 Julia를 사용하기 위해 포팅한 다음 깃헙페이지에서 데이터를 받아왔다.
https://github.com/JuliaParallel/rodinia
'CUDA 프로그래밍' 카테고리의 다른 글
SAXPY(Single-precision A-X Plus Y) (0) | 2020.03.03 |
---|---|
MPS란? (0) | 2020.01.29 |
Unified memory를 사용할 때, 공유변수의 동작 예제 (0) | 2020.01.08 |
PTX 어셈블리를 활용하여 실행 중인 SM 확인하기 (1) | 2019.10.28 |
CUDA Programming Guide 요약 - 2. Programming Mode (0) | 2019.10.26 |
댓글