我是不是必须在 Ubuntu 18.04 上从源代码构建 gcc-10 才能卸载 OpenMP GPU 目标?
Posted
技术标签:
【中文标题】我是不是必须在 Ubuntu 18.04 上从源代码构建 gcc-10 才能卸载 OpenMP GPU 目标?【英文标题】:Do I have to build gcc-10 from source on Ubuntu 18.04 to have OpenMP GPU target offload?我是否必须在 Ubuntu 18.04 上从源代码构建 gcc-10 才能卸载 OpenMP GPU 目标? 【发布时间】:2021-02-22 10:35:07 【问题描述】:当我在 Ubuntu 18.04 上使用默认存储库中的 gcc-10(和 9、8、7)时,omp_get_num_devices()
返回 0
,即使我有:
paul@desktop:~$ nvidia-smi
...
| NVIDIA-SMI 450.80.02 Driver Version: 450.80.02 CUDA Version: 11.0 |
我是否需要特殊版本的 gcc 才能获得目标卸载功能?我的项目的特殊构建过程?
【问题讨论】:
【参考方案1】:缺少的是nvptx-tools。我安装了它们:
sudo apt install nvptx-tools libgomp-plugin-nvptx1 gcc-10-offload-nvptx
并且omp_get_num_devices()
现在返回1
。不幸的是,仍然缺少一些东西来阻止带有卸载指令的代码链接。
请记住,gcc-10 在 Ubuntu 18.04 中不受官方支持,因此必须使用测试存储库
【讨论】:
试试这个,也许? ***.com/questions/57206552/… @Richard 我尝试了所有我能找到的东西。我仍然不确定,如果我需要自定义 gcc 构建或只是不同的链接器选项。我发布了一个更详细的问题:***.com/questions/64781646 您好,您解决了这个问题吗?实际上,我正在使用 WSL Ubuntu 并尝试使用 OpenMP 或 OpenACC 进行 GPU 并行化,但不知何故我无法使用它。所以我想知道你是否可以使用 OpenMP 或 OpenACC。 @ChangseokMa 我没有时间解决这个问题。当我有时间解决这个问题时,我会发布解决方案。以上是关于我是不是必须在 Ubuntu 18.04 上从源代码构建 gcc-10 才能卸载 OpenMP GPU 目标?的主要内容,如果未能解决你的问题,请参考以下文章
如何在Ubuntu 18.04 Server上安装Redis
在 Ubuntu 14.04 上从源代码编译时如何链接到 opencv 3.0?
fgets 无法在 Ubuntu 20.04 上从管道读取两次