Resultados de la búsqueda a petición "avx"
¿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 ...
¿Cómo realizar eficientemente conversiones dobles / int64 con SSE / AVX?
SSE2 tiene instrucciones para convertir vectores entre flotantes de precisión simple y enteros de 32 bits. _mm_cvtps_epi32()_mm_cvtepi32_ps()Pero no hay equivalentes para enteros de doble precisión y de 64 bits. En otras palabras, ...
Convención para mostrar registros vectoriales
¿Existe una convención para mostrar / escribir registros grandes, como los disponibles en el conjunto de instrucciones Intel AVX? Por ejemplo, si tiene 1 en el byte menos significativo, 20 en el byte más significativo y 0 en otro lugar de unxmm ...
¿Por qué este código SSE es 6 veces más lento sin VZEROUPPER en Skylake?
He estado tratando de resolver un problema de rendimiento en una aplicación y finalmente lo reduje a un problema realmente extraño. El siguiente código se ejecuta 6 veces más lento en una CPU Skylake (i5-6500) si elVZEROUPPER La instrucción está ...
¿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 ...
Deshabilite las funciones optimizadas para AVX en glibc (LD_HWCAP_MASK, /etc/ld.so.nohwcap) para valgrind y gdb record
Linux x86_64 moderno con glibc detectará que la CPU es compatible con la extensión AVX y cambiará muchas funciones de cadena de implementación genérica a AVX ...
¿Atomicidad por elemento de carga / almacenamiento de vector y recolección / dispersión?
Considere una matriz comoatomic<int32_t> shared_array[]. ¿Qué pasa si quieres SIMD vectorizar?for(...) sum += shared_array[i].load(memory_order_relaxed)?. ¿O buscar una matriz para el primer elemento que no sea cero, o poner a cero un rango de ...
Las operaciones escalares AVX son mucho más rápidas
Pruebo la siguiente función simple void mul(double *a, double *b) { for (int i = 0; i<N; i++) a[i] *= b[i]; }con matrices muy grandes, de modo que se vincula el ancho de banda de la memoria. El código de prueba que uso está debajo. Cuando ...
NO falta en SSE, AVX?
¿Es mi imaginación o es unPNOT faltan instrucciones en SSE y AVX? Es decir, una instrucción que cambia cada bit en el vector. En caso afirmativo, ¿hay una mejor manera de emularlo quePXOR con un vector de todos los 1? Bastante molesto ya que ...
¿Es vxorps-zeroing en AMD Jaguar / Bulldozer / Zen más rápido con registros xmm que ymm?
Las CPU AMD manejan instrucciones AVX de 256b decodificando en dos operaciones de 128b. p.ej.vaddps ymm0, ymm1,ymm1 en AMD Steamroller decodifica a 2 macro-operaciones, con la mitad del rendimiento devaddps xmm0, xmm1,xmm1. XOR-zeroing es un ...