====== Differences ====== This shows you the differences between two versions of the page.
cur-arch [2013/02/06 01:35] morr |
cur-arch [2016/02/19 08:53] (current) jthestness [Current gem5-gpu limitations] |
||
---|---|---|---|
Line 1: | Line 1: | ||
===== Current gem5-gpu Software Architecture ===== | ===== Current gem5-gpu Software Architecture ===== | ||
Here is a diagram of the current gem5-gpu software architecture. | Here is a diagram of the current gem5-gpu software architecture. | ||
+ | |||
+ | {{ :current_gem5-gpu_architecture_1_31_2013-cropped.png?300 |}} | ||
==== CudaCore (src/gpu/gpgpu-sim/cuda_core.*, src/gpu/gpgpu-sim/CudaCore.py) ==== | ==== CudaCore (src/gpu/gpgpu-sim/cuda_core.*, src/gpu/gpgpu-sim/CudaCore.py) ==== | ||
Line 24: | Line 26: | ||
* Manages GPU memory space page table | * Manages GPU memory space page table | ||
- | **NOTE: The last 4 items will be eventually moved to a CudaContext as described later** | + | **NOTE: The last 4 items will be eventually moved to a CudaContext as described [[future-arch|here]].** |
==== Shader TLB (src/gpu/shader_tlb.*, src/gpu/ShaderTLB.py) ==== | ==== Shader TLB (src/gpu/shader_tlb.*, src/gpu/ShaderTLB.py) ==== | ||
Line 41: | Line 43: | ||
* Once trapped into CUDA syscalls, the appropriate CUDA call is executed, which may interface with the GPU for managing memory or kernel handling, PTX code handling or the copy engine | * Once trapped into CUDA syscalls, the appropriate CUDA call is executed, which may interface with the GPU for managing memory or kernel handling, PTX code handling or the copy engine | ||
- | Currently supported CUDA calls are listed here. | + | Currently supported CUDA calls are listed [[http://goo.gl/ysf55|here]]. |
+ | |||
+ | ==== Current gem5-gpu limitations ==== | ||
+ | gem5-gpu models memory access to GPU global, const, and local memory through the gem5/Ruby memory hierarchy. Shared (scratch) memory accesses are modeled in GPGPU-Sim code. Atomic memory operations are supported to global and shared memory spaces. | ||
+ | |||
+ | However, currently, there are a few noteworthy limitations to the GPU simulation capability in gem5-gpu: | ||
+ | * gem5-gpu does not model the CUDA texture memory space. This would require aligning GPGPU-Sim's address space identifiers for texture memory with memory allocations and accesses in gem5-gpu. | ||
+ | * Though GPGPU-Sim provides some support for asynchronous copy engine activity and multiple GPU kernel streams, this functionality has not yet been pulled into gem5-gpu. |