High-Performance Image Processing Using Special-Purpose CPU Instructions: The UltraSPARC Visual Instruction Set

Daniel S. Rice

EECS Department
University of California, Berkeley
Technical Report No. UCB/CSD-96-901
March 1996

http://www2.eecs.berkeley.edu/Pubs/TechRpts/1996/CSD-96-901.pdf

The UltraSPARC-I processor implements, in addition to the SPARC v9 instruction set, a set of new instructions that accelerate image and video processing -- the visual instruction set, or VIS. These instructions address a number of areas in which traditional instructions perform poorly for these highly parallel tasks. Although these instructions support a wide variety of functions, they represent far less implementation effort than that needed to design dedicated imaging hardware because they leverage the design efforts of the CPU and memory system, and will continue to provide performance improvements as the processor speed is increased.

Unlike traditional CPU features, the performance benefits of such instructions have not been quantified. We attempt to demonstrate the performance effects of the VIS instructions in the context of typical image processing loops.

For the greatest benefit, these instructions must be used with an eye to maximizing various forms of parallelism, including superscalar instruction issue, loop vectorization, and pipelining in both hardware and software. Currently much of this work must be done by hand. We propose some ways to automate portions of this process and describe some of the existing tools.


BibTeX citation:

@techreport{Rice:CSD-96-901,
    Author = {Rice, Daniel S.},
    Title = {High-Performance Image Processing Using Special-Purpose CPU Instructions:  The UltraSPARC Visual Instruction Set},
    Institution = {EECS Department, University of California, Berkeley},
    Year = {1996},
    Month = {Mar},
    URL = {http://www2.eecs.berkeley.edu/Pubs/TechRpts/1996/5198.html},
    Number = {UCB/CSD-96-901},
    Abstract = {The UltraSPARC-I processor implements, in addition to the SPARC v9 instruction set, a set of new instructions that accelerate image and video processing -- the visual instruction set, or VIS.  These instructions address a number of areas in which traditional instructions perform poorly for these highly parallel tasks. Although these instructions support a wide variety of functions, they represent far less implementation effort than that needed to design dedicated imaging hardware because they leverage the design efforts of the CPU and memory system, and will continue to provide performance improvements as the processor speed is increased. <p>Unlike traditional CPU features, the performance benefits of such instructions have not been quantified. We attempt to demonstrate the performance effects of the VIS instructions in the context of typical image processing loops. <p>For the greatest benefit, these instructions must be used with an eye to maximizing various forms of parallelism, including superscalar instruction issue, loop vectorization, and pipelining in both hardware and software. Currently much of this work must be done by hand. We propose some ways to automate portions of this process and describe some of the existing tools.}
}

EndNote citation:

%0 Report
%A Rice, Daniel S.
%T High-Performance Image Processing Using Special-Purpose CPU Instructions:  The UltraSPARC Visual Instruction Set
%I EECS Department, University of California, Berkeley
%D 1996
%@ UCB/CSD-96-901
%U http://www2.eecs.berkeley.edu/Pubs/TechRpts/1996/5198.html
%F Rice:CSD-96-901