Hacker News new | ask | show | jobs
by edparcell 5723 days ago
I think that one approach that may yield domain-specific improvements would be to add certain numerical routines into the x86 instruction set.

When I was working in finance as a quant, I was shocked by the amount of time code spent executing the exponential function - it is used heavily in discount curves and similar which are the building blocks of much of financial mathematics. An efficient silicon implementation would have yielded a great improvement in speed.

2 comments

CRC32 instructions: http://www.strchr.com/crc32_popcnt

String processing instructions in SSE4.2: http://www.strchr.com/strcmp_and_strlen_using_sse_4.2

AES encryption instructions: http://en.wikipedia.org/wiki/AES_instruction_set

So, if you didn't know about those, give yourself a point, because you nailed it. (No sarcasm.) There's a definite trend there.

It can definitely help in certain domains, but adding special-case instructions in silicon can sometimes complicate a chip design enough that it slows it down overall. The trend for a while was in the other direction, towards not implementing in silicon things that were even already in the x86 instruction set, like the transcendental arithmetic functions, and doing them in microcode instead (the "RISCification" of x86 processors). It's possible that trend is now reversing, though.