Difference between revisions of "Rodinia:Accelerating Compute-Intensive Applications with Accelerators"

From Rodinia
Jump to: navigation, search
(The Rodinia Benchmark Suite)
(The Rodinia Benchmark Suite, version 3.0 (Version history))
 
(62 intermediate revisions by 5 users not shown)
Line 1: Line 1:
A vision of heterogeneous computer systems that incorporate diverse <br/>
+
A vision of heterogeneous computer systems that incorporate diverse accelerators and automatically select the best <br/>
accelerators and automatically select the best computational unit for <br/>
+
computational unit for a particular task is widely shared among researchers and many industry analysts; however, <br/>
a particular task is widely shared amongresearchers and many industry <br/>
+
there are no agreed-upon benchmarks to support the research needed in the development of such a platform. There <br/>
analysts; however, there are no agreed-upon benchmarks to support the <br/>
+
are many suites for parallel computing on general-purpose CPU architectures, but accelerators fall into a gap that is <br/>
research needed in the development of such a platform. There are many <br/>
+
not covered by previous benchmark development. Rodinia is released to address this concern.
suites for parallel computing on general-purpose CPU architectures,<br/>
+
but accelerators fall into a gap that is not covered by current benchmark <br/>
+
suites or benchmark development.  
+
  
===The Rodinia Benchmark Suite===
+
<div style="font-size:150%;">
  
Rodinia is designed for heterogeneous computing infrastructures, and, <br/>
+
* [[Downloads | Download]]
using OpenMP and CUDA, targets both GPUs and multicore CPUs. <br/>
+
The suite currently consists of 6 applications and 7 kernels. They have <br/>
+
been parallelized with OpenMP for multicore CPUs and with CUDA for <br/>
+
GPUs. We have been preparing for the OpenCL release.
+
  
Current Rodinia applications:
+
</div>
 +
===The Rodinia Benchmark Suite, version 3.1 [[TechnicalDoc |(Version history)]]===
 +
 
 +
Rodinia is designed for heterogeneous computing infrastructures with OpenMP, OpenCL and CUDA implementations. <br/>
  
 
<TABLE border="1">  
 
<TABLE border="1">  
<TR><TH WIDTH="150">Applications<TH WIDTH="150">Dwarves<TH WIDTH="150">Domains<TH WIDTH="100">Parallel Model<TH WIDTH="100">Incre. Ver.  
+
<TR><TH WIDTH="150">Applications<TH WIDTH="150">Dwarves<TH WIDTH="150">Domains<TH WIDTH="120">Parallel Model<TH WIDTH="80">Incre. Ver.  
<TR><TD>[[Leukocyte | Leukocyte*]]<TD>Structured Grid<TD>Medical Imaging<TD ALIGN="center">CUDA, OMP<TD ALIGN="center">Y
+
<TR><TD>[[Leukocyte | Leukocyte]]<TD>Structured Grid<TD>Medical Imaging<TD ALIGN="center">CUDA, OMP, OCL<TD ALIGN="center"> &#10004;
<TR><TD>[[Heart Wall | Heart Wall*]]<TD>Structured Grid<TD>Medical Imaging<TD ALIGN="center">CUDA, OMP<TD ALIGN="center">
+
<TR><TD>[[Heart Wall | Heart Wall]]<TD>Structured Grid<TD>Medical Imaging<TD ALIGN="center">CUDA, OMP, OCL<TD ALIGN="center">
 
<TR><TD>[[MUMmerGPU]]<TD>Graph Traversal<TD>Bioinformatics<TD ALIGN="center">CUDA, OMP<TD ALIGN="center">
 
<TR><TD>[[MUMmerGPU]]<TD>Graph Traversal<TD>Bioinformatics<TD ALIGN="center">CUDA, OMP<TD ALIGN="center">
<TR><TD>[[CFD Solver]]<TD>Unstructured Grid<TD>Fluid Dynamics<TD ALIGN="center">CUDA, OMP<TD ALIGN="center">
+
<TR><TD>[[CFD Solver | CFD Solver<sup>1</sup>]]<TD>Unstructured Grid<TD>Fluid Dynamics<TD ALIGN="center">CUDA, OMP, OCL<TD ALIGN="center">
<TR><TD>[[LU Decomposition | LU Decomposition*]]<TD> Dense Linear Algebra<TD>Linear Algebra<TD ALIGN="center">CUDA, OMP<TD ALIGN="center">Y
+
<TR><TD>[[LU Decomposition | LU Decomposition]]<TD> Dense Linear Algebra<TD>Linear Algebra<TD ALIGN="center">CUDA, OMP, OCL<TD ALIGN="center">&#10004;
 
