簡體   English   中英

我是否必須從 Ubuntu 18.04 上的源代碼構建 clang-11 才能卸載 OpenMP GPU 目標?

[英]Do I have to build clang-11 from source on Ubuntu 18.04 to have OpenMP GPU target offload?

我在 Ubuntu 18.04 上從https://apt.llvm.org/安裝了clang-11 ,並且我的 C++ 測試項目中有 OpenMP 主機設備功能,但omp_get_num_devices()返回0 ,即使我有 Nvidia 88724482681488 和 85598 工作 8631工具包。 我是否必須從源代碼構建一個特殊版本的 Clang 才能使 OpenMP GPU 卸載正常工作,如下所述: https://hpc-wiki.info/hpc/Building_LLVM/Clang_with_OpenMP_Offloading_to_NVIDIA_GPUs

是的,我相信您必須從源代碼構建您自己的版本。 我編寫了一個簡單的腳本來構建具有 GPU 卸載支持的 Clang/LLVM。 請查看: https://gist.github.com/ouankou/27c1fc22aee9125190492ea126125249

該腳本采用三個 arguments:位置、LLVM 版本、CUDA 計算能力編號。 例如,要在 NVIDIA Tesla V100 (Volta) 上構建 Clang/LLVM 11:

./install_llvm.sh $HOME/llvm11 11 70

如果需要,您還可以將腳本末尾的變量設置添加到.bashrc中。

LLVM 的 Debian/Ubuntu 軟件包不附帶對 GPU [0] 的 OpenMP 卸載支持(至少在 LLVM 11 之前)。 打包這有點棘手,但我們正在努力。 目前,棘手的部分之一是,為了獲得合理的性能,它需要兩階段構建,並且您需要(編輯)指定您的目標 GPU 架構。 現在,當我們查看構建機器配置並做出合理猜測時,后一個要求在 LLVM 中已部分消失,但在 LLVM 11 版本 (IIRC) 中仍然存在。 除其他事項外,我們還在努力消除兩階段要求。

雖然很新而且大部分是空的,但這些東西最終會在這里描述: http://openmp.llvm.org/docs

此外,如果您有任何問題或疑慮,請隨時發送 email 至 openmp-dev@lists.llvm.org :)

最后,乍一看 @ouankou 的腳本看起來不錯,除了我通常推薦最新的 top-of-trunk 而不是發布。 它可能不穩定,但是,TBH,對於 OpenMP 卸載支持,它的穩定性可能不亞於發行版。

[0] CMake 摘錄: https://paste.debian.net/1171752/ (感謝 Sylvestre!)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM