Domande taggate «compiler-optimization»

L'ottimizzazione del compilatore implica l'adattamento di un compilatore per ridurre il tempo di esecuzione o la dimensione dell'oggetto o entrambi. Ciò può essere ottenuto utilizzando gli argomenti del compilatore (ad esempio CFLAGS, LDFLAGS), plugin del compilatore (DEHYDRA per esempio) o modifiche dirette al compilatore (come la modifica del codice sorgente).


12
Perché GCC non ottimizza a * a * a * a * a * a a (a * a * a) * (a * a * a)?
Sto facendo qualche ottimizzazione numerica su un'applicazione scientifica. Una cosa che ho notato è che GCC ottimizzerà la chiamata pow(a,2)compilandola a*a, ma la chiamata pow(a,6)non è ottimizzata e chiamerà effettivamente la funzione di libreria pow, che rallenta notevolmente le prestazioni. (Al contrario, il compilatore Intel C ++ , eseguibile icc, …

10
La sostituzione di un contatore di loop a 32 bit con 64 bit introduce deviazioni pazzesche delle prestazioni con _mm_popcnt_u64 su CPU Intel
Stavo cercando il modo più veloce per popcountgrandi matrici di dati. Ho riscontrato un effetto molto strano : la modifica della variabile loop da unsigneda ha uint64_tfatto diminuire le prestazioni del 50% sul mio PC. Il punto di riferimento #include <iostream> #include <chrono> #include <x86intrin.h> int main(int argc, char* argv[]) …



1
Perché il compilatore Rust non ottimizza il codice supponendo che due riferimenti mutabili non possano essere alias?
Per quanto ne so, l'aliasing di riferimento / puntatore può ostacolare la capacità del compilatore di generare codice ottimizzato, dal momento che devono assicurarsi che il binario generato si comporti correttamente nel caso in cui i due riferimenti / puntatori siano effettivamente alias. Ad esempio, nel seguente codice C, void …

12
Come compilare Tensorflow con le istruzioni SSE4.2 e AVX?
Questo è il messaggio ricevuto dall'esecuzione di uno script per verificare se Tensorflow funziona: 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 opened …

2
Cos'è l'operazione &&& in 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; } L'output del programma sopra compilato usando gccè 0 1 1 Con l' opzione -Wallo -Waddress, gccemette un avviso: warning: the …



2
Perché lambdas può essere ottimizzato meglio dal compilatore rispetto alle semplici funzioni?
Nel suo libro The C++ Standard Library (Second Edition)Nicolai Josuttis afferma che lambdas può essere ottimizzato meglio dal compilatore rispetto alle semplici funzioni. Inoltre, i compilatori C ++ ottimizzano le lambda meglio di quanto facciano le normali funzioni. (Pagina 213) Perché? Ho pensato che quando si trattava di sottolineare non …


2
Limiti di tipo Nat in Shapeless
In informe, il tipo Nat rappresenta un modo per codificare numeri naturali a livello di tipo. Viene utilizzato ad esempio per elenchi di dimensioni fisse. È anche possibile eseguire calcoli a livello di tipo, ad esempio aggiungere un elenco di Nelementi a un elenco di Kelementi e recuperare un elenco …



Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.