Resultados de la búsqueda a petición "avx"

2 la respuesta

¿Ordenar estructuras de 64 bits con AVX?

Tengo una estructura de 64 bits que representa varios datos, uno de los cuales es un valor de coma flotante: struct MyStruct{ uint16_t a; uint16_t b; float f; };y tengo cuatro de estas estructuras, digamos unstd::array<MyStruct, 4> ¿Es posible ...

1 la respuesta

¿Multiplicación de matriz grande (0,1) usando AND bit a bit y popcount en lugar de multiplicaciones int o float reales?

Para multiplicar matrices binarias grandes (10Kx20K), lo que suelo hacer es convertir las matrices en flotantes y realizar una multiplicación de matriz flotante ya que la multiplicación de matriz entera es bastante lenta (mira ...

2 la respuesta

¿Por qué gcc no resuelve _mm256_loadu_pd como un solo vmovupd?

Estoy escribiendo algunas AVX code y necesito cargar desde una memoria potencialmente desalineada. Actualmente estoy cargando 4doble, por lo tanto, usaría instrucciones intrínsecas _mm256, ...

2 la respuesta

¿Cuál es la diferencia entre vextracti128 y vextractf128?

2 la respuesta

Utilizando registros ymm como una ubicación de almacenamiento "similar a la memoria"

Considere el siguiente bucle en x86: ; on entry, rdi has the number of iterations .top: ; some magic happens here to calculate a result in rax mov [array + rdi * 8], rax ; store result in output array dec rdi jnz .top Es sencillo: algo calcula ...

5 la respuesta

SSE-copy, AVX-copy y std :: copy performance

Intenté mejorar el rendimiento de la operación de copia a través de SSE y AVX:

3 la respuesta

¿Cómo resolver el problema de la alineación de 32 bytes para las operaciones de carga / almacenamiento de AVX?

Tengo problemas de alineación mientras usoymm registros, con algunos fragmentos de código que me parecen bien. Aquí hay un ejemplo de trabajo mínimo: #include <iostream> #include <immintrin.h> inline void ones(float *a) { __m256 out_aligned = ...

3 la respuesta

¿Hay una manera más eficiente de transmitir 4 dobles contiguos en 4 registros YMM?

En un fragmento de código C ++ que hace algo similar a (pero no exactamente) la multiplicación de matrices, cargo 4 dobles contiguos en 4 registros YMM como este: # a is a 64-byte aligned array of double __m256d b0 ...

5 la respuesta

¿Cómo verificar si una CPU admite el conjunto de instrucciones SSE3?

Es válido el siguiente código para verificar si una CPU admite el conjunto de instrucciones SSE3? Utilizando laIsProcessorFeaturePresent()a función @ aparentemente no funciona en Windows XP (verhttp: //msdn.microsoft.com/en-us/library/ms724482 ...

2 la respuesta

¿Cuál es la versión mínima de OS X para usar con AVX / AVX2?

Tengo una rutina de dibujo de imágenes que se compila varias veces para SSE, SSE2, SSE3, SSE4.1, SSE4.2, AVX y AVX2. Mi programa despacha dinámicamente una de estas variaciones binarias al verificar los indicadores de CPUID. En Windows, verifico ...