|
HPEC-SI Status
The High Performance Embedded Computing Software Initiative
(HPEC-SI) is developing a parallel C++ library to address embedded
signal processing. The initiative incorporates existing research
results and extends the Vector Signal
Image Processing Library (VSIPL). Fiscal year 2003 and 2004 results
include:
- Demonstrations: CIP (completed), AEGIS (underway), SBR
(underway), DADS (initiated), MUDS (initiated)
- C++ VSIPL++ specification
(v1.0a) and code
(v0.9)
- parallel
VSIPL++ specification in progress
- high-performance parallel C++ VSIPL++ programs
demonstrated.
HPEC-SI's VSIPL++ library
will improve existing embedded software technology in three ways:
- Portability
Open standards for the middleware VSIPL++ library will improve
portability by a factor of three. Much existing embedded software is
not portable, complicating development and maintenance as the
underlying hardware changes. Several programs using VSIPL++ and VSIPL
have demonstrated code can be ported with little or no code changes
with no performance changes.
- Productivity
Through extensive use of object-oriented and template-based
technologies, VSIPL++ supports higher-level syntax, reducing kernel
lengths by up to a factor of three. Several projects have indicated
code is much easier to maintain and optimize using these higher-level
concepts.
- Performance
VSIPL++ has been carefully designed to ensure the full potential of the
underlying hardware. VSIPL++ incorporates existing research
technologies to permit the same program to be run on one or multiple
processors. VSIPL++ implementations can incorporate expression-template
technology to fusion loops together, yielding loops as fast as
hand-coded code.
VSIPL++ development has been split into two parallel tracks:
uniprocessor and multiprocessor execution.
- The uniprocessor
specification (v1.0a) will soon be available for public comment. An
associated reference
implementation (v0.9) will also be available.
- The multiprocessor
specification (v0.5) complements the uniprocessor specification.
Since the differences between uniprocessor and multiprocessor programs
is quite small, the multiprocessor version requires only about ten
percent of the pages. An associated reference implementation is under
development.
 |