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

1 la respuesta

CUDA: evitar la ejecución en serie en la divergencia de rama

Suponga que un kernel CUDA ejecutado por una sola deformación (por simplicidad) alcanza unif-else declaración, donde 20 de los hilos dentro de la urdimbre satisfacencondition y 32-20 = 12 hilos no: if (condition){ statement1; // executed by 20 ...

1 la respuesta

¿Por qué GCC o Clang no optimizan la instrucción recíproca a 1 cuando se usan matemáticas rápidas?

¿Alguien sabe por qué GCC / Clang no optimizará la función?prueba1 en el ejemplo de código a continuación para usar simplemente la instrucción RCPPS al usar la opción de matemática rápida? ¿Hay otro indicador del compilador que generaría este ...

1 la respuesta

La forma más rápida de calcular el valor absoluto utilizando SSE

Conozco 3 métodos, pero que yo sepa, solo se usan los primeros 2: Enmascarar el bit de signo usandoandps oandnotps. Pros: Una instrucción rápida si la máscara ya está en un registro, lo que la hace perfecta para hacer esto muchas veces en un ...

1 la respuesta

Instrucciones de SSE para verificar si la matriz de bytes es cero C #

Supongamos que tengo unbyte[] y quiere verificar si todos los bytes son ceros. For loop es una forma obvia de hacerlo, y LINQAll() es una forma elegante de hacerlo, pero el rendimiento más alto es crítico. Como puedo usarMono.Simd ...

1 la respuesta

Carga de 8 caracteres de la memoria en una variable __m256 como flotantes de precisión individuales empaquetados

Estoy optimizando un algoritmo para el desenfoque gaussiano en una imagen y quiero reemplazar el uso de un búfer flotante [8] en el código a continuación con una variable intrínseca __m256. ¿Qué serie de instrucciones es la más adecuada para esta ...

1 la respuesta

¿Cuáles son estas instrucciones adicionales de desmontaje cuando se utilizan intrínsecos SIMD?

Estoy probando qué tipo de aceleración puedo obtener al usar las instrucciones SIMD con RyuJIT y veo algunas instrucciones de desmontaje que no espero. Estoy basando el código enesta publicación de ...

1 la respuesta

¿Cuáles son las mejores secuencias de instrucciones para generar constantes vectoriales sobre la marcha?

"Mejor" significa la menor cantidad de instrucciones (o la menor cantidad de uops, si alguna de las instrucciones decodifica a más de una uop). El tamaño del código de máquina en bytes es un factor decisivo para un recuento de insn igual. La ...

1 la respuesta

¿Cómo puedo aplicar __attribute __ ((alineado (32))) a un int *?

En mi programa necesito aplicar__attribute__(( aligned(32))) a unaint * ofloat * Lo intenté así, pero no estoy seguro de que funcione. int *rarray __attribute__(( aligned(32)));Yo viesta ...

1 la respuesta

AVX2, ¿Cómo cargar eficientemente cuatro enteros en índices pares de un registro de 256 bits y copiar en índices impares?

Tengo una matriz alineada de enteros en la memoria que contiene los índices I0, I1, I2, I3. Mi objetivo es llevarlos a un registro __m256i que contenga I0, I0 + 1, I1, I1 + 1, I2, I2 + 1, I3, I3 + 1. La parte difícil es llevarlos al registro de ...

1 la respuesta

Desplazando 4 enteros a la derecha por diferentes valores SIMD

SSE no proporciona una forma de desplazar enteros empaquetados en una cantidad variable (puedo usar cualquier instrucción AVX y anteriores). Solo puedes hacer turnos uniformes. El resultado que estoy tratando de lograr para cada número entero en ...