Skip to content
Nicolas Capens edited this page Aug 25, 2014 · 4 revisions

Welcome to the SoftWire wiki!

#Etymology

SoftWire is a word play on 'hard wire', which refers to a piece of hardware which has been wired to perform a single function. Hard-wired logic is very fast for what it is specialized at for, but useless for anything else. SoftWire attempts to combine the advantages of specialized functions while retaining the flexibility of software. It allows to generate highly specialized code specifically for the task at hand, and generate new ones with different functionality or specialization when circumstances change.

"The fastest instruction is the one that is never executed" - Michael Abrash

#Origin

SoftWire was created for fast 3D rendering on the CPU. Graphics processing units (GPUs) consist of various hard-wired components (but have been becoming much more programmable) which form a configurable pipeline. The number of combinations for these configurations run into the billions, which makes it impossible to write specialized code to implement all this functionality on the CPU in an optimal manner. However, applications only make use of a limited number of pipeline configurations, and thus we can generate just these few specialized functions to perform exactly the expected functionality of the graphics pipeline.

#Details

  • Tutorial - Essential information to get you started using SoftWire.
  • Optimization - Advanced details of SoftWire's optimizations.
Clone this wiki locally