Documentation
¶
Overview ¶
Package cp defines the Command Processor component of a GCN3 GPU
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder can build Command Processors
func MakeBuilder ¶
func MakeBuilder() Builder
MakeBuilder creates a new builder with default configuration values.
func (Builder) Build ¶
func (b Builder) Build(name string) *CommandProcessor
Build builds a new Command Processor
func (Builder) ShowProgressBar ¶
ShowProgressBar enables progress bar.
func (Builder) WithEngine ¶
WithEngine sets the even-driven simulation engine to use.
type CUInterfaceForCP ¶
type CUInterfaceForCP interface { resource.DispatchableCU // ControlPort returns a port on the CU that the CP can send controlling // messages to. ControlPort() akita.Port }
CUInterfaceForCP defines the interface that a CP requires from CU.
type CommandProcessor ¶
type CommandProcessor struct { *akita.TickingComponent Dispatchers []dispatching.Dispatcher DMAEngine akita.Port Driver akita.Port TLBs []akita.Port CUs []akita.Port AddressTranslators []akita.Port RDMA akita.Port PMC akita.Port L1VCaches []akita.Port L1SCaches []akita.Port L1ICaches []akita.Port L2Caches []akita.Port DRAMControllers []*idealmemcontroller.Comp ToDriver akita.Port ToDMA akita.Port ToCUs akita.Port ToTLBs akita.Port ToAddressTranslators akita.Port ToCaches akita.Port ToRDMA akita.Port ToPMC akita.Port // contains filtered or unexported fields }
CommandProcessor is an Akita component that is responsible for receiving requests from the driver and dispatch the requests to other parts of the GPU.
func (*CommandProcessor) RegisterCU ¶
func (p *CommandProcessor) RegisterCU(cu CUInterfaceForCP)
RegisterCU allows the Command Processor to control the CU.
func (*CommandProcessor) Tick ¶
func (p *CommandProcessor) Tick(now akita.VTimeInSec) bool
Tick ticks
type DMAEngine ¶
type DMAEngine struct { *akita.TickingComponent Log2AccessSize uint64 ToCP akita.Port ToMem akita.Port // contains filtered or unexported fields }
A DMAEngine is responsible for accessing data that does not belongs to the GPU that the DMAEngine works in.
func NewDMAEngine ¶
func NewDMAEngine( name string, engine akita.Engine, localDataSource cache.LowModuleFinder, ) *DMAEngine
NewDMAEngine creates a DMAEngine, injecting a engine and a "LowModuleFinder" that helps with locating the module that holds the data.
func (*DMAEngine) SetLocalDataSource ¶ added in v1.8.1
func (dma *DMAEngine) SetLocalDataSource(s cache.LowModuleFinder)
SetLocalDataSource sets the table that maps from addresses to port that can provide the data.
Directories
¶
Path | Synopsis |
---|---|
internal
|
|
dispatching
Package dispatching defines how work-groups and wavefronts are dispatched to compute units.
|
Package dispatching defines how work-groups and wavefronts are dispatched to compute units. |
resource
Package resource manages the Compute Unit resources
|
Package resource manages the Compute Unit resources |