Add more configs for coalescer perf testing
Add run-coalperfs.sh in sims/vcs for ease of testing (please delete this file in the future)
This commit is contained in:
@@ -10,8 +10,8 @@ class MemtraceCoreConfig extends Config(
|
|||||||
traceHasSource = false) ++
|
traceHasSource = false) ++
|
||||||
// new freechips.rocketchip.subsystem.WithMemtraceCore("nvbit.vecadd.n100000.filter_sm0.trace",
|
// new freechips.rocketchip.subsystem.WithMemtraceCore("nvbit.vecadd.n100000.filter_sm0.trace",
|
||||||
// traceHasSource = false) ++
|
// traceHasSource = false) ++
|
||||||
new freechips.rocketchip.subsystem.WithCoalescer ++
|
new freechips.rocketchip.subsystem.WithCoalescer() ++
|
||||||
new freechips.rocketchip.subsystem.WithNLanes(4) ++
|
new freechips.rocketchip.subsystem.WithSimtLanes(nLanes=4) ++
|
||||||
// L2
|
// L2
|
||||||
new freechips.rocketchip.subsystem.WithInclusiveCache(nWays=8, capacityKB=512) ++
|
new freechips.rocketchip.subsystem.WithInclusiveCache(nWays=8, capacityKB=512) ++
|
||||||
new freechips.rocketchip.subsystem.WithNBanks(4) ++
|
new freechips.rocketchip.subsystem.WithNBanks(4) ++
|
||||||
@@ -22,14 +22,32 @@ class MemtraceCoreConfig extends Config(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class MemtraceCore128SbusConfig extends Config(
|
/////////////////////////////////////////////////
|
||||||
// Memtrace
|
/// Various Configs for perf testing (feel free to delete them later)
|
||||||
new freechips.rocketchip.subsystem.WithMemtraceCore("vecadd.core1.thread4.trace",
|
/////////////////////////////////////////////////
|
||||||
traceHasSource = false) ++
|
|
||||||
// new freechips.rocketchip.subsystem.WithMemtraceCore("nvbit.vecadd.n100000.filter_sm0.trace",
|
//8 src id section
|
||||||
// traceHasSource = false) ++
|
class MemtraceCoreNV64B8IdConfig extends Config(
|
||||||
new freechips.rocketchip.subsystem.WithCoalescer ++
|
|
||||||
new freechips.rocketchip.subsystem.WithNLanes(4) ++
|
new freechips.rocketchip.subsystem.WithMemtraceCore("nvbit.vecadd.n100000.filter_sm0.trace",
|
||||||
|
traceHasSource = false) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithCoalescer(nNewSrcIds=8) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithSimtLanes(nLanes=32, nSrcIds=8) ++
|
||||||
|
// L2
|
||||||
|
new freechips.rocketchip.subsystem.WithInclusiveCache(nWays=8, capacityKB=512) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithNBanks(4) ++
|
||||||
|
new chipyard.config.WithSystemBusWidth(64) ++
|
||||||
|
// Small Rocket core that does nothing
|
||||||
|
new freechips.rocketchip.subsystem.WithNCustomSmallCores(1) ++
|
||||||
|
new chipyard.config.AbstractConfig
|
||||||
|
)
|
||||||
|
|
||||||
|
class MemtraceCoreNV128B8IdConfig extends Config(
|
||||||
|
|
||||||
|
new freechips.rocketchip.subsystem.WithMemtraceCore("nvbit.vecadd.n100000.filter_sm0.trace",
|
||||||
|
traceHasSource = false) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithCoalescer(nNewSrcIds=8) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithSimtLanes(nLanes=32, nSrcIds=8) ++
|
||||||
// L2
|
// L2
|
||||||
new freechips.rocketchip.subsystem.WithInclusiveCache(nWays=8, capacityKB=512) ++
|
new freechips.rocketchip.subsystem.WithInclusiveCache(nWays=8, capacityKB=512) ++
|
||||||
new freechips.rocketchip.subsystem.WithNBanks(4) ++
|
new freechips.rocketchip.subsystem.WithNBanks(4) ++
|
||||||
@@ -37,16 +55,14 @@ class MemtraceCore128SbusConfig extends Config(
|
|||||||
// Small Rocket core that does nothing
|
// Small Rocket core that does nothing
|
||||||
new freechips.rocketchip.subsystem.WithNCustomSmallCores(1) ++
|
new freechips.rocketchip.subsystem.WithNCustomSmallCores(1) ++
|
||||||
new chipyard.config.AbstractConfig
|
new chipyard.config.AbstractConfig
|
||||||
)
|
)
|
||||||
|
|
||||||
class MemtraceCore256SbusConfig extends Config(
|
class MemtraceCoreNV256B8IdConfig extends Config(
|
||||||
// Memtrace
|
|
||||||
new freechips.rocketchip.subsystem.WithMemtraceCore("vecadd.core1.thread4.trace",
|
new freechips.rocketchip.subsystem.WithMemtraceCore("nvbit.vecadd.n100000.filter_sm0.trace",
|
||||||
traceHasSource = false) ++
|
traceHasSource = false) ++
|
||||||
// new freechips.rocketchip.subsystem.WithMemtraceCore("nvbit.vecadd.n100000.filter_sm0.trace",
|
new freechips.rocketchip.subsystem.WithCoalescer(nNewSrcIds=8) ++
|
||||||
// traceHasSource = false) ++
|
new freechips.rocketchip.subsystem.WithSimtLanes(nLanes=32, nSrcIds=8) ++
|
||||||
new freechips.rocketchip.subsystem.WithCoalescer ++
|
|
||||||
new freechips.rocketchip.subsystem.WithNLanes(4) ++
|
|
||||||
// L2
|
// L2
|
||||||
new freechips.rocketchip.subsystem.WithInclusiveCache(nWays=8, capacityKB=512) ++
|
new freechips.rocketchip.subsystem.WithInclusiveCache(nWays=8, capacityKB=512) ++
|
||||||
new freechips.rocketchip.subsystem.WithNBanks(4) ++
|
new freechips.rocketchip.subsystem.WithNBanks(4) ++
|
||||||
@@ -54,17 +70,30 @@ class MemtraceCore256SbusConfig extends Config(
|
|||||||
// Small Rocket core that does nothing
|
// Small Rocket core that does nothing
|
||||||
new freechips.rocketchip.subsystem.WithNCustomSmallCores(1) ++
|
new freechips.rocketchip.subsystem.WithNCustomSmallCores(1) ++
|
||||||
new chipyard.config.AbstractConfig
|
new chipyard.config.AbstractConfig
|
||||||
)
|
)
|
||||||
|
|
||||||
class MemtraceCorePoXarConfig extends Config(
|
class MemtraceCoreNV512B8IdConfig extends Config(
|
||||||
// Memtrace
|
|
||||||
new freechips.rocketchip.subsystem.WithMemtraceCore("vecadd.core1.thread4.trace",
|
new freechips.rocketchip.subsystem.WithMemtraceCore("nvbit.vecadd.n100000.filter_sm0.trace",
|
||||||
traceHasSource = false) ++
|
traceHasSource = false) ++
|
||||||
// new freechips.rocketchip.subsystem.WithMemtraceCore("nvbit.vecadd.n100000.filter_sm0.trace",
|
new freechips.rocketchip.subsystem.WithCoalescer(nNewSrcIds=8) ++
|
||||||
// traceHasSource = false) ++
|
new freechips.rocketchip.subsystem.WithSimtLanes(nLanes=32, nSrcIds=8) ++
|
||||||
new freechips.rocketchip.subsystem.WithCoalescer ++
|
// L2
|
||||||
new freechips.rocketchip.subsystem.WithPriorityCoalXbar++
|
new freechips.rocketchip.subsystem.WithInclusiveCache(nWays=8, capacityKB=512) ++
|
||||||
new freechips.rocketchip.subsystem.WithNLanes(4) ++
|
new freechips.rocketchip.subsystem.WithNBanks(4) ++
|
||||||
|
new chipyard.config.WithSystemBusWidth(512) ++
|
||||||
|
// Small Rocket core that does nothing
|
||||||
|
new freechips.rocketchip.subsystem.WithNCustomSmallCores(1) ++
|
||||||
|
new chipyard.config.AbstractConfig
|
||||||
|
)
|
||||||
|
|
||||||
|
//16 src id section
|
||||||
|
class MemtraceCoreNV64B16IdConfig extends Config(
|
||||||
|
|
||||||
|
new freechips.rocketchip.subsystem.WithMemtraceCore("nvbit.vecadd.n100000.filter_sm0.trace",
|
||||||
|
traceHasSource = false) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithCoalescer(nNewSrcIds=16) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithSimtLanes(nLanes=32, nSrcIds=16) ++
|
||||||
// L2
|
// L2
|
||||||
new freechips.rocketchip.subsystem.WithInclusiveCache(nWays=8, capacityKB=512) ++
|
new freechips.rocketchip.subsystem.WithInclusiveCache(nWays=8, capacityKB=512) ++
|
||||||
new freechips.rocketchip.subsystem.WithNBanks(4) ++
|
new freechips.rocketchip.subsystem.WithNBanks(4) ++
|
||||||
@@ -73,3 +102,109 @@ class MemtraceCorePoXarConfig extends Config(
|
|||||||
new freechips.rocketchip.subsystem.WithNCustomSmallCores(1) ++
|
new freechips.rocketchip.subsystem.WithNCustomSmallCores(1) ++
|
||||||
new chipyard.config.AbstractConfig
|
new chipyard.config.AbstractConfig
|
||||||
)
|
)
|
||||||
|
|
||||||
|
class MemtraceCoreNV128B16IdConfig extends Config(
|
||||||
|
|
||||||
|
new freechips.rocketchip.subsystem.WithMemtraceCore("nvbit.vecadd.n100000.filter_sm0.trace",
|
||||||
|
traceHasSource = false) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithCoalescer(nNewSrcIds=16) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithSimtLanes(nLanes=32, nSrcIds=16) ++
|
||||||
|
// L2
|
||||||
|
new freechips.rocketchip.subsystem.WithInclusiveCache(nWays=8, capacityKB=512) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithNBanks(4) ++
|
||||||
|
new chipyard.config.WithSystemBusWidth(128) ++
|
||||||
|
// Small Rocket core that does nothing
|
||||||
|
new freechips.rocketchip.subsystem.WithNCustomSmallCores(1) ++
|
||||||
|
new chipyard.config.AbstractConfig
|
||||||
|
)
|
||||||
|
|
||||||
|
class MemtraceCoreNV256B16IdConfig extends Config(
|
||||||
|
|
||||||
|
new freechips.rocketchip.subsystem.WithMemtraceCore("nvbit.vecadd.n100000.filter_sm0.trace",
|
||||||
|
traceHasSource = false) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithCoalescer(nNewSrcIds=16) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithSimtLanes(nLanes=32, nSrcIds=16) ++
|
||||||
|
// L2
|
||||||
|
new freechips.rocketchip.subsystem.WithInclusiveCache(nWays=8, capacityKB=512) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithNBanks(4) ++
|
||||||
|
new chipyard.config.WithSystemBusWidth(256) ++
|
||||||
|
// Small Rocket core that does nothing
|
||||||
|
new freechips.rocketchip.subsystem.WithNCustomSmallCores(1) ++
|
||||||
|
new chipyard.config.AbstractConfig
|
||||||
|
)
|
||||||
|
|
||||||
|
class MemtraceCoreNV512B16IdConfig extends Config(
|
||||||
|
|
||||||
|
new freechips.rocketchip.subsystem.WithMemtraceCore("nvbit.vecadd.n100000.filter_sm0.trace",
|
||||||
|
traceHasSource = false) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithCoalescer(nNewSrcIds=16) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithSimtLanes(nLanes=32, nSrcIds=16) ++
|
||||||
|
// L2
|
||||||
|
new freechips.rocketchip.subsystem.WithInclusiveCache(nWays=8, capacityKB=512) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithNBanks(4) ++
|
||||||
|
new chipyard.config.WithSystemBusWidth(512) ++
|
||||||
|
// Small Rocket core that does nothing
|
||||||
|
new freechips.rocketchip.subsystem.WithNCustomSmallCores(1) ++
|
||||||
|
new chipyard.config.AbstractConfig
|
||||||
|
)
|
||||||
|
|
||||||
|
// 32 ids sections
|
||||||
|
class MemtraceCoreNV64B32IdConfig extends Config(
|
||||||
|
|
||||||
|
new freechips.rocketchip.subsystem.WithMemtraceCore("nvbit.vecadd.n100000.filter_sm0.trace",
|
||||||
|
traceHasSource = false) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithCoalescer(nNewSrcIds=32) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithSimtLanes(nLanes=32, nSrcIds=32) ++
|
||||||
|
// L2
|
||||||
|
new freechips.rocketchip.subsystem.WithInclusiveCache(nWays=8, capacityKB=512) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithNBanks(4) ++
|
||||||
|
new chipyard.config.WithSystemBusWidth(64) ++
|
||||||
|
// Small Rocket core that does nothing
|
||||||
|
new freechips.rocketchip.subsystem.WithNCustomSmallCores(1) ++
|
||||||
|
new chipyard.config.AbstractConfig
|
||||||
|
)
|
||||||
|
|
||||||
|
class MemtraceCoreNV128B32IdConfig extends Config(
|
||||||
|
|
||||||
|
new freechips.rocketchip.subsystem.WithMemtraceCore("nvbit.vecadd.n100000.filter_sm0.trace",
|
||||||
|
traceHasSource = false) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithCoalescer(nNewSrcIds=32) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithSimtLanes(nLanes=32, nSrcIds=32) ++
|
||||||
|
// L2
|
||||||
|
new freechips.rocketchip.subsystem.WithInclusiveCache(nWays=8, capacityKB=512) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithNBanks(4) ++
|
||||||
|
new chipyard.config.WithSystemBusWidth(128) ++
|
||||||
|
// Small Rocket core that does nothing
|
||||||
|
new freechips.rocketchip.subsystem.WithNCustomSmallCores(1) ++
|
||||||
|
new chipyard.config.AbstractConfig
|
||||||
|
)
|
||||||
|
|
||||||
|
class MemtraceCoreNV256B32IdConfig extends Config(
|
||||||
|
|
||||||
|
new freechips.rocketchip.subsystem.WithMemtraceCore("nvbit.vecadd.n100000.filter_sm0.trace",
|
||||||
|
traceHasSource = false) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithCoalescer(nNewSrcIds=32) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithSimtLanes(nLanes=32, nSrcIds=32) ++
|
||||||
|
// L2
|
||||||
|
new freechips.rocketchip.subsystem.WithInclusiveCache(nWays=8, capacityKB=512) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithNBanks(4) ++
|
||||||
|
new chipyard.config.WithSystemBusWidth(256) ++
|
||||||
|
// Small Rocket core that does nothing
|
||||||
|
new freechips.rocketchip.subsystem.WithNCustomSmallCores(1) ++
|
||||||
|
new chipyard.config.AbstractConfig
|
||||||
|
)
|
||||||
|
|
||||||
|
class MemtraceCoreNV512B32IdConfig extends Config(
|
||||||
|
|
||||||
|
new freechips.rocketchip.subsystem.WithMemtraceCore("nvbit.vecadd.n100000.filter_sm0.trace",
|
||||||
|
traceHasSource = false) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithCoalescer(nNewSrcIds=32) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithSimtLanes(nLanes=32, nSrcIds=32) ++
|
||||||
|
// L2
|
||||||
|
new freechips.rocketchip.subsystem.WithInclusiveCache(nWays=8, capacityKB=512) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithNBanks(4) ++
|
||||||
|
new chipyard.config.WithSystemBusWidth(512) ++
|
||||||
|
// Small Rocket core that does nothing
|
||||||
|
new freechips.rocketchip.subsystem.WithNCustomSmallCores(1) ++
|
||||||
|
new chipyard.config.AbstractConfig
|
||||||
|
)
|
||||||
|
|||||||
13
sims/vcs/run-coalperfs.sh
Normal file
13
sims/vcs/run-coalperfs.sh
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
configurations=("MemtraceCoreNV64B8IdConfig" "MemtraceCoreNV128B8IdConfig" "MemtraceCoreNV256B8IdConfig" "MemtraceCoreNV512B8IdConfig" "MemtraceCoreNV64B16IdConfig" "MemtraceCoreNV128B16IdConfig" "MemtraceCoreNV256B16IdConfig" "MemtraceCoreNV512B16IdConfig" "MemtraceCoreNV64B32IdConfig" "MemtraceCoreNV128B32IdConfig" "MemtraceCoreNV256B32IdConfig" "MemtraceCoreNV512B32IdConfig")
|
||||||
|
|
||||||
|
rm -f coal_perf.txt
|
||||||
|
make clean
|
||||||
|
|
||||||
|
for config in "${configurations[@]}"; do
|
||||||
|
time=$(make CONFIG="$config" run-binary-debug BINARY=none | grep "simulation time" | awk '{print $NF}')
|
||||||
|
echo "($config, $time)" >> coal_perf.txt
|
||||||
|
done
|
||||||
|
|
||||||
|
cat coal_perf.txt
|
||||||
Reference in New Issue
Block a user