Widening availability to other programming languages

Widening availability to other programming languages

This post isn't really specific to AVX, but SIMD extensions in general. I'd like to see the availability of SIMD programming widen to more than just assembly and C/C++ intrinsics. By this I mean first class support, and not just via use of natively programmed modules. I think this is necessary if SIMD programming is ever to become more than just a niche, by widening availability to mobile device and web/smart client environments.


Andrew Marshall
5 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

I agree - but I'd assummed that the new instructions would be a gift to Fortran which can really specialize in numerical work.




When we talk about web and smart clients we are actually talking about the browser / host for the application. Can you think of a scenario where you would expect SIMD to be used directly from an application?

I say application because it does sounds rightto find SIMD support as part of theinfrastructure and system services such as graphic drivers, multimedia codecs, databases, etc. I wonder if what we are looking for is not simply a new type of infrastructure that we do not have today.


The availablity of SIMD is more wider but depends on platform. it if available on ATOM based small devices too. the applications can make use of that. if question is incorporating autoSIMDification in programming languages so that programmer has not to worry about it. I think compilers are moving in that directions too e.g. Intel compiler and i beleive gcc auto vectorize the code if loop can be vetorized. i think other commercial tools will pick it up too.

I see your point.
Would it be enough to have C-Runtime (CRT) support and Java / C# classes support? For example C\++ strcmp() might be able to use SIMD.
..or would you expect to have a dedicated type support?

I wonder, is it enough to have the common scenarios as a library API? for example: BlendImages, FadeFrame, ScanBuffer, etc.

How would you expect to see such support?
Currently Microsoft Visual C++ has support for SIMD but the default is off and usually it is kept this way because:
- you don't know whether or not the target is going to have SIMD
- it takes more effort to use
Plus, just like parallel computing:
- programmers are not used to it,
- design patterns don't tell you where and when to use SIMD
- there are not enough samples on the Internet which are using SIMD
- the technology requires special understanding and special design which means that most people today will have to learn how to use it

I think that most common programmers would expect Silverlight and Flash to use SIMD internally..

What would you say is the entry point for letting everyone use SIMD hardware acceleration?


Leave a Comment

Please sign in to add a comment. Not a member? Join today