7 research outputs found
An Evaluation and Comparison of GPU Hardware and Solver Libraries for Accelerating the OPM Flow Reservoir Simulator
Realistic reservoir simulation is known to be prohibitively expensive in
terms of computation time when increasing the accuracy of the simulation or by
enlarging the model grid size. One method to address this issue is to
parallelize the computation by dividing the model in several partitions and
using multiple CPUs to compute the result using techniques such as MPI and
multi-threading. Alternatively, GPUs are also a good candidate to accelerate
the computation due to their massively parallel architecture that allows many
floating point operations per second to be performed. The numerical iterative
solver takes thus the most computational time and is challenging to solve
efficiently due to the dependencies that exist in the model between cells. In
this work, we evaluate the OPM Flow simulator and compare several
state-of-the-art GPU solver libraries as well as custom developed solutions for
a BiCGStab solver using an ILU0 preconditioner and benchmark their performance
against the default DUNE library implementation running on multiple CPU
processors using MPI. The evaluated GPU software libraries include a manual
linear solver in OpenCL and the integration of several third party sparse
linear algebra libraries, such as cuSparse, rocSparse, and amgcl. To perform
our bench-marking, we use small, medium, and large use cases, starting with the
public test case NORNE that includes approximately 50k active cells and ending
with a large model that includes approximately 1 million active cells. We find
that a GPU can accelerate a single dual-threaded MPI process up to 5.6 times,
and that it can compare with around 8 dual-threaded MPI processes
A Survey and Evaluation of FPGA High-Level Synthesis Tools
High-level synthesis (HLS) is increasingly popular for the design of high-performance and energy-efficient heterogeneous systems, shortening time-to-market and addressing today's system complexity. HLS allows designers to work at a higher-level of abstraction by using a software program to specify the hardware functionality. Additionally, HLS is particularly interesting for designing field-programmable gate array circuits, where hardware implementations can be easily refined and replaced in the target device. Recent years have seen much activity in the HLS research community, with a plethora of HLS tool offerings, from both industry and academia. All these tools may have different input languages, perform different internal optimizations, and produce results of different quality, even for the very same input description. Hence, it is challenging to compare their performance and understand which is the best for the hardware to be implemented. We present a comprehensive analysis of recent HLS tools, as well as overview the areas of active interest in the HLS research community. We also present a first-published methodology to evaluate different HLS tools. We use our methodology to compare one commercial and three academic tools on a common set of C benchmarks, aiming at performing an in-depth evaluation in terms of performance and the use of resources
Skeleton-based design and simulation flow for computation-in-memory architectures
\u3cp\u3eMemristor-based Computation-in-Memory is one of the emerging architectures proposed to deal with Big Data problems. The design of such architectures requires a radically new automatic design flow because the memristor is a passive device that uses resistance to encode its logic value. This paper proposes a design flow for mapping parallel algorithms on the CIM architecture. Algorithms with similar data flow graphs can be mapped on the crossbar using the same template containing scheduling, placement, and routing information; this template is named skeleton. By configuring such a skeleton with different pre-designed circuits, we can build CIM implementations of the corresponding algorithms in that class. This approach does not only map an algorithm on a memristor crossbar, but also gives an estimation of its performance, area, and energy consumption. It also supports user-defined constraints and parallel SystemC simulation. Experimental results demonstrate the feasibility and the potential of the approach.\u3c/p\u3