<TR><TD>[[HotSpot]]<TD>Structured Grid<TD>Physics Simulation<TD ALIGN="center">CUDA, OMP, OCL<TD ALIGN="center">
 
<TR><TD>[[HotSpot]]<TD>Structured Grid<TD>Physics Simulation<TD ALIGN="center">CUDA, OMP, OCL<TD ALIGN="center">
<TR><TD>[[Back Propagation]]<TD>Unstructured Grid<TD>Pattern Recognition<TD ALIGN="center">CUDA, OMP<TD ALIGN="center">
+
<TR><TD>[[Back Propagation]]<TD>Unstructured Grid<TD>Pattern Recognition<TD ALIGN="center">CUDA, OMP, OCL<TD ALIGN="center">
<TR><TD>[[Needleman-Wunsch]]<TD>Dynamic Programming<TD>Bioinformatics<TD ALIGN="center">CUDA, OMP, OCL<TD ALIGN="center">Y
+
<TR><TD>[[Needleman-Wunsch]]<TD>Dynamic Programming<TD>Bioinformatics<TD ALIGN="center">CUDA, OMP, OCL<TD ALIGN="center">&#10004;
 
<TR><TD>[[K-Means | Kmeans]]<TD>Dense Linear Algebra<TD>Data Mining<TD ALIGN="center">CUDA, OMP, OCL<TD ALIGN="center">
 
<TR><TD>[[K-Means | Kmeans]]<TD>Dense Linear Algebra<TD>Data Mining<TD ALIGN="center">CUDA, OMP, OCL<TD ALIGN="center">
<TR><TD>[[Graph traversal | Breadth-First Search]]<TD>Graph Traversal<TD>Graph Algorithms<TD ALIGN="center">CUDA, OMP, OCL<TD ALIGN="center">
+
<TR><TD>[[Graph traversal | Breadth-First Search<sup>1</sup>]]<TD>Graph Traversal<TD>Graph Algorithms<TD ALIGN="center">CUDA, OMP, OCL<TD ALIGN="center">
<TR><TD>[[SRAD]]<TD>Structured Grid<TD>Image Processing<TD ALIGN="center">CUDA, OMP<TD ALIGN="center">Y
+
<TR><TD>[[SRAD]]<TD>Structured Grid<TD>Image Processing<TD ALIGN="center">CUDA, OMP, OCL<TD ALIGN="center">&#10004;
<TR><TD>[[Streamcluster]]<TD>Dense Linear Algebra<TD>Data Mining<TD ALIGN="center">CUDA, OMP<TD ALIGN="center">
+
<TR><TD>[[Streamcluster | Streamcluster<sup>1</sup>]]<TD>Dense Linear Algebra<TD>Data Mining<TD ALIGN="center">CUDA, OMP, OCL<TD ALIGN="center">
<TR><TD>[[Particle Filter]]<TD>Structured Grid<TD>Medical Imaging<TD ALIGN="center">CUDA, OMP<TD ALIGN="center">
+
<TR><TD>[[Particle Filter]]<TD>Structured Grid<TD>Medical Imaging<TD ALIGN="center">CUDA, OMP, OCL<TD>
 +
<TR><TD>[[Shortest Path | PathFinder]]<TD>Dynamic Programming<TD>Grid Traversal<TD ALIGN="center">CUDA, OMP, OCL<TD ALIGN="center">
 +
<TR><TD>[[Gaussian Elimination]]<TD>Dense Linear Algebra<TD>Linear Algebra<TD ALIGN="center">CUDA, OCL<TD ALIGN="center">
 +
<TR><TD>[[Nearest Neighbor | k-Nearest Neighbors]]<TD>Dense Linear Algebra<TD>Data Mining<TD ALIGN="center">CUDA, OMP, OCL<TD ALIGN="center">
 +
<TR><TD>[[LavaMD | LavaMD<sup>2</sup>]]<TD>N-Body<TD>Molecular Dynamics<TD ALIGN="center">CUDA, OMP, OCL<TD ALIGN="center">
 +
<TR><TD>[[Myocyte | Myocyte]]<TD>Structured Grid<TD>Biological Simulation<TD ALIGN="center">CUDA, OMP, OCL<TD>
 +
<TR><TD>[[B+ Tree| B+ Tree]]<TD>Graph Traversal<TD>Search<TD ALIGN="center">CUDA, OMP, OCL<TD>
 +
<TR><TD>[[GPUDWT]]<TD>Spectral Method<TD>Image/Video Compression<TD ALIGN="center">CUDA, OCL<TD>
 +
<TR><TD>[[Hybrid Sort]]<TD>Sorting<TD>Sorting Algorithms<TD ALIGN="center">CUDA, OCL<TD>
 +
