Intel Larrabee instruction set is ready-to-use

This post is very old. Please bear in mind that information here might be incorrect or obsolete, and links can be broken. If something seems wrong, please feel free to comment or contact me and I'll update the post.

Intel just released a C++ header which allows developers to use Larrabee instructions with current compilers, by simply writing out the future instrisincs as C code. Some interesting bits:

  • 512 bit vector types (8x64bit double, 16x32bit float, or 16x32bit integer)
  • Lots of 3-operand instructions, like a=a*b+c
  • Most combinations of +,-,*,/ are provided, that is, you can choose between a*b-c, c-a*b and so forth.
  • Some instructions have built-in constants: 1-a*b
  • Many instructions take a predicate mask, which allows to selectively work on just a part of the 16-wide vector primitive types
  • 32bit integer multiplications which return the lower 32bit of the result
  • Lots of trigonometric functions [Update] They don’t say which ones map directly to instructions, and provide them only for the sake of completeness.
  • Bit helper functions (scan for bit, etc.)
  • Explicit cache control functions (load a line, evict a line — that would have been helpful on a project I worked on once)
  • Horizontal reduce functions: Add all elements inside a vector, multiply all, get the minimum, and logical reduction (or, and, etc.).

Especially the reduce functions look interesting, as they are more general than the dot-product instruction available in SSE. Nothing revolutionary though, but all in all it looks like a very nice and useful instruction set, although I was hoping for 8-bit instructions as well (with 8 bit components, and RGBA, you could process 4×4 pixels at once — that would be a real killer for image processing).

[Update] The instructions are 3 operand only, storing the result in the first operand!

Related posts:

  1. GDC 2009 Larrabee presentations availabe

This entry was posted in Programming and tagged , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>