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

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, ...

1 la respuesta

¿Cómo mover el doble en% rax a la posición particular de qword en% ymm o% zmm? (Kaby Lake o posterior)

La idea es que me gustaría recopilar los valores devueltos dedouble en un registro vectorial para procesar para la máquinaimm width a la vezsi almacenar de nuevo en la memoria primero. l procesamiento particular es unvfma con otros dos ...

1 la respuesta

l informe @perf muestra esta función "__memset_avx2_unaligned_erms" tiene sobrecarga. ¿Significa esto que la memoria no está alineada?

Estoy tratando de perfilar mi código C ++ usando la herramienta perf. La implementación contiene código con instrucciones SSE / AVX / AVX2. Además de que el código se compila con-O3 -mavx2 -march=native banderas. ...

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 ...

2 la respuesta

selectivamente elementos de una lista con instrucciones AVX2

Quiero acelerar la siguiente operación con las instrucciones de AVX2, pero no pude encontrar una manera de hacerlo. Me dan una gran variedaduint64_t data[100000] de uint64_t's, y una matrizunsigned char indices[100000] de bytes. Quiero generar ...

1 la respuesta

Aritmética de punto flotante de media precisión en chips Intel

¿Es posible realizar aritmética de coma flotante de precisión media en chips Intel? Sé cómo cargar / almacenar / convertir números de coma flotante de precisión media [1] pero no sé cómo agregarlos / multiplicarlos sin convertirlos a números de ...

3 la respuesta

Implementación más rápida de la función exponencial usando AVX

Estoy buscando una aproximación eficiente (rápida) de la función exponencial que opera en elementos AVX (punto flotante de precisión simple). A saber -__m256 _mm256_exp_ps( __m256 x ) sin SVML. La precisión relativa debería ser algo así como ~ ...

0 la respuesta

¿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 ...

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 ...

1 la respuesta

¿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 ...