Preguntas etiquetadas con compiler-optimization

La optimización del compilador implica adaptar un compilador para reducir el tiempo de ejecución o el tamaño del objeto o ambos. Esto se puede lograr utilizando argumentos del compilador (es decir, CFLAGS, LDFLAGS), complementos del compilador (DEHYDRA, por ejemplo) o modificaciones directas al compilador (como modificar el código fuente).


12
¿Por qué GCC no optimiza a * a * a * a * a * a to (a * a * a) * (a * a * a)?
Estoy haciendo una optimización numérica en una aplicación científica. Una cosa que noté es que GCC optimizará la llamada pow(a,2)compilándola a*a, pero la llamada pow(a,6)no está optimizada y realmente llamará a la función de biblioteca pow, lo que ralentiza enormemente el rendimiento. (En contraste, el compilador Intel C ++ , …

10
Reemplazar un contador de bucle de 32 bits con 64 bits introduce desviaciones de rendimiento locas con _mm_popcnt_u64 en las CPU Intel
Estaba buscando la forma más rápida de obtener popcountgrandes conjuntos de datos. Encontré un efecto muy extraño : cambiar la variable de bucle de unsigneda uint64_thizo que el rendimiento se redujera en un 50% en mi PC. El punto de referencia #include <iostream> #include <chrono> #include <x86intrin.h> int main(int argc, …




12
¿Cómo compilar Tensorflow con las instrucciones SSE4.2 y AVX?
Este es el mensaje recibido al ejecutar un script para verificar si Tensorflow está funcionando: I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcublas.so.8.0 locally I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcudnn.so.5 locally I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcufft.so.8.0 locally I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcuda.so.1 locally I tensorflow/stream_executor/dso_loader.cc:125] successfully …

2
Qué es la operación &&& en C
#include <stdio.h> volatile int i; int main() { int c; for (i = 0; i < 3; i++) { c = i &&& i; printf("%d\n", c); } return 0; } El resultado del programa anterior compilado usando gcces 0 1 1 Con la opción -Wallo -Waddress, gccemite una advertencia: warning: …

3
¿Por qué GCC genera un ensamblaje tan radicalmente diferente para casi el mismo código C?
Mientras escribía una ftolfunción optimizada , encontré un comportamiento muy extraño en GCC 4.6.1. Déjame mostrarte el código primero (para mayor claridad, marqué las diferencias): fast_trunc_one, C: int fast_trunc_one(int i) { int mantissa, exponent, sign, r; mantissa = (i & 0x07fffff) | 0x800000; exponent = 150 - ((i >> 23) …




2
Límites de tipo Nat en Shapeless
En sin forma, el tipo Nat representa una forma de codificar números naturales a nivel de tipo. Esto se usa, por ejemplo, para listas de tamaño fijo. Incluso puede hacer cálculos a nivel de tipo, por ejemplo, agregar una lista de Nelementos a una lista de Kelementos y recuperar una …



Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.