- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
This might be a noob question, but is there a way to perform a byte swap between big and little endian on a __m512i vector without having to iterate through each value? I really want to avoid using unions, as they can be slow. I can't find any info in documentation or googling around, so hopefully somebody here can help me.
Enlace copiado
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
I'm checking with our Developer. Stay tuned.
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Developer's guidance is that vector byte swap is not available as there is no hardware support for it.
Let me know if you have additional questions.
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Look at using _mm256_shuffle_epi8
This will work on AVX2, I haven't checked to see if this is supported on Phi. As long as the byte swaps do not cross 128-bit lanes, this will work for you. You will also have to check to see if this disturbs the high 256-bits. This will affect your strategy to perform 512-bit byte endian shuffle.
Jim Dempsey
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
you can read in the data to vector as byte, then use swizzle to swap the elements (bytes), then write back the vector. This only do 16 bytes at a time, though. Reading in full full 64 bytes and swap the bytes by shifts and bit or/and may actually be faster.
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
@Jim: Xeon Phi (Knight's Corner) doesn't support any MMX, SSE*, or AVX* flavors. So __mm256 instructions can't be used. Sorry
Charles
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
You could just write your own byte swap routine involving the bitwise logical and shift __m512i operations.
The relevant functions are listed under AVX-512... I didn't test it, but i guess they should also work on KNC. There are a lot of functions not listed under AVX-512, but still work on KNC...
http://software.intel.com/sites/landingpage/IntrinsicsGuide/

- Suscribirse a un feed RSS
- Marcar tema como nuevo
- Marcar tema como leído
- Flotar este Tema para el usuario actual
- Favorito
- Suscribir
- Página de impresión sencilla