Extentable Methods
This sections describes the list of methods that can be extended to exercise finer control during placement.
Move Methods
Mapper2.SA.assign
— Method.assign(sa_struct, index, new_location)
Move node at index
to new_location
.
Mapper2.SA.move
— Function.move(sa_struct, index, new_location)
Move node at index
from its current location to new_location
.
Mapper2.SA.swap
— Function.swap(sa_struct, node1_idx, node2_idx)
Swap the locations of two nodes with indices node1_idx
and node2_idx
.
Cost Methods
Mapper2.SA.channel_cost
— Function.channel_cost(sa_struct{T}, channel :: SAChannel) where {T <: RuleSet}
Return the cost of channel
. Default implementation accumulates the distances between the source and sink addresses of the channel using sa_struct.distance
.
Method List
channel_cost(sa_struct, channel)
defined at /home/travis/build/hildebrandmw/Mapper2.jl/src/Place/SA/Methods.jl:83
.
Mapper2.SA.node_cost
— Function.node_cost(sa_struct{T}, idx) where {T <: RuleSet}
Return the cost of the node with index idx
in ruleset T
.
Default implementation sums the node's:
- incoming channels
- outgoing channels
- address cost
- auxiliary cost.
Method List
node_cost(sa_struct, idx)
defined at /home/travis/build/hildebrandmw/Mapper2.jl/src/Place/SA/Methods.jl:158
.
Mapper2.SA.node_pair_cost
— Function.node_pair_cost(sa_struct{T}, idx1, idx2) where {T <: RuleSet}
Compute the cost of the pair of nodes with indices idx1
and idx2
. Call this function when computing the cost of two nodes because in general, the total cost of two nodes is not the sum of the individual nodes' costs.
Method List
node_pair_cost(sa_struct, idx1, idx2)
defined at /home/travis/build/hildebrandmw/Mapper2.jl/src/Place/SA/Methods.jl:194
.
Mapper2.SA.address_cost
— Function.address_cost(sa_struct{T}, node :: SANode, address_data::AddressData) where {T <: RuleSet}
Return the address cost for node
for RuleSet T
. Default return value is zero(Float64)
.
Called by default during node_cost
and node_pair_cost
Method List
address_cost(sa_struct, node, address_data)
defined at /home/travis/build/hildebrandmw/Mapper2.jl/src/Place/SA/Methods.jl:110
.
address_cost(sa_struct, node, address_data)
defined at /home/travis/build/hildebrandmw/Mapper2.jl/src/Place/SA/Methods.jl:111
.
Mapper2.SA.aux_cost
— Function.aux_cost(sa_struct{T}) where {T <: RuleSet}
Return an auxiliary cost associated with the entire mapping of the sa_struct
. May use any field of sa_struct
but may only mutate sa_struct.aux
.
Default: zero(Float64)
Method List
aux_cost(sa_struct)
defined at /home/travis/build/hildebrandmw/Mapper2.jl/src/Place/SA/Methods.jl:128
.