<TR><TD>[[Hotspot3D]]<TD>Structured Grid<TD>Physics Simulation<TD ALIGN="center">CUDA, OCL, OMP<TD ALIGN="center">Hotspot for 3D IC
 +
<TR><TD>[[Huffman]]<TD>Finite State Machine<TD>Lossless data compression<TD ALIGN="center">CUDA, OCL<TD>
 
</TABLE>
 
</TABLE>
  
Other applications (some with CUDA only):
+
Other applications under evaluation:
  
 
<TABLE border="1">
 
<TABLE border="1">
<TR><TH WIDTH="150">Applications<TH WIDTH="150">Dwarves<TH WIDTH="150">Domains<TH WIDTH="100">Parallel Model
+
<TR><TH WIDTH="150">Applications<TH WIDTH="150">Dwarves<TH WIDTH="150">Domains<TH WIDTH="120">Parallel Model<TH WIDTH="400">Comment
<TR><TD>[[SQL Database]]<TD>Map Reduce<TD>Relational Database<TD ALIGN="center">CUDA
+
<TR><TD>[[SQL Database | SQLite Select]]<TD>Map Reduce<TD>Relational Database<TD ALIGN="center">CUDA<TD>This benchmark needs an OCL version and also may be too simple
<TR><TD>[[Nearest Neighbor]]<TD>Dense Linear Algebra<TD>Data Mining<TD ALIGN="center">CUDA, OMP, OCL
+
<TR><TD>[[Cell | 3D Stencil]]<TD>Structured Grid<TD>Cellular Automation<TD ALIGN="center">CUDA<TD>Will be superseded by a more sophisticated 3D benchmark
<TR><TD>[[Gaussian Elimination]]<TD>Dense Linear Algebra<TD>Linear Algebra<TD ALIGN="center">CUDA
+
<TR><TD>[[Cell]]<TD>Structured Grid<TD>Cellular Automation<TD ALIGN="center">CUDA
+
<TR><TD>[[Shortest Path | PathFinder]]<TD>Dynamic Programming<TD>Grid Traversal<TD ALIGN="center">CUDA
+
<TR><TD>[[Hybrid Sort]]<TD>Sorting<TD>Sorting Algorithms<TD ALIGN="center">CUDA
+
<TR><TD>[[Myocyte | Myocyte*]]<TD>Structured Grid<TD>Biological Simulation<TD ALIGN="center">CUDA, OMP
+
 
</TABLE>
 
</TABLE>
  
New Rodinia applications coming soon:
+
<em>
 +
<sup>1</sup>Ana Lucia Varbanescu and Jianbin Fang, Delft University of Technology contributed the OpenCL version.
 +
</em>
  
<TABLE border="1">
+
<em>
<TR><TH WIDTH="150">Applications<TH WIDTH="150">Dwarves<TH WIDTH="150">Domains<TH WIDTH="100">Parallel Model
+
<sup>2</sup>In collaboration with Lawrence Livermore National Laboratory.
<TR><TD>[[LavaMD | LavaMD*]]<TD>Structured Grid<TD>Molecular Dynamics<TD ALIGN="center">CUDA, OMP
+
</em>
</TABLE>
+
  
The applications(*) are relatively hard for compilers to analyze and <br/>
+
===License===
generate efficient GPU codes.
+
  
