Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

{compiler,tools}[GCCcore/12.3.0] Clang v16.0.6, Z3 v4.12.2 #18509

Merged

Conversation

boegel
Copy link
Member

@boegel boegel commented Aug 9, 2023

(created using eb --new-pr)

Needs: easybuilders/easybuild-easyblocks#2929

@boegel boegel added the update label Aug 9, 2023
@boegel boegel added this to the 4.x milestone Aug 9, 2023
@boegel
Copy link
Member Author

boegel commented Aug 9, 2023

Test report by @boegel
SUCCESS
Build succeeded for 3 out of 3 (2 easyconfigs in total)
node3116.skitty.os - Linux RHEL 8.6, x86_64, Intel(R) Xeon(R) Gold 6140 CPU @ 2.30GHz (skylake_avx512), Python 3.6.8
See https://gist.github.com/boegel/4db56a5ed74642952fdbe0c466642459 for a full test report.

@SebastianAchilles
Copy link
Member

@boegelbot please test @ generoso
CORE_CNT=16

@boegelbot
Copy link
Collaborator

@SebastianAchilles: Request for testing this PR well received on login1

PR test command 'EB_PR=18509 EB_ARGS= EB_CONTAINER= /opt/software/slurm/bin/sbatch --job-name test_PR_18509 --ntasks="16" ~/boegelbot/eb_from_pr_upload_generoso.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 11410

Test results coming soon (I hope)...

- notification for comment with ID 1671332810 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@casparvl
Copy link
Contributor

casparvl commented Aug 9, 2023

@boegelbot please test @ jsc-zen2
CORE_CNT=16

@boegelbot
Copy link
Collaborator

@casparvl: Request for testing this PR well received on jsczen2l1.int.jsc-zen2.easybuild-test.cluster

PR test command 'EB_PR=18509 EB_ARGS= /opt/software/slurm/bin/sbatch --mem-per-cpu=4000M --job-name test_PR_18509 --ntasks="16" ~/boegelbot/eb_from_pr_upload_jsc-zen2.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 3115

Test results coming soon (I hope)...

- notification for comment with ID 1671606181 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@casparvl
Copy link
Contributor

casparvl commented Aug 9, 2023

Test report by @casparvl
FAILED
Build succeeded for 1 out of 2 (2 easyconfigs in total)
tcn1.local.snellius.surf.nl - Linux RHEL 8.6, x86_64, AMD EPYC 7H12 64-Core Processor, Python 3.6.8
See https://gist.github.com/casparvl/a0ef7f07ee869466e0684b115c79ca51 for a full test report.

@boegelbot
Copy link
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 2 out of 2 (2 easyconfigs in total)
cnx1 - Linux Rocky Linux 8.5, x86_64, Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz (haswell), Python 3.6.8
See https://gist.github.com/boegelbot/35ea3eb9ea26129c9e812b76ad2d0df2 for a full test report.

@SebastianAchilles
Copy link
Member

Test report by @SebastianAchilles
Using easyblocks from PR(s) easybuilders/easybuild-easyblocks#2929
SUCCESS
Build succeeded for 2 out of 2 (2 easyconfigs in total)
zen2-ubuntu-2304 - Linux Ubuntu 23.04 (Lunar Lobster), x86_64, AMD EPYC 7452 32-Core Processor (zen2), Python 3.11.2
See https://gist.github.com/SebastianAchilles/021f14cd9c05a51b0ed75ec7b480e8b0 for a full test report.

@boegelbot
Copy link
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 2 out of 2 (2 easyconfigs in total)
jsczen2c1.int.jsc-zen2.easybuild-test.cluster - Linux Rocky Linux 8.5, x86_64, AMD EPYC 7742 64-Core Processor (zen2), Python 3.6.8
See https://gist.github.com/boegelbot/c4981491a3e8710c1e9b27ec811e3ba9 for a full test report.

@casparvl
Copy link
Contributor

I think my failure comes from a -funroll-all-loops flag.

