Current gem5-gpu Software Architecture
這是當前gem5-gpu軟件架構的示意圖。
Ruby是在gem5-gpu上下文中用于處理CPU和GPU之間內存訪問的高度可配置的內存系統
CudaCore (src/gpu/gpgpu-sim/cuda_core.*, src/gpu/gpgpu-sim/CudaCore.py)
Wrapper for GPGPU-Sim shader_core_ctx (gpgpu-sim/gpgpu-sim/shader.h)
- Sends instruction, global and const memory requests to Ruby cache hierarchy
- Data memory accesses: Receives global and const data requests from GPGPU-Sim ldst_unit when a warp instruction is issued to it and the ldst_unit cycles (i.e. after ld_exec for the warp instruction)
- Issues per-thread data requests to ShaderLSQ, which coalesces and sends reads and writes to Ruby
- Reads and writes shader_core_ctx registers f