Skip to content

[Issue]: HSA_STATUS_ERROR_MEMORY_APERTURE_VIOLATION with concatenate fusions. #453

Description

@owainkenwayucl

Problem Description

While working on AlphaFold 3 (see #404) I stumbled across another bug with JAX 0.9.1 on ROCm 7.2.2, specifically:

GPU coredump: execvp failed: No such file or directory
Failed to write segment data to pipe: Broken pipe
GPU coredump: handler exited with error (status: 1)
GPU core dump failed
Kernel Name: input_concatenate_fusion
VGPU=0x808f720 SWq=0x7f394c006000, HWq=0x7f38d8400000, id=2
        Dispatch Header =0xb02 (type=2, barrier=1, acquire=1, release=1), setup=0
        grid=[15, 1, 1], workgroup=[15, 1, 1]
        private_seg_size=0, group_seg_size=0
        kernel_obj=0x7f392c00c600, kernarg_address=0x0x7f3828200200
        completion_signal=0x0, correlation_id=0
        rptr=17, wptr=20
 Kernel Name: input_concatenate_fusion
VGPU=0x80b5fe0 SWq=0x7f394c006000, HWq=0x7f38d8400000, id=2
        Dispatch Header =0xb02 (type=2, barrier=1, acquire=1, release=1), setup=0
        grid=[15, 1, 1], workgroup=[15, 1, 1]
        private_seg_size=0, group_seg_size=0
        kernel_obj=0x7f392c00c600, kernarg_address=0x0x7f3828200200
        completion_signal=0x0, correlation_id=0
        rptr=17, wptr=20
 Kernel Name: input_concatenate_fusion
VGPU=0x80d34c0 SWq=0x7f394c006000, HWq=0x7f38d8400000, id=2
        Dispatch Header =0xb02 (type=2, barrier=1, acquire=1, release=1), setup=0
        grid=[15, 1, 1], workgroup=[15, 1, 1]
        private_seg_size=0, group_seg_size=0
        kernel_obj=0x7f392c00c600, kernarg_address=0x0x7f3828200200
        completion_signal=0x0, correlation_id=0
        rptr=17, wptr=20
 Kernel Name: input_concatenate_fusion
VGPU=0x80f0b40 SWq=0x7f394c006000, HWq=0x7f38d8400000, id=2
        Dispatch Header =0xb02 (type=2, barrier=1, acquire=1, release=1), setup=0
        grid=[15, 1, 1], workgroup=[15, 1, 1]
        private_seg_size=0, group_seg_size=0
        kernel_obj=0x7f392c00c600, kernarg_address=0x0x7f3828200200
        completion_signal=0x0, correlation_id=0
        rptr=17, wptr=20
 Kernel Name: input_concatenate_fusion
VGPU=0x810e200 SWq=0x7f394c006000, HWq=0x7f38d8400000, id=2
        Dispatch Header =0xb02 (type=2, barrier=1, acquire=1, release=1), setup=0
        grid=[15, 1, 1], workgroup=[15, 1, 1]
        private_seg_size=0, group_seg_size=0
        kernel_obj=0x7f392c00c600, kernarg_address=0x0x7f3828200200
        completion_signal=0x0, correlation_id=0
        rptr=17, wptr=20
:0:rocdevice.cpp            :3586: 87036087293 us:  Callback: Queue 0x7f38d8400000 aborting with error : HSA_STATUS_ERROR_MEMORY_APERTURE_VIOLATION: The agent attempted to access memory beyond the largest legal address. code: 0x29
Aborted (core dumped)

Operating System

NAME="Ubuntu" VERSION="24.04.4 LTS (Noble Numbat)" inside container.

CPU

AMD EPYC 9654 96-Core Processor * 2

GPU

AMD Instinct MI300X

ROCm Version

ROCm 7.2.2

ROCm Component

No response

Steps to Reproduce

I've managed to generate a minimum JAX program that triggers this problem:

import jax, jax.numpy as jnp

def frame(a, b):
    return jnp.concatenate([a[None], b[None], jnp.cross(a, b)[None]], axis=0)

a = jnp.ones((5, 3)); b = jnp.ones((5, 3))
out = jax.jit(jax.vmap(frame))(a, b)  # may need shape tweaks to match [1,5,3]/[5,3]
out.block_until_ready()

To run the code:

root@4fa981d0ce64:~/af_output/repro# export XLA_FLAGS='--xla_dump_hlo_pass_re=.*fusion.* --xla_dump_to=/root/af_output/dump_repro2 --xla_dump_hlo_as_text' 
root@4fa981d0ce64:~/af_output/repro# python3 repro.py 
GPU coredump: execvp failed: No such file or directory
Failed to write segment data to pipe: Broken pipe
GPU coredump: handler exited with error (status: 1)
GPU core dump failed
Kernel Name: input_concatenate_fusion
VGPU=0x92bf7c0 SWq=0x7f6050006000, HWq=0x7f5fb8400000, id=2
        Dispatch Header =0xb02 (type=2, barrier=1, acquire=1, release=1), setup=0
        grid=[15, 1, 1], workgroup=[15, 1, 1]
        private_seg_size=0, group_seg_size=0
        kernel_obj=0x7f6040614600, kernarg_address=0x0x7f5f80200200
        completion_signal=0x0, correlation_id=0
        rptr=18, wptr=21
 Kernel Name: input_concatenate_fusion
VGPU=0x92e6080 SWq=0x7f6050006000, HWq=0x7f5fb8400000, id=2
        Dispatch Header =0xb02 (type=2, barrier=1, acquire=1, release=1), setup=0
        grid=[15, 1, 1], workgroup=[15, 1, 1]
        private_seg_size=0, group_seg_size=0
        kernel_obj=0x7f6040614600, kernarg_address=0x0x7f5f80200200
        completion_signal=0x0, correlation_id=0
        rptr=18, wptr=21
 Kernel Name: input_concatenate_fusion
VGPU=0x9303560 SWq=0x7f6050006000, HWq=0x7f5fb8400000, id=2
        Dispatch Header =0xb02 (type=2, barrier=1, acquire=1, release=1), setup=0
        grid=[15, 1, 1], workgroup=[15, 1, 1]
        private_seg_size=0, group_seg_size=0
        kernel_obj=0x7f6040614600, kernarg_address=0x0x7f5f80200200
        completion_signal=0x0, correlation_id=0
        rptr=18, wptr=21
 Kernel Name: input_concatenate_fusion
VGPU=0x9320be0 SWq=0x7f6050006000, HWq=0x7f5fb8400000, id=2
        Dispatch Header =0xb02 (type=2, barrier=1, acquire=1, release=1), setup=0
        grid=[15, 1, 1], workgroup=[15, 1, 1]
        private_seg_size=0, group_seg_size=0
        kernel_obj=0x7f6040614600, kernarg_address=0x0x7f5f80200200
        completion_signal=0x0, correlation_id=0
        rptr=18, wptr=21
 Kernel Name: input_concatenate_fusion
VGPU=0x933e2a0 SWq=0x7f6050006000, HWq=0x7f5fb8400000, id=2
        Dispatch Header =0xb02 (type=2, barrier=1, acquire=1, release=1), setup=0
        grid=[15, 1, 1], workgroup=[15, 1, 1]
        private_seg_size=0, group_seg_size=0
        kernel_obj=0x7f6040614600, kernarg_address=0x0x7f5f80200200
        completion_signal=0x0, correlation_id=0
        rptr=18, wptr=21
:0:rocdevice.cpp            :3586: 87118002428 us:  Callback: Queue 0x7f5fb8400000 aborting with error : HSA_STATUS_ERROR_MEMORY_APERTURE_VIOLATION: The agent attempted to access memory beyond the largest legal address. code: 0x29
Aborted (core dumped)

Happy to provide dumps etc as before to help track down the bug.

(Optional for Linux users) Output of /opt/rocm/bin/rocminfo --support

No response

Additional Information

No response

Metadata

Metadata

Assignees

Labels

status: triageIndicates an issue has been assigned for investigation.

Type

No type

Fields

No fields configured for issues without a type.

Projects

Status
Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions