mcdc-project / mcdc-project/mcdc

Tuolumne GPU Deployment

Open
#283 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
61
Forks
38
Avg merge
1d 13h
Merged PRs (30d)
10

Description

When deploying to Tuolumne (Python 3.11.5 ROCm 6.0.0) this error results when running any GPU program. Environments built using attached source file build_rocm.sh.txt.

Going to retry with Python/3.10.8.

Env

  • Python 3.11.8
  • Numba 0.60.0
  • Numba-hip 0.1.0
  • ROCm 6.0.0
  • rocm-llvm-python 6.0.0.470.19
  • hip-python 6.0.0.470.16
  • harmonize (main branch)
  • MC/DC Release (0.11.1)

Error and Traceback

(venv-tuo) [morgan83@tuolumne1002:kobayashi3-TD]$ flux run -N 1 -n 1 -g 1 --queue=pdebug python input.py --mode=numba --target=gpu --gpu_arena_size=100000000 --gpu_strat=event
flux-job: faHx86k6rw9 started                                                                                                                                                                                                       00:00:05
 [ VERBOSE ]  ROCM_PLATFORM detected. Proceeding under ROCM.
 [ VERBOSE ]  Found hipcc located at '/opt/rocm-6.0.0/bin/hipcc'
 [ VERBOSE ]  ROCM_PATH set to /opt/rocm-6.0.0
 [ VERBOSE ]  Compiling function 'initialize' for 'mcdc_source_event'
...
 [ VERBOSE ]  Creating shared object file
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.	Program arguments: /opt/rocm-6.0.0/llvm/bin/ld.lld --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -shared -o __harmonize_cache__/harmonize.so /lib/../lib64/crti.o /opt/rocm-6.0.0/lib/llvm/lib/clang/17.0.0/lib/linux/clang_rt.crtbegin-x86_64.o -L/opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12 -L/opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/lib -L/usr/lib --disable-new-dtags /var/tmp/morgan83/harmonize-d20c5b.o /var/tmp/morgan83/harmonize-1b417a.o -L/opt/rocm-6.0.0/lib/llvm/bin/../../../lib -rpath /opt/rocm-6.0.0/lib/llvm/bin/../../../lib -lamdhip64 -lstdc++ -lm /opt/rocm-6.0.0/lib/llvm/lib/clang/17.0.0/lib/linux/libclang_rt.builtins-x86_64.a -lgcc_s -lc /opt/rocm-6.0.0/lib/llvm/lib/clang/17.0.0/lib/linux/libclang_rt.builtins-x86_64.a -lgcc_s /opt/rocm-6.0.0/lib/llvm/lib/clang/17.0.0/lib/linux/clang_rt.crtend-x86_64.o /lib/../lib64/crtn.o
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  ld.lld          0x00000000008854e8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 40
1  ld.lld          0x0000000000882f0c
2  libpthread.so.0 0x0000155554d40d10
3  ld.lld          0x00000000009d4edc void lld::elf::ELFFileBase::init<llvm::object::ELFType<(llvm::support::endianness)1, true>>(lld::elf::InputFile::Kind) + 364
4  ld.lld          0x0000000000992a66 lld::elf::LinkerDriver::addFile(llvm::StringRef, bool) + 646
5  ld.lld          0x0000000000993b7f lld::elf::LinkerDriver::addLibrary(llvm::StringRef) + 79
6  ld.lld          0x0000000000993f2b lld::elf::LinkerDriver::createFiles(llvm::opt::InputArgList&) + 827
7  ld.lld          0x00000000009aa854 lld::elf::LinkerDriver::linkerMain(llvm::ArrayRef<char const*>) + 1908
8  ld.lld          0x00000000009ac33a lld::elf::link(llvm::ArrayRef<char const*>, llvm::raw_ostream&, llvm::raw_ostream&, bool, bool) + 3706
9  ld.lld          0x000000000080c82c
10 ld.lld          0x000000000080cc56 lld_main(int, char**, llvm::ToolContext const&) + 390
11 ld.lld          0x000000000077aef1 main + 33
12 libc.so.6       0x00001555534ec7e5 __libc_start_main + 229
13 ld.lld          0x000000000080a65e _start + 46
clang: error: unable to execute command: Bus error (core dumped)
clang: error: linker command failed due to signal (use -v to see invocation)
Traceback (most recent call last):
  File "/usr/WS1/morgan83/tuo_dep/MCDC/examples/fixed_source/kobayashi3-TD/input.py", line 70, in <module>
    mcdc.run()
  File "/usr/WS1/morgan83/tuo_dep/MCDC/mcdc/main.py", line 67, in run
    data_arr, mcdc_arr = prepare()
                         ^^^^^^^^^
  File "/usr/WS1/morgan83/tuo_dep/MCDC/mcdc/main.py", line 776, in prepare
    build_gpu_progs(input_deck, config.args)
  File "/usr/WS1/morgan83/tuo_dep/MCDC/mcdc/loop.py", line 856, in build_gpu_progs
    adapt.harm.RuntimeSpec.bind_specs()
  File "/usr/WS1/morgan83/tuo_dep/harmonize/harmonize/python/runtime.py", line 1274, in bind_specs
    subprocess.run(cmd.split(),shell=False,check=True)
  File "/collab/usr/gapps/python/toss_4_x86_64_ib/anaconda3-2023.09/lib/python3.11/subprocess.py", line 571, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/opt/rocm-6.0.0/bin/hipcc', '-fPIC', '-shared', '-fgpu-rdc', '--hip-link', '__harmonize_cache__/harmonize.bc', '-o', '__harmonize_cache__/harmonize.so', '-g']' returned non-zero exit status 1.
flux-job: task(s) exited with exit code 1

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 attached build_rocm.sh.txt and reproduce the failure using the listed Tuolumne, Python, ROCm, Numba, and harmonize versions; also compare the planned Python 3.10.8 retry. Trace the GPU build path through mcdc/main.py, mcdc/loop.py, and harmonize/python/runtime.py, focusing on the hipcc linker invocation. Done should identify the cause of the ld.lld bus error and establish a verified deployment outcome.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
hpc
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.