cpu,configs: Add DMA thread to Ruby GPU tester

Add a DMA thread tester to the Ruby GPU tester to test the DMA state
machine in the protocol. Currently creates a dummy DMA device to pass
through Ruby.py and scans for the DMA sequencers due to opaqueness of
Ruby.py.

DMA atomics not yet supported as there is no protocol that implements
atomic transitions in the DMA state machine file.

Example run command:
build/GCN3_X86/gem5.opt configs/example/ruby_gpu_random_test.py \
    --test-length=1000

Change-Id: I63d83e00fd0dcbb1e34c6704d1c2d49ed4e77722
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/39936
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Matt Sinclair <mattdsinclair@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Matthew Poremba
2021-01-27 17:13:31 -08:00
parent 2b0ab1f48e
commit 391322ff9b
11 changed files with 617 additions and 17 deletions

View File

@@ -41,13 +41,16 @@ if env['PROTOCOL'] == 'None':
SimObject('ProtocolTester.py')
SimObject('CpuThread.py')
SimObject('DmaThread.py')
SimObject('GpuWavefront.py')
SimObject('TesterThread.py')
SimObject('TesterDma.py')
Source('address_manager.cc')
Source('episode.cc')
Source('protocol_tester.cc')
Source('cpu_thread.cc')
Source('dma_thread.cc')
Source('gpu_wavefront.cc')
Source('tester_thread.cc')