Avatar ·

Como atingir o máximo teórico de 4 FLOP/ciclo em processadores x86-64 modernos?

Olá a todos! Sou um desenvolvedor C++ iniciante e recentemente me deparei com um artigo sobre o limite teórico de desempenho de computação de ponto flutuante. Dizia que processadores modernos (por exemplo, Intel Core i7 ou AMD Ryzen) são capazes de executar até 4 operações de ponto flutuante (FLOP) por ciclo. Mas não consigo me aproximar desse valor. Aqui está meu teste simples: estou somando dois grandes arrays de números double (10 milhões de elementos) em um loop. O código é assim: ```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 =