E4S-Project / E4S-Project/e4s

libceed build targets wrong architecture

Open
#175 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Shell
Stars
41
Forks
15
PR merge metrics
No merged PRs in 30d

Description

The Spack environment in the x86_64 cuda 80 image targets x86_64_v3, but we see:

 objdump -d $(spack location -i libceed)/lib/libceed.so | grep -m5 -E 'zmm|k[0-7],|vpternlog|vpermt2|evex'
   11250:       62 f1 fd 48 10 bc 30    vmovupd 0x8(%rax,%rsi,1),%zmm7
   1125b:       62 f1 c5 48 59 3c 31    vmulpd (%rcx,%rsi,1),%zmm7,%zmm7
   11284:       62 f3 fd 48 1b f9 01    vextractf64x4 $0x1,%zmm7,%ymm1
   11412:       62 f2 fd 48 19 f0       vbroadcastsd %xmm0,%zmm6
   11420:       62 f1 fd 48 10 8c 30    vmovupd 0x8(%rax,%rsi,1),%zmm1

...indicating it was built for AVX-512. Possibly the configure process detected the actual architecture of the build runner and ignored the arch spec that should have been passed through the Spack package.

This results in an 'illegal instruction' error from the libceed test on 'athena' which only provides ZEN2 compatibility.

The libceed-cuda test has been disabled until this can be resolved.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Spack environment and package configuration used by the x86_64 cuda 80 image, then inspect how the architecture spec reaches the configure process. Reproduce the objdump check and run the libceed test on the athena-compatible target; done means the library no longer emits AVX-512 instructions and the test passes without illegal-instruction failures. Keep the disabled libceed-cuda test in view.

Written by the indexing model from the issue text.

Assessment

Domain
build-system, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.