Microarch-bench on 3A5000@2.5GHz
| $ taskset -c 1 ./microarch-bench $((65536 * 16)) $((25 * 100 * 1000 * 1000)) 256 | |
| batches 1048576, frequency = 2500000000 Hz, warmup for 256 batches | |
| add.d latency: IPC/CPI = 1.00/1.00 | |
| add.w latency: IPC/CPI = 1.00/1.00 | |
| mul.d latency: IPC/CPI = 0.25/4.01 | |
| mul.w latency: IPC/CPI = 0.25/4.01 | |
| mulh.d latency: IPC/CPI = 0.25/4.01 | |
| mulh.w latency: IPC/CPI = 0.25/4.01 | |
| and latency: IPC/CPI = 1.00/1.00 | |
| sll.d latency: IPC/CPI = 1.00/1.00 | |
| sll.w latency: IPC/CPI = 1.00/1.00 | |
| rotr.d latency: IPC/CPI = 1.00/1.00 | |
| rotr.w latency: IPC/CPI = 1.00/1.00 | |
| clo.d latency: IPC/CPI = 1.00/1.00 | |
| clo.w latency: IPC/CPI = 1.00/1.00 | |
| cto.d latency: IPC/CPI = 1.00/1.00 | |
| cto.w latency: IPC/CPI = 1.00/1.00 | |
| bytepick.d 0 latency: IPC/CPI = 1.00/1.00 | |
| bytepick.d 4 latency: IPC/CPI = 1.00/1.00 | |
| bytepick.w 0 latency: IPC/CPI = 1.00/1.00 | |
| bytepick.w 2 latency: IPC/CPI = 1.00/1.00 | |
| revb.d latency: IPC/CPI = 1.00/1.00 | |
| revh.d latency: IPC/CPI = 1.00/1.00 | |
| bitrev.8b latency: IPC/CPI = 1.00/1.00 | |
| bitrev.d latency: IPC/CPI = 1.00/1.00 | |
| bstrins.d (32, 0) latency: IPC/CPI = 0.11/8.98 | |
| bstrins.d (48, 16) latency: IPC/CPI = 0.13/7.98 | |
| bstrins.w (16, 0) latency: IPC/CPI = 0.14/6.98 | |
| bstrins.w (24, 8) latency: IPC/CPI = 0.17/5.97 | |
| bstrpick.d (32, 0) latency: IPC/CPI = 0.20/4.97 | |
| bstrpick.d (48, 16) latency: IPC/CPI = 0.25/3.97 | |
| bstrpick.w (16, 0) latency: IPC/CPI = 0.34/2.97 | |
| bstrpick.w (24, 8) latency: IPC/CPI = 0.51/1.96 | |
| maskeqz masked/untaken latency: IPC/CPI = 1.04/0.96 | |
| maskeqz unmasked/taken latency: IPC/CPI = 1.04/0.96 | |
| crc.w.b.w latency: IPC/CPI = 0.20/5.02 | |
| crc.w.h.w latency: IPC/CPI = 0.14/7.02 | |
| crc.w.w.w latency: IPC/CPI = 0.09/11.03 | |
| crc.w.d.w latency: IPC/CPI = 0.05/19.05 | |
| add.d throughput: IPC/CPI = 3.93/0.25 | |
| add.w throughput: IPC/CPI = 3.93/0.25 | |
| mul.d throughput: IPC/CPI = 1.97/0.51 | |
| mul.w throughput: IPC/CPI = 1.96/0.51 | |
| mulh.d throughput: IPC/CPI = 1.97/0.51 | |
| mulh.w throughput: IPC/CPI = 1.97/0.51 | |
| and throughput: IPC/CPI = 3.93/0.25 | |
| sll.d throughput: IPC/CPI = 3.93/0.25 | |
| sll.w throughput: IPC/CPI = 3.93/0.25 | |
| rotr.d throughput: IPC/CPI = 3.93/0.25 | |
| rotr.w throughput: IPC/CPI = 3.93/0.25 | |
| clo.d throughput: IPC/CPI = 3.93/0.25 | |
| clo.w throughput: IPC/CPI = 3.93/0.25 | |
| cto.d throughput: IPC/CPI = 3.93/0.25 | |
| cto.w throughput: IPC/CPI = 3.93/0.25 | |
| bytepick.d throughput: IPC/CPI = 1.98/0.50 | |
| bytepick.w throughput: IPC/CPI = 1.98/0.50 | |
| revb.d throughput: IPC/CPI = 3.93/0.25 | |
| revh.d throughput: IPC/CPI = 3.90/0.26 | |
| bitrev.8b throughput: IPC/CPI = 3.93/0.25 | |
| bitrev.d throughput: IPC/CPI = 3.93/0.25 | |
| bstrins.d (32, 0) throughput: IPC/CPI = 1.98/0.50 | |
| bstrins.d (48, 16) throughput: IPC/CPI = 1.98/0.50 | |
| bstrins.w (16, 0) throughput: IPC/CPI = 1.98/0.50 | |
| bstrins.w (24, 8) throughput: IPC/CPI = 1.98/0.50 | |
| bstrpick.d (32, 0) throughput: IPC/CPI = 3.93/0.25 | |
| bstrpick.d (48, 16) throughput: IPC/CPI = 3.93/0.25 | |
| bstrpick.w (16, 0) throughput: IPC/CPI = 3.93/0.25 | |
| bstrpick.w (24, 8) throughput: IPC/CPI = 3.93/0.25 | |
| maskeqz masked/untaken throughput: IPC/CPI = 3.89/0.26 | |
| maskeqz unmasked/taken throughput: IPC/CPI = 3.89/0.26 | |
| crc.w.b.w throughput: IPC/CPI = 0.28/3.51 | |
| crc.w.h.w throughput: IPC/CPI = 0.22/4.51 | |
| crc.w.w.w throughput: IPC/CPI = 0.15/6.51 | |
| crc.w.d.w throughput: IPC/CPI = 0.10/10.52 | |
| nop throughput: IPC/CPI = 3.93/0.25 |
评论
?
参与讨论