Section: Misc. Reference Manual Pages (l)
Updated: July 31, 2017
- Recoding Infrastructure for SystemC (RISC) SIMD Advisor
is an analysis tool for exploiting data-level parallelism
based on the RISC compiler for the SystemC language.
The purpose of
is to parse and analyze a SystemC source program,
and then provide advise to the user
regarding possible optimizations of the model to exploit
SIMD parallelism for faster out-of-order parallel simulation.
Using the command syntax shown in the synopsis above, the specified
is compiled and statically analyzed. By default,
reads the SystemC source file, performs preprocessing and
builds an internal representation (abstract syntax tree)
of the SystemC constructs in the model. Next,
thread control flow analysis
is performed and encountered loops are analyzed
for potential single-instruction-multiple-data (SIMD) execution
which exploits data-level parallelism and can lead to significantly
improved simulation performance
in Out-of-Order Parallel Discrete Event Simulation (OoO PDES).
presents to the user a list of loops that might be suitable
for SIMD vectorization. The user is expected to review the
options and, based on his application knowledge, select those
loops that do not contain SIMD conflicts, such as parallel accesses
to overlapping memory locations. For confirmed loops,
the user then inserts into the source code
#pragma omp simd
annotations immediately before the selected loops.
The annotated model can then be compiled with
using the Intel C++ compiler
to generate an executable for execution on a SIMD-capable
target architecture with improved performance.
The output of
lists the loops found in the control flow of the SystemC threads
of the model. For each loop, its line number in the source code
is listed together with its analyzed SIMD qualification.
If the loop is not qualified, a reason for its disqualification
may or may not be shown in form of an error code.
A qualification error code of 1 indicates the use of an invalid
array index in the loop. The code 2 indicates that a non-loop local
variable is written. Finally, code 3 indicates that an unsupported
construct (e.g. goto statement) is found in the loop.
On successful completion, the
advisor returns the value 0.
In case of errors during processing, an error code with a
brief diagnostic message is written to
the standard error stream and the compilation is aborted
with an exit value greater than zero.
specifies the file name of the input SystemC design model;
by default, the base name of
is used as base name for the intermediate and output files;
- -h | --help
advisor version and a brief usage information message
to standard output and quit;
- -v | --verbose
increment the verbosity level so that the tasks performed are
logged to standard error (default: be silent);
at level 1, high-level messages about the tasks performed are displayed;
at level 2, additional details such as input and output file names are listed;
at level 3, very detailed information about each executed task is printed;
increment the verbosity level by two counts (same as
increment the verbosity level by three counts (same as
-v -v -v
- -w | --warnings
increment the warning level so that warning messages
are enabled (default: warnings are disabled);
four levels are supported ranging
from only important warnings (level 1)
to pedantic warnings (level 4);
for most cases, warning level 2 is recommended (
increment the warning level by two counts (same as
increment the warning level by three counts (same as
-w -w -w
add the specified
to the include path (extend the list of directories to be searched
for including source files);
include directories are searched in the order of their specification;
the standard include path ($SYSTEMC_LW_HOME/include) is
automatically appended to this list;
by default, only the standard include directories are searched;
- -o output file
specify the name of the text output file explicitly (default: none);
pass this option through to the underlying ROSE compiler (default: none);
- -<GNU option>
pass this option through to the underlying GNU compiler (default: none);
is used at compile-time to determine the installation directory
of the RISC compiler and simulator where the RISC system components
are located (default: none);
is used at compile-time to find the RISC light-weight SystemC header files
which are expected in directory $SYSTEMC_LW_HOME/include (default: none);
The SIMD Advisor is release version 0.4.0.
Zhongqi Cheng <firstname.lastname@example.org>,
Rainer Doemer <email@example.com>,
Guantao Liu <firstname.lastname@example.org>, and
Tim Schmidt <email@example.com>.
(c) 2017 CECS, University of California, Irvine
Open source BSD license terms apply.
This is an academic proof-of-concept prototype implementation,
not commercial-quality software.
See the file BUGS in the software packages for known limitations.
This document was created by
using the manual pages.
Time: 15:44:46 GMT, July 31, 2017