Skip to content

Illegal memory access in kernel with legacy full_network data (osmid consistency) #64

Description

@Xuan-1998

Problem

When running with berkeley_2018/full_network/ on H200 GPUs, the simulation starts but crashes with:

GPUassert: an illegal memory access was encountered b18CUDA_trafficSimulator.cu:2251

The pipeline gets through:

  • Network loading (223K vertices, 540K edges) ✅
  • OD demand + synthetic departure times ✅
  • Contraction hierarchies routing (10K paths in 2s) ✅
  • CUDA structure upload ✅
  • Microsimulation kernel launch → crash at first timestep

Root cause

The laneIdMapper_d (global edge ID → per-GPU lane map index) is populated during lane map creation using edge IDs from the graph, but the routing engine generates path indices that might not be in the same ID space after the osmid→index remapping in the legacy data path.

Steps to reproduce

docker run --rm --gpus all -v $PWD:/lpsim -w /lpsim/LivingCity yibo123/lpsim:cuda12.4 ./LivingCity
# with NETWORK_PATH=berkeley_2018/full_network/ and NUM_GPUS=1

Notes

The new_full_network/ data format (which has both osmid and sequential index columns) does not have this issue. The recommended workaround is to use new_full_network/ or generate new network data with the complete column set.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions