loop-unrolling相关内容

如何用 g++ 向量化我的循环?

我在搜索时找到的介绍链接: 6.59.14 Loop-Specific Pragmas 2.100 Pragma Loop_Optimize 如何向 gcc 提供有关循环计数的提示 告诉 gcc 专门展开循环 如何在 C++ 中强制向量化 正如您所见,它们中的大多数都是用于 C 的,但我认为它们也可能适用于 C++.这是我的代码: template//__attribute_ ..
发布时间:2022-01-23 20:30:35 C/C++开发

C/C++ 中的自展开宏循环

我目前正在处理一个项目,其中每个周期都很重要.在分析我的应用程序时,我发现一些内部循环的开销非常高,因为它们只包含一些机器指令.此外,这些循环中的迭代次数在编译时是已知的. 所以我想不是用 copy & 手动展开循环.我可以使用宏在编译时展开循环,以便以后可以轻松修改. 我的印象是这样的: #define LOOP_N_TIMES(N, CODE) 这样我就可以替换 for (i ..
发布时间:2021-12-24 15:12:45 C/C++开发

如何使用 g++ 向量化我的循环?

我在搜索时找到的介绍性链接: 6.59.14 Loop-Specific Pragmas 2.100 Pragma Loop_Optimize 如何向 gcc 提示循环计数 告诉 gcc 专门展开一个循环 如何在 C++ 中强制矢量化 正如你所看到的,它们中的大部分是针对 C 的,但我认为它们也可能适用于 C++.这是我的代码: template//__attribute__ ..
发布时间:2021-12-20 16:24:07 C/C++开发

如何告诉编译器展开这个循环

我在 ARM 处理器上运行了以下循环. //这里的 pin 是指向数组某部分的指针for (i = 0; i numelements; i++){pe = pptr[i];peParent = pe->parent;SPHERE *ps = (SPHERE *)(pe->data);pin[0] = FLOAT2FIX(ps->rad2);pin[1] = *peParent->procs->p ..
发布时间:2021-11-17 22:24:23 其他开发

GCC中的循环展开行为

该问题部分是 GCC 5.1循环展开的后续问题。 根据 GCC文档,正如我对上述问题的回答所述, -funroll-loops 之类的标志会打开“完全循环剥离(即完成删除迭代次数很少的循环”)。因此,启用此类标志后,如果编译器确定可以优化给定代码段的执行,则可以选择展开循环。 不过,我在我的一个项目中注意到,即使未启用相关标志,有时GCC也会展开循环。例如,考虑以下简单的代码段: ..
发布时间:2020-10-06 23:21:06 C/C++开发

为什么clang无法展开循环(gcc展开)?

我正在用C编写并使用clang进行编译。我正在尝试展开一个循环。 循环未展开:优化器无法执行请求的转换;循环未展开。该转换可能被禁用或被指定为不支持的转换命令的一部分[-Wpass-failed = transform-warning] 您可以在此处找到结果: https://godbolt.org/z/4flN-k int foo(int c) { size_t w = ..
发布时间:2020-10-01 22:56:18 其他开发

C/C ++中的自展开宏循环

我目前正在从事一个项目,每个周期都很重要.在对我的应用程序进行性能分析时,我发现某些内部循环的开销非常高,因为它们仅包含一些机器指令.此外,这些循环的迭代次数在编译时是已知的. 因此,我认为不是使用copy&手动展开循环.粘贴,我可以在编译时使用宏展开循环,以便以后可以轻松对其进行修改. 我的形象是这样的: #define LOOP_N_TIMES(N, CODE) ..
发布时间:2020-05-05 08:48:59 C/C++开发

我应该看看PTX来优化我的内核吗?如果是,如何?

您是否建议您阅读内核的PTX代码,以便进一步优化内核? 一个例子:我读到,可以从PTX代码找出自动循环展开是否有效。如果不是这种情况,则必须在内核代码中手动展开循环。 PTX代码还有其他用例吗? 你看看你的PTX代码吗? 我在哪里可以找到如何读取CUDA为我的内核生成的PTX代码? 解决方案 关于PTX的第一点是,它只是在GPU上运行的代码的一个中间表示 - 虚拟机汇编语言 ..
发布时间:2017-03-04 15:59:51 其它硬件开发