GPGPU Sim
GPGPU Sim (of English " G eneral P urpose G raphics P rocessing U nit - Sim ulator") is a software system for the simulation of newly developed graphics cards and computer processors .
As the GPGPU part of the name suggests, the simulation system is particularly suitable for simulating newer graphics processors that are designed to execute applications that go beyond graphics applications and are of a more general nature. This includes computationally intensive programs from the fields of science and business.
GPGPU-Sim makes it possible to carry out functional and temporal simulations in which both the result of a calculation is generated and the time required for this is determined.
Details
GPGPU-Sim is therefore mainly used for research and development in the field of computer architecture . The aim is to select, configure and connect individual components such as memory ( RAM / DRAM ), caches , connecting lines as well as processors and their components in such a way that the overall system is optimized in terms of speed of execution, fault tolerance, energy efficiency or overall costs.
The simulation system can be used for
- Testing of variants of existing graphics processors without replicating them in hardware,
- Research in the field of heterogeneous or asymmetrical multi-core processors, i.e. processors that are composed of processors of different types.
In particular, architectures such as Nvidia's Fermi and GT200 are simulated , on which programs written in the programming languages CUDA or OpenCL can be executed. Since these systems belong to the current top group, research into variants is particularly interesting for science and industry.
GPGPU-Sim runs on Linux platforms such as B. Ubuntu . The current version is 3.x.
GPGPU-Sim is freely available as source code under a BSD license . The sources are programmed in C ++ . The system is configured using configuration files. Further adjustments are possible by changing the source code.
The simulator has 3 main components:
- Functional simulation component. For the functional simulation, the application to be executed is translated internally by OpenCL / Cuda into the PTX language.
- Component for the temporal simulation. This models the following internal components: shader cores, caches, connection network of the components, memory controllers, DRAM, but not CPU and graphics-specific hardware.
- Component for simulating the network that connects the internal components.
In the case of temporal simulation, the simulation system is considerably slower than the simulated graphics card, but achieves good simulation accuracy values. Due to this speed difference, GPGPU-Sim is primarily suitable for experimental simulation and only to a very limited extent for virtualizing a graphics card.
Multi2Sim
The simulation framework Multi2Sim , which allows the simulation of CPU and GPU, is comparable to GPGPU-Sim . Unlike GPGPU-Sim, Multi2Sim's GPU simulator is used specifically to simulate applications written in the OpenCL programming language for AMD graphics cards.
literature
- Ali Bakhoda, George Yuan, Wilson WL Fung, Henry Wong, Tor M. Aamodt: Analyzing CUDA Workloads Using a Detailed GPU Simulator , In: proceedings of the IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS) , pp. 163-174, Boston, MA, April 26-28, 2009.
Web links
- Tutorial slides (PDF; 10.3 MB)
- Manual for GPGPU-Sim 3
- Source code
- Google discussion group