====== Differences ====== This shows you the differences between two versions of the page.
cur-arch [2013/10/27 17:45] jthestness [Current gem5-gpu limitations] |
cur-arch [2016/02/19 08:53] (current) jthestness [Current gem5-gpu limitations] |
||
---|---|---|---|
Line 46: | Line 46: | ||
==== Current gem5-gpu limitations ==== | ==== Current gem5-gpu limitations ==== | ||
- | Currently, there are a few noteworthy limitations to the GPU simulation capability in gem5-gpu: | + | 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. |
- | * gem5-gpu models memory access to GPU global and const memory through the gem5/Ruby memory hierarchy. Shared memory accesses are modeled in GPGPU-Sim code | + | |
- | * GPU local memory access is not currently supported in gem5-gpu. To lift this restriction will require coordinating GPGPU-Sim local memory allocation with gem5-gpu handling of the global memory space | + | However, currently, there are a few noteworthy limitations to the GPU simulation capability in gem5-gpu: |
- | * gem5-gpu does not currently support GPU atomic instructions. Support for these will require tracking within the CudaCores and small modifications to Ruby's handling of memory requests. | + | * 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. |