===Application Download===
+
Please read the [http://www.cs.virginia.edu/~kw5na/license.htm Rodinia license].
  
Please read the [http://www.cs.virginia.edu/~sc5nf/license.htm license] file.
+
Several applications/libraries come with their own [http://www.cs.virginia.edu/~kw5na/license_list.htm licenses].  
  
 
Also, if your use of Rodinia results in a publication, please cite:  
 
Also, if your use of Rodinia results in a publication, please cite:  
  
S. Che, M. Boyer, J. Meng, D. Tarjan, J. W. Sheaffer, S.-H. Lee, and <br/>
+
[1] S. Che, M. Boyer, J. Meng, D. Tarjan, J. W. Sheaffer, S.-H. Lee, and K. Skadron. <br/>
K. Skadron. Rodinia: A Benchmark Suite for Heterogeneous Computing. <br/>
+
Rodinia: A Benchmark Suite for Heterogeneous Computing. In Proceedings of the IEEE <br/>
In Proceedings of the IEEE International Symposium on Workload <br/>
+
International Symposium on Workload Characterization (IISWC), pp. 44-54, Oct. 2009.
Characterization (IISWC), pp. 44-54, Oct. 2009.([http://www.cs.virginia.edu/~skadron/Papers/rodinia_iiswc09.pdf pdf])
+
  
* [[Downloads | Download]]
+
[2] S. Che, J. W. Sheaffer, M. Boyer, L. G. Szafaryn, L. Wang, and K. Skadron. <br/>
 +
A Characterization of the Rodinia Benchmark Suite with Comparison to Contemporary <br/>
 +
CMP Workloads.  In Proceedings of the IEEE International Symposium on Workload <br/>
 +
Characterization, Dec. 2010.
  
<em> This work is supported by NSF grant nos. IIS-0612049, CNS-0916908 and CNS-0615277, a grant from the SRC under task no. 1607, and grants from NVIDIA Research and NEC labs. </em>
+
<em> This work is supported by NSF grant nos. IIS-0612049, CNS-0916908 and CNS-0615277, a grant from the SRC under task no. 1607, and grants from AMD, NEC labs, and NVIDIA Research.  
 +
</em>

Latest revision as of 04:14, 13 December 2015

A vision of heterogeneous computer systems that incorporate diverse accelerators and automatically select the best
computational unit for a particular task is widely shared among researchers and many industry analysts; however,
there are no agreed-upon benchmarks to support the research needed in the development of such a platform. There
are many suites for parallel computing on general-purpose CPU architectures, but accelerators fall into a gap that is
not covered by previous benchmark development. Rodinia is released to address this concern.

The Rodinia Benchmark Suite, version 3.1 (Version history)

Rodinia is designed for heterogeneous computing infrastructures with OpenMP, OpenCL and CUDA implementations.

ApplicationsDwarvesDomainsParallel ModelIncre. Ver.
LeukocyteStructured GridMedical ImagingCUDA, OMP, OCL
Heart WallStructured GridMedical ImagingCUDA, OMP, OCL
MUMmerGPUGraph TraversalBioinformaticsCUDA, OMP
CFD Solver1Unstructured GridFluid DynamicsCUDA, OMP, OCL
LU Decomposition Dense Linear AlgebraLinear AlgebraCUDA, OMP, OCL
HotSpotStructured GridPhysics SimulationCUDA, OMP, OCL
Back PropagationUnstructured GridPattern RecognitionCUDA, OMP, OCL
Needleman-WunschDynamic ProgrammingBioinformaticsCUDA, OMP, OCL
KmeansDense Linear AlgebraData MiningCUDA, OMP, OCL
Breadth-First Search1Graph TraversalGraph AlgorithmsCUDA, OMP, OCL
SRADStructured GridImage ProcessingCUDA, OMP, OCL
Streamcluster1Dense Linear AlgebraData MiningCUDA, OMP, OCL
Particle FilterStructured GridMedical ImagingCUDA, OMP, OCL
PathFinderDynamic ProgrammingGrid TraversalCUDA, OMP, OCL
Gaussian EliminationDense Linear AlgebraLinear AlgebraCUDA, OCL
k-Nearest NeighborsDense Linear AlgebraData MiningCUDA, OMP, OCL
LavaMD2N-BodyMolecular DynamicsCUDA, OMP, OCL
MyocyteStructured GridBiological SimulationCUDA, OMP, OCL
B+ TreeGraph TraversalSearchCUDA, OMP, OCL
GPUDWTSpectral MethodImage/Video CompressionCUDA, OCL
Hybrid SortSortingSorting AlgorithmsCUDA, OCL
Hotspot3DStructured GridPhysics SimulationCUDA, OCL, OMPHotspot for 3D IC
HuffmanFinite State MachineLossless data compressionCUDA, OCL

Other applications under evaluation:

ApplicationsDwarvesDomainsParallel ModelComment
SQLite SelectMap ReduceRelational DatabaseCUDAThis benchmark needs an OCL version and also may be too simple
3D StencilStructured GridCellular AutomationCUDAWill be superseded by a more sophisticated 3D benchmark

1Ana Lucia Varbanescu and Jianbin Fang, Delft University of Technology contributed the OpenCL version.

2In collaboration with Lawrence Livermore National Laboratory.

License

Please read the Rodinia license.

Several applications/libraries come with their own licenses.

Also, if your use of Rodinia results in a publication, please cite:

[1] S. Che, M. Boyer, J. Meng, D. Tarjan, J. W. Sheaffer, S.-H. Lee, and K. Skadron.
Rodinia: A Benchmark Suite for Heterogeneous Computing. In Proceedings of the IEEE
International Symposium on Workload Characterization (IISWC), pp. 44-54, Oct. 2009.

[2] S. Che, J. W. Sheaffer, M. Boyer, L. G. Szafaryn, L. Wang, and K. Skadron.
A Characterization of the Rodinia Benchmark Suite with Comparison to Contemporary
CMP Workloads. In Proceedings of the IEEE International Symposium on Workload
Characterization, Dec. 2010.

This work is supported by NSF grant nos. IIS-0612049, CNS-0916908 and CNS-0615277, a grant from the SRC under task no. 1607, and grants from AMD, NEC labs, and NVIDIA Research.