¿Alguien sabe de una referencia que enumera el funcionamiento de las funciones intrínsecas de SSE para gcc, es decir, las funciones en los archivos de encabezado ? Gracias.
Estoy buscando algunos consejos sobre cómo hacer una sum de prefijo paralela con SSE. Estoy interesado en hacer esto en una variedad de ints, floats o dobles. He encontrado dos soluciones. Un caso especial y un caso general. En ambos casos, la solución se ejecuta en la matriz en dos pasos en paralelo con OpenMP. […]
Estoy buscando comprender un poco más las capacidades de SSE2, y me gustaría saber si se podría hacer un entero de 128 bits que admita la sum, la resta, el XOR y la multiplicación. Gracias, Erkling.
Estoy teniendo un problema de alineación al usar registros ymm , con algunos fragmentos de código que me parecen bien. Aquí hay un ejemplo de trabajo mínimo: #include #include inline void ones(float *a) { __m256 out_aligned = _mm256_set1_ps(1.0f); _mm256_store_ps(a,out_aligned); } int main() { size_t ss = 8; float *a = new float[ss]; ones(a); delete [] […]
SSE2 tiene instrucciones para convertir vectores entre flotantes de precisión simple e 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, faltan: _mm_cvtpd_epi64() _mm_cvtepi64_pd() Parece que AVX tampoco los tiene. ¿Cuál es la forma más eficiente de simular estos intrínsecos?
Estoy tratando de aprender a codificar usando intrínsecos y abajo hay un código que hace la adición compiler used: icc #include #include int main() { __m128i a = _mm_set_epi32(1,2,3,4); __m128i b = _mm_set_epi32(1,2,3,4); __m128i c; c = _mm_add_epi32(a,b); printf(“%d\n”,c[2]); return 0; } Me sale el siguiente error: test.c(9): error: expression must have pointer-to-object type printf(“%d\n”,c[2]); […]
Aprendí que algunas CPU Intel / AMD pueden multiplicarse simultáneamente y agregarse con SSE / AVX: FLOPS por ciclo para sandy-bridge y haswell SSE2 / AVX / AVX2 . Me gusta saber cómo hacer esto mejor en el código y también quiero saber cómo se hace internamente en la CPU. Me refiero a la architecture […]
He escrito una clase de vector 3D usando muchos intrínsecos del comstackdor SSE. Todo funcionó bien hasta que comencé a instalar clases con el vector 3D como miembro con nuevas. Experimenté caídas extrañas en el modo de lanzamiento, pero no en el modo de depuración y viceversa. Así que leí algunos artículos y pensé que […]
Mi código C ++ usa SSE y ahora quiero mejorarlo para que sea compatible con AVX cuando esté disponible. Entonces detecto cuando AVX está disponible y llamo a una función que usa comandos AVX. Uso Win7 SP1 + VS2010 SP1 y una CPU con AVX. Para usar AVX, es necesario incluir esto: #include “immintrin.h” y […]
No tengo un caso de uso particular en mente; Pregunto si esto es realmente una falla / limitación de diseño en los intrínsecos de Intel o si me falta algo. Si desea combinar un flotante escalar con un vector existente, no parece haber una manera de hacerlo sin un alto cero de elementos o transmitir […]