Server Accelerator Cards
Signalogic vs. Nvidia comparison. Shown above |
Overview
Server accelerator cards are intended to improve server performance, typically while offering some additional benefit such as saving space (same number of servers, no increase in rack space), limiting energy usage, increased privacy or security by avoiding external information transfer, etc. Without a server accelerator, the standard approach is to "throw more servers" at the problem -- which, while it may work -- incurs penalties in cost, space, energy, lack of security, etc. There are generally four (4) categories of server accelerators:- Encryption. Examples include SSL accelerators and FPGA arrays
- Network packet inspection and processing. The idea here is that if the accelerator card has its own GbE interface, intelligence (one or more multicore CPUs), and memory, it can process network packets at a far faster rate than a typical motherboard + Linux. Examples include Cavium network processors such as the Octeon series
- Video. Intended for video specific applications, such as transcoding and rate translation. Examples include the LSI Axxia media accelerator
- Overall performance. Nvidia accelerators and CIM arrays are in this category
Performance Accelerators
The most effective -- but most difficult to achieve -- type of accelerator is one that applies to a broad range of programs and applications. Signalogic's objectives are threefold:- Achieve performance in compute intensive areas of acceleration -- such as video -- on par or exceeding that of a custom, application-specific accelerator
- Dramatically reduce energy consumed on a per task basis (compute intensive task); i.e. increase the server's efficiency
- Make the accelerator extremely easy to use
The last objective is the most crucial. Linux developers are known by a somewhat fanatic devotion to open source software. Anything that requires Linux developers to detour from standard C/C++ programming under Linux -- for example learning the API of an application specific accelerator -- is typically not well-received. To do so would imply that specialized programmers are needed, code is difficult to maintain over time, and code may not be compatible with a wide range of servers. To avoid these issues, CIM arrays leverage OpenMP syntax, using that as a basis and extending it to take further advantage of CIM capabilities.