Avatar ·

Cómo alcanzar el máximo teórico de 4 FLOP/ciclo en procesadores x86-64 modernos

¡Hola a todos! Soy un desarrollador C++ principiante y recientemente me topé con un artículo sobre el límite teórico de rendimiento de cálculos de punto flotante. Allí se decía que los procesadores modernos (por ejemplo, Intel Core i7 o AMD Ryzen) son capaces de ejecutar hasta 4 operaciones de punto flotante (FLOP) por cada ciclo. Pero no puedo acercarme a ese indicador. Aquí está mi prueba simple: sumo dos grandes arreglos de números double (10 millones de elementos cada uno) en un bucle. El código se ve así: ```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 =