From the EasyBuild log (note, this was a different Clang version I was trying to build, but it ran into the same error and I didn't have the logs/build dir for the Clang in this PR anymore):

CMake Error at /gpfs/nvme1/1/casparl/ebbuildpath/Clang/16.0.4/GCCcore-12.2.0/llvm-project-16.0.4.src/libunwind/src/CMakeLists.txt:109 (message):
  Compiler doesn't support generation of unwind tables if exception support
  is disabled.  Building libunwind DSO with runtime dependency on C++ ABI
  library is not supported

From https://stackoverflow.com/questions/73679415/build-llvm-16-master-fail-on-libunwind it seems it might be related to the failing configure tests for e.g. CXX_SUPPORTS_FNO_EXCEPTIONS_FLAG. Looking in the configure log (at /gpfs/nvme1/1/casparl/ebbuildpath/Clang/16.0.4/GCCcore-12.2.0/llvm.obj.1/runtimes/runtimes-bins/CMakeFiles/CMakeError.log):

Source file was:
int main() { return 0; }
Performing C++ SOURCE FILE Test CXX_SUPPORTS_FNO_EXCEPTIONS_FLAG failed with the following output:
Change Dir: /gpfs/nvme1/1/casparl/ebbuildpath/Clang/16.0.4/GCCcore-12.2.0/llvm.obj.1/runtimes/runtimes-bins/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_9c483/fast && gmake[3]: Entering directory '/gpfs/nvme1/1/casparl/ebbuildpath/Clang/16.0.4/GCCcore-12.2.0/llvm.obj.1/runtimes/runtimes-bins/CMakeFiles/CMakeTmp'
/usr/bin/gmake  -f CMakeFiles/cmTC_9c483.dir/build.make CMakeFiles/cmTC_9c483.dir/build
gmake[4]: Entering directory '/gpfs/nvme1/1/casparl/ebbuildpath/Clang/16.0.4/GCCcore-12.2.0/llvm.obj.1/runtimes/runtimes-bins/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_9c483.dir/src.cxx.o
/gpfs/nvme1/1/casparl/ebbuildpath/Clang/16.0.4/GCCcore-12.2.0/llvm.obj.1/./bin/clang++ --target=x86_64-unknown-linux-gnu -DCXX_SUPPORTS_FNO_EXCEPTIONS_FLAG  -O2 -ftree-vectorize -O2 -mavx2 -mfma -funroll-all-loops -fno-math-errno -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wno-comment    -fno-exceptions -MD -MT CMakeFiles/cmTC_9c483.dir/src.cxx.o -MF CMakeFiles/cmTC_9c483.dir/src.cxx.o.d -o CMakeFiles/cmTC_9c483.dir/src.cxx.o -c /gpfs/nvme1/1/casparl/ebbuildpath/Clang/16.0.4/GCCcore-12.2.0/llvm.obj.1/runtimes/runtimes-bins/CMakeFiles/CMakeTmp/src.cxx
clang-16: warning: optimization flag '-funroll-all-loops' is not supported [-Wignored-optimization-argument]
Linking CXX executable cmTC_9c483
/gpfs/nvme1/1/casparl/generic/software/CMake/3.24.3-GCCcore-12.2.0/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9c483.dir/link.txt --verbose=1
/gpfs/nvme1/1/casparl/ebbuildpath/Clang/16.0.4/GCCcore-12.2.0/llvm.obj.1/./bin/clang++ --target=x86_64-unknown-linux-gnu -O2 -ftree-vectorize -O2 -mavx2 -mfma -funroll-all-loops -fno-math-errno -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wno-comment  -L/scratch-nvme/1/casparl/generic/software/Z3/4.12.2-GCCcore-12.2.0/lib64 -L/scratch-nvme/1/casparl/generic/software/Z3/4.12.2-GCCcore-12.2.0/lib -L/scratch-nvme/1/casparl/generic/software/GMP/6.2.1-GCCcore-12.2.0/lib64 -L/scratch-nvme/1/casparl/generic/software/GMP/6.2.1-GCCcore-12.2.0/lib -L/scratch-nvme/1/casparl/generic/software/ncurses/6.3-GCCcore-12.2.0/lib64 -L/scratch-nvme/1/casparl/generic/software/ncurses/6.3-GCCcore-12.2.0/lib -L/scratch-nvme/1/casparl/generic/software/libxml2/2.10.3-GCCcore-12.2.0/lib64 -L/scratch-nvme/1/casparl/generic/software/libxml2/2.10.3-GCCcore-12.2.0/lib -L/scratch-nvme/1/casparl/generic/software/hwloc/2.8.0-GCCcore-12.2.0/lib64 -L/scratch-nvme/1/casparl/generic/software/hwloc/2.8.0-GCCcore-12.2.0/lib -L/scratch-nvme/1/casparl/generic/software/binutils/2.39-GCCcore-12.2.0/lib64 -L/scratch-nvme/1/casparl/generic/software/binutils/2.39-GCCcore-12.2.0/lib -L/scratch-nvme/1/casparl/generic/software/Python/3.10.8-GCCcore-12.2.0/lib64 -L/scratch-nvme/1/casparl/generic/software/Python/3.10.8-GCCcore-12.2.0/lib -L/scratch-nvme/1/casparl/generic/software/Perl/5.36.0-GCCcore-12.2.0/lib64 -L/scratch-nvme/1/casparl/generic/software/Perl/5.36.0-GCCcore-12.2.0/lib -L/scratch-nvme/1/casparl/generic/software/GCCcore/12.2.0/lib64 -L/scratch-nvme/1/casparl/generic/software/GCCcore/12.2.0/lib  CMakeFiles/cmTC_9c483.dir/src.cxx.o -o cmTC_9c483
gmake[4]: Leaving directory '/gpfs/nvme1/1/casparl/ebbuildpath/Clang/16.0.4/GCCcore-12.2.0/llvm.obj.1/runtimes/runtimes-bins/CMakeFiles/CMakeTmp'
gmake[3]: Leaving directory '/gpfs/nvme1/1/casparl/ebbuildpath/Clang/16.0.4/GCCcore-12.2.0/llvm.obj.1/runtimes/runtimes-bins/CMakeFiles/CMakeTmp'

Well, that wasn't a failure at all, it just was a warning! Still, the configure seems to conclude this is a failure (?). I'll try rerunning the build for this PR without -funroll-all-loops to see if it then succeeds.

Question: this flag is set for GCC. Since here, Clang is being build with Clang, should that receive the GCC optarch? I think we've had some discussion on this before. The tricky part is: it's not trivial that all GCC flags are understood by Clang. At the same time: Clang is not a toolchain, so can we even set an optarch for this...?

@casparvl
Copy link
Contributor

Test report by @casparvl
FAILED
Build succeeded for 1 out of 2 (2 easyconfigs in total)
tcn1.local.snellius.surf.nl - Linux RHEL 8.6, x86_64, AMD EPYC 7H12 64-Core Processor, Python 3.6.8
See https://gist.github.com/casparvl/1811e08ccea01021054b451f1c8d2f9c for a full test report.

@casparvl
Copy link
Contributor

Well, at least without the -funroll-all-loops this config test:

-- Performing Test CXX_SUPPORTS_FNO_EXCEPTIONS_FLAG
-- Performing Test CXX_SUPPORTS_FNO_EXCEPTIONS_FLAG - Success

Now succeeds just fine. The new error is now in the sanity check:

= 2023-08-16 18:32:21,326 build_log.py:171 ERROR EasyBuild crashed with an error (at easybuild/base/exceptions.py:126 in __init__): Sanity check failed: no file found at 'lib/clang/16.0.4/include/stddef.h' in /scratch-nvme/1/casparl/generic/software/Clang/16.0.4-GCCcore-12.2.0
no file found at 'lib/clang/16.0.4/include/omp.h' in /scratch-nvme/1/casparl/generic/software/Clang/16.0.4-GCCcore-12.2.0
no (non-empty) directory found at 'lib/clang/16.0.4/lib' in /scratch-nvme/1/casparl/generic/software/Clang/16.0.4-GCCcore-12.2.0 (at easybuild/framework/easyblock.py:3639 in _sanity_check_step)

@casparvl
Copy link
Contributor

Interesting, for me the omp.h does exist, but in a slightly different directory that does not include the version and revision:

/scratch-nvme/1/casparl/generic/software/Clang/16.0.4-GCCcore-12.2.0/lib/clang/16/include/omp.h

The only thing that tends to be different for us than for others is that we build with RPATH support... I'm not sure how that would impact the version dir that this gets installed in, but... ?

@casparvl
Copy link
Contributor

Ah, same issue as #18551
Seems there is an updated EasyBlock at easybuilders/easybuild-easyblocks#2929
I didn't realize... But I guess this PR needs it :)

@casparvl
Copy link
Contributor

Test report by @casparvl
Using easyblocks from PR(s) easybuilders/easybuild-easyblocks#2929
SUCCESS
Build succeeded for 2 out of 2 (2 easyconfigs in total)
tcn1.local.snellius.surf.nl - Linux RHEL 8.6, x86_64, AMD EPYC 7H12 64-Core Processor, Python 3.6.8
See https://gist.github.com/casparvl/8241b3a8d4519da25c4f5365352c919a for a full test report.

@casparvl
Copy link
Contributor

Going in, thanks @boegel!

@casparvl casparvl merged commit 6d80d97 into easybuilders:develop Aug 18, 2023
@casparvl casparvl modified the milestones: 4.x, next release (4.8.1?) Aug 18, 2023
@boegel boegel deleted the 20230809074148_new_pr_Clang1606 branch August 24, 2023 08:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants