Skip to content

Questions about stack, memory and register spilling #232

Description

@spisladqo

In https://github.com/vortexgpgpu/vortex/blob/master/hw/rtl/VX_config.vh it can be seen that base stack pointer and first address of local memory are the same address, but stack "grows" in different direction from local memory. So the stack resides in global memory, and, when registers are spilled, they are spilled to global memory?

It conserns me a little because I've found other solutions when registers are spilled into local memory:

  1. https://developer.download.nvidia.com/CUDA/training/register_spilling.pdf
  2. https://arxiv.org/pdf/1907.02894

Is my understanding that vortex uses global memory for stack (and, in particular, register spilling) correct? If that's true, what is the reason for choosing global memory instead of local memory for that?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions