CIS 451 Week 13

I/O

Domain Specific Architectures

Guidelines for DSAs

Ask students what each of these means{. :q}

  1. Use dedicated memories to minimize the distance over which data is moved
  2. Invest resources saved from dropping advanced micorarchitectural optimizations into more arithmetic or memory
    • Reduce branch predictors, schedulers, register renaming and such
    • Possible because the workflow is more specific, we don’t need to be prepared for “anything.”
  3. Use the easiest form of parallelism that matches the domain
    • Most key targets for DSA have a lot of parallel, but in a specific pattern
  4. Reduce data size and type to the simplest needed for the domain
    • Don’t use 64-bit ints, if 8 or 16 will do. This lets you do more in parallel.
    • Also saves on memory bandwidth.
  5. Use a domain specific language

Notice the “Pendulum:”
* In the 60s and 70s memory was expensive and we worked hard to save each bit. * Then memory became cheap, and we didn’t care * Now we’re paying attention, but for a slightly different reason: bandwidth and energy as opposed to monetary cost.

Cross-Cutting issues