Why I am not a fan of hardware acceleration

September 19, 2009

I am generally not a fan of hardware accelerators of various sorts (the stereotypical example is hardware RAID cards). One of the reasons why is that historically (with one important exception), hardware accelerators generally just haven't been very good.

By not very good I mean that, well (generally):

  • they haven't accelerated things very much.
  • they haven't sped up actual important bottlenecks, except in rare circumstances.
  • they almost invariably cost a significant amount of money.
  • even when they manage to get past all of this, they rarely stay fast, compared to the state of the art in machines and software.
  • they often stop accelerating anything useful after a while.

(Consider the current usefulness of a hypothetical world's fastest MD5 checksum offload engine, or just of a TCP offload engine that doesn't handle packets with the current set of options that everyone is using because they weren't common when it was designed.)

This litany of bad outcomes hasn't happened because everyone who's tried to make hardware accelerator has been incompetent; far from it. Instead there are a number of sound reasons for all of these, and they make this a hard problem. We can see how hard it is by seeing how little success the field has had, despite a great deal of effort poured into it over the years.

(By the way, the important exception that I'm thinking of is graphics cards. I happen to think that they have a lot of characteristics that makes them the exception that proves the rule.)

Comments on this page:

From at 2009-09-19 13:50:32:

crypto acceleration works well for network devices.

From at 2009-09-20 02:48:32:

I was thinking about hardware-based crypto accelerators as a counter-example as well. On many embedded devices acting in the network field these are actually a necessity because the source for entropy can be quite limited.

Written on 19 September 2009.
« Are you sure it's a C string?
Why kernel packaging is so bad in Debian and Ubuntu »

Page tools: View Source, View Normal, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Sat Sep 19 01:47:57 2009
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.