Hacker News new | past | comments | ask | show | jobs | submit login

SSE2 is a requirement for x86-64, which gives at least a reasonable(128bit wide SIMD) baseline.

SSE4 is from 2008, so making it a requirement isn't unreasonable.

Even AVX2 is from 2013, so some apps require it nowadays.

It is extremely difficult for a compiler to convert scalar code to SIMD automatically, even static C++ compilers really suck at it.

A dynamic compiler for javascript would have no real hope of any meaningful gains.




The problem is that there were CPUs made well after 2008 that don't support SSE4. In particular, Phenom II was fairly popular, sold up until 2012, and doesn't even support SSSE3 (much less SSE4.1 and SSE4.2; only an AMD-specific variant known as SSE4a).


Another issue with lots of older processors is that they would slow down clock speed when using SIMD instructions so much that there was effectively no performance gain. You had to be very careful which instructions you could actually use.


AFAIK this was only ever really true for AVX-512 (when touching the actual wider registers). Most others have had a moderate downclock, but still normally worth it.


You're right, it's been a while since I dabbled in SIMD.


The early Atoms too only supported up to SSSE3.


I still have an old Samsung that is from 2008 aproximately. The battery last like 10 minutes, a few keys are dead, the fan makes a weird sound, so it's 99.9% retired. I still use it every few years when I need an old version of MS Office.


other thing about avx2 is it gives you FMA because of the timing.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: