Avatar ·

Comment atteindre le maximum théorique de 4 FLOP/cycle sur les processeurs x86-64 modernes ?

Bonjour à tous ! Je suis un développeur C++ débutant et je suis récemment tombé sur un article concernant la limite théorique des performances de calcul en virgule flottante. Il y était dit que les processeurs modernes (par exemple, Intel Core i7 ou AMD Ryzen) sont capables d'effectuer jusqu'à 4 opérations en virgule flottante (FLOP) par cycle. Mais je n'arrive pas du tout à m'approcher de cette valeur. Voici mon test simple : je somme deux grands tableaux de nombres double (10 millions d'éléments chacun) dans une boucle. Le code ressemble à ceci : ```cpp #include #include #include int main() { const size_t N = 10'000'000; std::vector a(N, 1.0); std::vector b(N, 2.0); std::vector c(N, 0.0); auto start = std::chrono::high_resolution_clock::now(); for (size_t i = 0; i < N; ++i) { c[i] = a[i] + b[i]; } auto end = std::chrono::high_resolution_clock::now(); double elapsed = std::chrono::duration(end - start).count(); double flops =