()
| 34 | |
| 35 | |
| 36 | def main(): |
| 37 | assert workspace.IsNUMAEnabled() and workspace.GetNumNUMANodes() >= 2 |
| 38 | |
| 39 | single_init, single_net = build_net("single_net", False) |
| 40 | cross_init, cross_net = build_net("cross_net", True) |
| 41 | |
| 42 | workspace.CreateNet(single_init) |
| 43 | workspace.RunNet(single_init.Name()) |
| 44 | workspace.CreateNet(cross_init) |
| 45 | workspace.RunNet(cross_init.Name()) |
| 46 | |
| 47 | workspace.CreateNet(single_net) |
| 48 | workspace.CreateNet(cross_net) |
| 49 | |
| 50 | for _ in range(4): |
| 51 | t = time.time() |
| 52 | workspace.RunNet(single_net.Name(), NUM_ITER) |
| 53 | dt = time.time() - t |
| 54 | print("Single socket time:", dt) |
| 55 | single_bw = 4 * SHAPE_LEN * SHAPE_LEN * NUM_REPLICAS * NUM_ITER / dt / GB |
| 56 | print("Single socket BW: {} GB/s".format(single_bw)) |
| 57 | |
| 58 | t = time.time() |
| 59 | workspace.RunNet(cross_net.Name(), NUM_ITER) |
| 60 | dt = time.time() - t |
| 61 | print("Cross socket time:", dt) |
| 62 | cross_bw = 4 * SHAPE_LEN * SHAPE_LEN * NUM_REPLICAS * NUM_ITER / dt / GB |
| 63 | print("Cross socket BW: {} GB/s".format(cross_bw)) |
| 64 | print("Single BW / Cross BW: {}".format(single_bw / cross_bw)) |
| 65 | |
| 66 | |
| 67 | if __name__ == '__main__': |
no test coverage detected
searching dependent graphs…