Reputation: 33920
I am looking for something to copy a 2D array into another (larger) 2D array extremely fast, using SSD/MMX/3DNow/SIMD (Whatever). I do not want to implement myself, just looking for a high-optimized supported and maintained solution. I am using Clang(++) on Linux.
memcyp2Di(int *src, int *dest, int srcw, int srch, int destw, int desth, int destx, int desty)
Upvotes: 3
Views: 352
Reputation: 20780
There is the Intel IPP library. It is used to do things such as math computations on large matrices, but I am pretty sure there are copy functions too. The library initializes itself to make use of the fastest version of each function depending on your processor and they keep it up to date so when new processors come out, they eventually implement the functions with new instructions to make things even faster.
Upvotes: 1
Reputation: 1604
Take a look at Asmlib by Agner Fog, it provides an extremely optimized version of memcpy and other common libc functions written in assembly and using the best SIMD instruction set available in your CPU, from basic SSE all the way up to the latest AVX2 and FMA3 instructions found in Haswell processors, for instance.
Upvotes: 5