3 ms·
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 worki
by edparcell 16y 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.
- jerf 16y agoCRC32 instructions: http://www.strchr.com/crc32_popcnt http://www.strchr.com/crc32_popcnt String processing instructions in SSE4.2: http://www.strchr.com/strcmp_and_strlen_using_sse_4.2 http://www.strchr.com/strcmp_and_strlen_using_sse_4.2 AES encryption instructions: http://en.wikipedia.org/wiki/AES_instruction_set 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.
- _delirium 16y agoIt 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.