gpt4 book ai didi

c++ - 这个c/c++循环能优化到什么程度?

转载 作者:太空狗 更新时间:2023-10-29 23:22:13 28 4
gpt4 key购买 nike

<分区>

我是优化方面的新手。我一直在阅读一些关于如何优化 C++ 代码的引用资料,但我很难将其应用于实际代码。因此,我只想收集一些真实世界的优化技术,了解如何从下面的循环中尽可能多地从 CPU/内存中榨取汁液

double sum = 0, *array;
array = (double*) malloc(T * sizeof(double));
for(int t = 0; t < T; ++t){
sum += fun(a,b,c,d,e,f,sum);
*(array+t) = sum;
}

其中 a,b,c,d,e,fdoubleTint。欢迎使用任何内容,包括但不限于内存对齐、并行性、openmp/MPI 和 SSE 指令。编译器是标准的 gcc、microsoft 或常用的编译器。如果解决方案是特定于编译器的,请将特定的编译器和任何选项标志与您的解决方案相关联。

谢谢!

PS:忘记提及属性 fun。请假设它是一个简单的函数,内部没有循环,并且仅由基本的算术运算组成。简单地把它想象成一个内联函数。

EDIT2:由于 fun 的细节很重要,请忘记参数 c、d、e、f 并假设 fun 定义为

inline double fun(a,b, sum){
return sum + a* ( b - sum);
}

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com