2 ms·
I've not had a chance to do more than rely on my compiler to target those. I guess I should play with them more.
by bluejekyll 10y ago
I've not had a chance to do more than rely on my compiler to target those. I guess I should play with them more.
- Const-me 10y agoA couple of advices for you then. Unless you’re planning to do reverse engineering, or planning to work on a compiler, learning assembler is mostly pointless. In most cases, real-world algorithms contain both vector code in the inner loops, and scalar code everywhere else. When coding assembler you need to use it for both, and assembler ain’t exactly user-friendly. Using C or C++ language with SSE intrinsics is the way to go. All modern compilers support them. Intel’s documentation is the best so far, but there’s no offline searchable version. I’ve created one: https://github.com/Const-me/IntelIntrinsics/releases https://github.com/Const-me/IntelIntrinsics/releases Memory layout is a king. You need to keep the input and output data SSE-friendly: aligned, dense, sequential access patterns are preferred. This could mean you need to [re]design some parts of your software specifically for SSE. There’re multiple generations of hardware. When writing manually-vectorized code, the compiler won’t tell you what CPUs it’ll run on. SSE2 is the most compatible. Here’s some statistics about Windows users: http://store.steampowered.com/hwsurvey/ http://store.steampowered.com/hwsurvey/ click on “Other settings” glhf