如何在现代 x86-64 处理器上达到理论最大 4 FLOP/时钟周期?
大家好!我是一名初学 C++ 的开发者,最近看到一篇关于浮点运算性能理论极限的文章。文章提到,现代处理器(例如 Intel Core i7 或 AMD Ryzen)每个时钟周期能够执行多达 4 次浮点运算(FLOP)。但我无论如何都无法接近这个指标。
以下是我的简单测试:我在一个循环中对两个大型 double 数组(各 1000 万个元素)求和。代码如下:
```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 = (