Memcopy benchmarking demo
Introduction
This application, internally called as AUTOSAR benchmarking application is used for benchmarking several KPIs such as:
I-cache miss
D-cache miss
memory copy performance on different cores
with options such as XIP, non-XIP
ability to run software on other cores
run with CCS or SBL etc.
Supported Combinations
Parameter |
Value |
|---|---|
CPU + OS |
r5fss0-0 freertos |
Toolchain |
ti-arm-clang |
Boards |
am62x-sk, am62x-sk-lp, am62x-sip-sk |
Example folder |
examples/kernel/freertos/memcpy_benchmark/ |
Steps to Run the Example
When using CCS projects to build, import the CCS project for the required combination and build it using the CCS project menu (see Using SDK with CCS Projects).
When using makefiles to build, note the required combination and build using make command (see Using SDK with Makefiles)
Launch a CCS debug session and run the executable, see CCS Launch, Load and Run
See Also
Sample Output
Shown below is a sample output when the benchmark application is run,
Board: am62x-sk, Core: r5f
Memcpy Benchmarking for DDR memory:
Filling up the gBuffers
Sanity checking for PMU counters
Inst Cache Miss: 0
Inst Cache Access: 0
Number of instructions: 39
Data Cache Miss: 0
Created MasterTask
Created all 15 slaveTasks
Master_task
Master_task -- start sending
MemCopy Size : 0
Exec Time in Usec : 2693
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1405
Instruction Cache Access : 912
Number of Instructions Executed : 398497
Data Cache Miss : 1405
InstructionCacheMiss/sec : 521722
Instructions/sec : 147975120
DataCacheMiss/sec : 338655
MemCopy Size : 50
Exec Time in Usec : 3207
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1347
Instruction Cache Access : 919
Number of Instructions Executed : 602215
Data Cache Miss : 1347
InstructionCacheMiss/sec : 420018
Instructions/sec : 187781415
DataCacheMiss/sec : 286560
MemCopy Size : 100
Exec Time in Usec : 3409
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1163
Instruction Cache Access : 814
Number of Instructions Executed : 736783
Data Cache Miss : 1163
InstructionCacheMiss/sec : 341155
Instructions/sec : 216128776
DataCacheMiss/sec : 238779
MemCopy Size : 200
Exec Time in Usec : 4387
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1338
Instruction Cache Access : 922
Number of Instructions Executed : 1090857
Data Cache Miss : 1338
InstructionCacheMiss/sec : 304992
Instructions/sec : 248656713
DataCacheMiss/sec : 210166
MemCopy Size : 500
Exec Time in Usec : 6441
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1127
Instruction Cache Access : 934
Number of Instructions Executed : 1957388
Data Cache Miss : 1127
InstructionCacheMiss/sec : 174972
Instructions/sec : 303895047
DataCacheMiss/sec : 145008
MemCopy Size : 750
Exec Time in Usec : 9095
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1179
Instruction Cache Access : 1085
Number of Instructions Executed : 2991991
Data Cache Miss : 1179
InstructionCacheMiss/sec : 129631
Instructions/sec : 328970973
DataCacheMiss/sec : 119296
MemCopy Size : 1000
Exec Time in Usec : 10017
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1063
Instruction Cache Access : 1645
Number of Instructions Executed : 3342803
Data Cache Miss : 1063
InstructionCacheMiss/sec : 106119
Instructions/sec : 333712987
DataCacheMiss/sec : 164220
MemCopy Size : 1250
Exec Time in Usec : 11656
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1048
Instruction Cache Access : 1901
Number of Instructions Executed : 3991428
Data Cache Miss : 1048
InstructionCacheMiss/sec : 89910
Instructions/sec : 342435483
DataCacheMiss/sec : 163091
MemCopy Size : 1500
Exec Time in Usec : 14322
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1282
Instruction Cache Access : 2183
Number of Instructions Executed : 4990088
Data Cache Miss : 1282
InstructionCacheMiss/sec : 89512
Instructions/sec : 348421170
DataCacheMiss/sec : 152422
MemCopy Size : 2048
Exec Time in Usec : 23841
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1502
Instruction Cache Access : 4866
Number of Instructions Executed : 8565960
Data Cache Miss : 1502
InstructionCacheMiss/sec : 63000
Instructions/sec : 359295331
DataCacheMiss/sec : 204102
All tests have passed!!
Board: am62x-sk-lp, Core: r5f
Memcpy Benchmarking for DDR memory:
Filling up the gBuffers
Sanity checking for PMU counters
Inst Cache Miss: 0
Inst Cache Access: 0
Number of instructions: 39
Data Cache Miss: 0
Created MasterTask
Created all 15 slaveTasks
Master_task
Master_task -- start sending
MemCopy Size : 0
Exec Time in Usec : 2724
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1420
Instruction Cache Access : 899
Number of Instructions Executed : 398349
Data Cache Miss : 1420
InstructionCacheMiss/sec : 521292
Instructions/sec : 146236784
DataCacheMiss/sec : 330029
MemCopy Size : 50
Exec Time in Usec : 3253
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1413
Instruction Cache Access : 934
Number of Instructions Executed : 602215
Data Cache Miss : 1413
InstructionCacheMiss/sec : 434368
Instructions/sec : 185126037
DataCacheMiss/sec : 287119
MemCopy Size : 100
Exec Time in Usec : 3449
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1196
Instruction Cache Access : 858
Number of Instructions Executed : 736919
Data Cache Miss : 1196
InstructionCacheMiss/sec : 346767
Instructions/sec : 213661641
DataCacheMiss/sec : 248767
MemCopy Size : 200
Exec Time in Usec : 4420
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1352
Instruction Cache Access : 914
Number of Instructions Executed : 1090811
Data Cache Miss : 1352
InstructionCacheMiss/sec : 305882
Instructions/sec : 246789819
DataCacheMiss/sec : 206787
MemCopy Size : 500
Exec Time in Usec : 6471
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1114
Instruction Cache Access : 945
Number of Instructions Executed : 1957388
Data Cache Miss : 1114
InstructionCacheMiss/sec : 172152
Instructions/sec : 302486169
DataCacheMiss/sec : 146036
MemCopy Size : 750
Exec Time in Usec : 9108
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1095
Instruction Cache Access : 1050
Number of Instructions Executed : 2991991
Data Cache Miss : 1095
InstructionCacheMiss/sec : 120223
Instructions/sec : 328501427
DataCacheMiss/sec : 115283
MemCopy Size : 1000
Exec Time in Usec : 10073
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1080
Instruction Cache Access : 1678
Number of Instructions Executed : 3342809
Data Cache Miss : 1080
InstructionCacheMiss/sec : 107217
Instructions/sec : 331858334
DataCacheMiss/sec : 166583
MemCopy Size : 1250
Exec Time in Usec : 11706
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1054
Instruction Cache Access : 1861
Number of Instructions Executed : 3991405
Data Cache Miss : 1054
InstructionCacheMiss/sec : 90039
Instructions/sec : 340970869
DataCacheMiss/sec : 158978
MemCopy Size : 1500
Exec Time in Usec : 14384
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1210
Instruction Cache Access : 2224
Number of Instructions Executed : 4990230
Data Cache Miss : 1210
InstructionCacheMiss/sec : 84121
Instructions/sec : 346929226
DataCacheMiss/sec : 154616
MemCopy Size : 2048
Exec Time in Usec : 23918
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1463
Instruction Cache Access : 4741
Number of Instructions Executed : 8566108
Data Cache Miss : 1463
InstructionCacheMiss/sec : 61167
Instructions/sec : 358144828
DataCacheMiss/sec : 198218
All tests have passed!!
Board: am62x-sip-sk, Core: r5f
Memcpy Benchmarking for DDR memory:
Filling up the gBuffers
Sanity checking for PMU counters
Inst Cache Miss: 0
Inst Cache Access: 0
Number of instructions: 39
Data Cache Miss: 0
Created MasterTask
Created all 15 slaveTasks
Master_task
Master_task -- start sending
MemCopy Size : 0
Exec Time in Usec : 2656
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1320
Instruction Cache Access : 870
Number of Instructions Executed : 398354
Data Cache Miss : 1320
InstructionCacheMiss/sec : 496987
Instructions/sec : 149982680
DataCacheMiss/sec : 327560
MemCopy Size : 50
Exec Time in Usec : 3191
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1304
Instruction Cache Access : 912
Number of Instructions Executed : 602237
Data Cache Miss : 1304
InstructionCacheMiss/sec : 408649
Instructions/sec : 188729865
DataCacheMiss/sec : 285803
MemCopy Size : 100
Exec Time in Usec : 3399
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1135
Instruction Cache Access : 797
Number of Instructions Executed : 736918
Data Cache Miss : 1135
InstructionCacheMiss/sec : 333921
Instructions/sec : 216804354
DataCacheMiss/sec : 234480
MemCopy Size : 200
Exec Time in Usec : 4370
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1294
Instruction Cache Access : 922
Number of Instructions Executed : 1090674
Data Cache Miss : 1294
InstructionCacheMiss/sec : 296109
Instructions/sec : 249582151
DataCacheMiss/sec : 210983
MemCopy Size : 500
Exec Time in Usec : 6432
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1062
Instruction Cache Access : 949
Number of Instructions Executed : 1957381
Data Cache Miss : 1062
InstructionCacheMiss/sec : 165111
Instructions/sec : 304319185
DataCacheMiss/sec : 147543
MemCopy Size : 750
Exec Time in Usec : 9085
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1115
Instruction Cache Access : 1095
Number of Instructions Executed : 2991990
Data Cache Miss : 1115
InstructionCacheMiss/sec : 122729
Instructions/sec : 329332966
DataCacheMiss/sec : 120528
MemCopy Size : 1000
Exec Time in Usec : 9937
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1025
Instruction Cache Access : 1381
Number of Instructions Executed : 3342802
Data Cache Miss : 1025
InstructionCacheMiss/sec : 103149
Instructions/sec : 336399516
DataCacheMiss/sec : 138975
MemCopy Size : 1250
Exec Time in Usec : 11553
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 969
Instruction Cache Access : 1552
Number of Instructions Executed : 3991268
Data Cache Miss : 969
InstructionCacheMiss/sec : 83874
Instructions/sec : 345474595
DataCacheMiss/sec : 134337
MemCopy Size : 1500
Exec Time in Usec : 14249
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1180
Instruction Cache Access : 2029
Number of Instructions Executed : 4990110
Data Cache Miss : 1180
InstructionCacheMiss/sec : 82812
Instructions/sec : 350207733
DataCacheMiss/sec : 142395
MemCopy Size : 2048
Exec Time in Usec : 23657
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1415
Instruction Cache Access : 4153
Number of Instructions Executed : 8565965
Data Cache Miss : 1415
InstructionCacheMiss/sec : 59813
Instructions/sec : 362090079
DataCacheMiss/sec : 175550
All tests have passed!!