The CXL.mem simulator is to use the target latency for simulating the CPU perspective taking ROB and different cacheline state's into panelty from the application level.
$ uname -a
Linux banana 6.4.0+ #86 SMP PREEMPT_DYNAMIC Fri Jul 28 23:49:33 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
$ echo 0 | sudo tee /sys/devices/system/node/node1/cpu*/online >/dev/null 2>&1
LOGV=1 ./CXL-MEM-Simulator -t ./microbench/ld -i 5 -c 0,2 -d 85 -c 100,100 -w 85.5,86.5,87.5,85.5,86.5,87.5,88. -o "(1,(2,3))"
- -t Target: The path to the executable
- -i Interval: The epoch of the simulator, the parameter is in milisecond
- -c CPUSet: The core id to run the executable and the rest will be
setaffinity
to one other core - -d Dram Latency: The current platform's DRAM latency, default is 85ns # mark that bw in the remote
- -b, -l Bandwidth, Latency: Both use 2 input in the vector, first for read, second for write
- -c Capacity: The capacity of the memory with first be local, remaining accordingly to the input vector.
- -w Weight: Use the heuristic to calculate the bandwidth
- -o Topology: Construct the topology using newick tree syntax (1,(2,3)) stands for
1
/
0 - local
\
2
switch /
\
3
- env LOGV stands for logs level that you can see.