Documentation
¶
Overview ¶
Package gpubuilder provides default builders for commonly used GPUs.
Index ¶
- type EmuGPUBuilder
- func (b EmuGPUBuilder) Build(name string) *gcn3.GPU
- func (b EmuGPUBuilder) WithDriver(d *driver.Driver) EmuGPUBuilder
- func (b EmuGPUBuilder) WithEngine(e akita.Engine) EmuGPUBuilder
- func (b EmuGPUBuilder) WithLog2PageSize(n uint64) EmuGPUBuilder
- func (b EmuGPUBuilder) WithMemCapacity(c uint64) EmuGPUBuilder
- func (b EmuGPUBuilder) WithMemOffset(offset uint64) EmuGPUBuilder
- func (b EmuGPUBuilder) WithPageTable(pageTable vm.PageTable) EmuGPUBuilder
- func (b EmuGPUBuilder) WithStorage(s *mem.Storage) EmuGPUBuilder
- type R9NanoGPUBuilder
- func (b R9NanoGPUBuilder) Build(name string, ID uint64) *gcn3.GPU
- func (b R9NanoGPUBuilder) WithEngine(engine akita.Engine) R9NanoGPUBuilder
- func (b R9NanoGPUBuilder) WithFreq(freq akita.Freq) R9NanoGPUBuilder
- func (b R9NanoGPUBuilder) WithLog2PageSize(log2PageSize uint64) R9NanoGPUBuilder
- func (b R9NanoGPUBuilder) WithMMU(mmu *mmu.MMUImpl) R9NanoGPUBuilder
- func (b R9NanoGPUBuilder) WithMemAddrOffset(offset uint64) R9NanoGPUBuilder
- func (b R9NanoGPUBuilder) WithNumCUPerShaderArray(n int) R9NanoGPUBuilder
- func (b R9NanoGPUBuilder) WithNumMemoryBank(n int) R9NanoGPUBuilder
- func (b R9NanoGPUBuilder) WithNumShaderArray(n int) R9NanoGPUBuilder
- func (b R9NanoGPUBuilder) WithVisTracer(t tracing.Tracer) R9NanoGPUBuilder
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type EmuGPUBuilder ¶
type EmuGPUBuilder struct { EnableISADebug bool EnableInstTracing bool EnableMemTracing bool // contains filtered or unexported fields }
EmuGPUBuilder provide services to assemble usable GPUs
func MakeEmuGPUBuilder ¶
func MakeEmuGPUBuilder() EmuGPUBuilder
MakeEmuGPUBuilder creates a new EmuGPUBuilder
func (EmuGPUBuilder) Build ¶
func (b EmuGPUBuilder) Build(name string) *gcn3.GPU
Build creates a very simple GPU for emulation purposes
func (EmuGPUBuilder) WithDriver ¶
func (b EmuGPUBuilder) WithDriver(d *driver.Driver) EmuGPUBuilder
WithDriver sets the GPU driver that the GPUs connect to.
func (EmuGPUBuilder) WithEngine ¶
func (b EmuGPUBuilder) WithEngine(e akita.Engine) EmuGPUBuilder
WithEngine sets the engine that the emulator GPUs to use
func (EmuGPUBuilder) WithLog2PageSize ¶
func (b EmuGPUBuilder) WithLog2PageSize(n uint64) EmuGPUBuilder
WithLog2PageSize sets the page size of the GPU, as a power of 2.
func (EmuGPUBuilder) WithMemCapacity ¶
func (b EmuGPUBuilder) WithMemCapacity(c uint64) EmuGPUBuilder
WithMemCapacity sets the capacity of the GPU memory
func (EmuGPUBuilder) WithMemOffset ¶
func (b EmuGPUBuilder) WithMemOffset(offset uint64) EmuGPUBuilder
WithMemOffset sets the first byte address of the GPU memory
func (EmuGPUBuilder) WithPageTable ¶
func (b EmuGPUBuilder) WithPageTable(pageTable vm.PageTable) EmuGPUBuilder
WithPageTable sets the page table that provides the address translation
func (EmuGPUBuilder) WithStorage ¶
func (b EmuGPUBuilder) WithStorage(s *mem.Storage) EmuGPUBuilder
Storage sets the global memory storage that is shared by multiple GPUs
type R9NanoGPUBuilder ¶
type R9NanoGPUBuilder struct { EnableISADebug bool EnableInstTracing bool EnableMemTracing bool MemTracer tracing.Tracer InternalConn *akita.DirectConnection CP *gcn3.CommandProcessor ACE *gcn3.Dispatcher L1VCaches []*l1v.Cache L1SCaches []*l1v.Cache L1ICaches []*l1v.Cache L2Caches []*writeback.Cache L1VTLBs []*tlb.TLB L1STLBs []*tlb.TLB L1ITLBs []*tlb.TLB L2TLBs []*tlb.TLB DRAMs []*idealmemcontroller.Comp LowModuleFinderForL1 *cache.InterleavedLowModuleFinder LowModuleFinderForL2 *cache.InterleavedLowModuleFinder LowModuleFinderForPMC *cache.InterleavedLowModuleFinder DMAEngine *gcn3.DMAEngine RDMAEngine *rdma.Engine PageMigrationController *pagemigrationcontroller.PageMigrationController // contains filtered or unexported fields }
R9NanoGPUBuilder can build R9 Nano GPUs.
func MakeR9NanoGPUBuilder ¶
func MakeR9NanoGPUBuilder() R9NanoGPUBuilder
MakeR9NanoGPUBuilder provides a GPU builder that can builds the R9Nano GPU.
func (R9NanoGPUBuilder) Build ¶
func (b R9NanoGPUBuilder) Build(name string, ID uint64) *gcn3.GPU
Build creates a pre-configure GPU similar to the AMD R9 Nano GPU.
func (R9NanoGPUBuilder) WithEngine ¶
func (b R9NanoGPUBuilder) WithEngine(engine akita.Engine) R9NanoGPUBuilder
WithEngine sets the engine that the GPU use.
func (R9NanoGPUBuilder) WithFreq ¶
func (b R9NanoGPUBuilder) WithFreq(freq akita.Freq) R9NanoGPUBuilder
WithFreq sets the frequency that the GPU works at.
func (R9NanoGPUBuilder) WithLog2PageSize ¶
func (b R9NanoGPUBuilder) WithLog2PageSize(log2PageSize uint64) R9NanoGPUBuilder
func (R9NanoGPUBuilder) WithMMU ¶
func (b R9NanoGPUBuilder) WithMMU(mmu *mmu.MMUImpl) R9NanoGPUBuilder
WithMMU sets the MMU component that provides the address translation service for the GPU.
func (R9NanoGPUBuilder) WithMemAddrOffset ¶
func (b R9NanoGPUBuilder) WithMemAddrOffset( offset uint64, ) R9NanoGPUBuilder
WithMemAddrOffset sets the address of the first byte of the GPU to build.
func (R9NanoGPUBuilder) WithNumCUPerShaderArray ¶
func (b R9NanoGPUBuilder) WithNumCUPerShaderArray(n int) R9NanoGPUBuilder
WithNumCUPerShaderArray sets the number of CU and number of L1V caches in each Shader Array.
func (R9NanoGPUBuilder) WithNumMemoryBank ¶
func (b R9NanoGPUBuilder) WithNumMemoryBank(n int) R9NanoGPUBuilder
WithNumMemoryBank sets the number of L2 cache modules and number of memory controllers in each GPU.
func (R9NanoGPUBuilder) WithNumShaderArray ¶
func (b R9NanoGPUBuilder) WithNumShaderArray(n int) R9NanoGPUBuilder
WithNumShaderArray sets the number of shader arrays in each GPU. Each shader array contains a certain number of CUs, a certain number of L1V caches, 1 L1S cache, and 1 L1V cache.
func (R9NanoGPUBuilder) WithVisTracer ¶
func (b R9NanoGPUBuilder) WithVisTracer(t tracing.Tracer) R9NanoGPUBuilder
WithVisTracer applies a tracer to trace all the tasks of all the GPU components