如何更好地理解 GCC 中某些指令的工作流程?

问题描述 投票:0回答:1

我目前正在开发一个项目,我需要更好地了解 GOMP 指令的 GCC 工作流程,我也想对源代码进行一些更改。 有这样做的最佳实践吗? 我需要重新编译整个 GCC 来完成此操作吗?

我已经搜索过如何构建我的 GCC,但仅仅为了更改一些更改而这样做感觉有点过分。

c gcc compiler-optimization gnu libgomp
1个回答
1
投票

如果您查看此处的 openmp 文档,似乎 GOMP 使用 makefile 和 pragmas 向 gcc 编译器提供信息并注释其行为方式,而不是实际重写 GCC 源代码。我不是专家,所以如果我不在,请原谅我......这是我看到的一个例子:

#include <std.io>
#include <omp.h>

int main (void) {
    omp_set_nested(1);
    omp_set_dynamic(0);
    #pragma omp parallel
    {
        //should print whatever OMP_NUM_THREADS was set to.
        printf ("Inner: num_thds=%d\n", omp_get_num_threads());
    }
    #pragma omp barrier
    return 0;
}

您是否尝试使用 GOMP 将线程卸载到另一台设备?或者您只想在本地运行多线程?您具体想使用 GOMP 做什么?

这是我发现的另一个有用的资源... 将 OpenMP 与 C 结合使用

© www.soinside.com 2019 - 2024. All rights reserved.