|
5 | 5 | from topi.nn import conv2d, conv2d_alter_layout |
6 | 6 | from topi import generic |
7 | 7 |
|
| 8 | +_WORKLOADS = [ |
| 9 | + # resnet 18 |
| 10 | + Workload('float32', 'float32', 224, 224, 3, 64, 7, 7, 3, 3, 2, 2), |
| 11 | + Workload('int8', 'int32', 224, 224, 3, 64, 7, 7, 3, 3, 2, 2), |
| 12 | + Workload('int8', 'int32', 56, 56, 64, 64, 3, 3, 1, 1, 1, 1), |
| 13 | + Workload('int8', 'int32', 56, 56, 64, 64, 1, 1, 0, 0, 1, 1), |
| 14 | + Workload('int8', 'int32', 56, 56, 64, 128, 3, 3, 1, 1, 2, 2), |
| 15 | + Workload('int8', 'int32', 56, 56, 64, 128, 1, 1, 0, 0, 2, 2), |
| 16 | + Workload('int8', 'int32', 28, 28, 128, 128, 3, 3, 1, 1, 1, 1), |
| 17 | + Workload('int8', 'int32', 28, 28, 128, 256, 3, 3, 1, 1, 2, 2), |
| 18 | + Workload('int8', 'int32', 28, 28, 128, 256, 1, 1, 0, 0, 2, 2), |
| 19 | + Workload('int8', 'int32', 14, 14, 256, 256, 3, 3, 1, 1, 1, 1), |
| 20 | + Workload('int8', 'int32', 14, 14, 256, 512, 3, 3, 1, 1, 2, 2), |
| 21 | + Workload('int8', 'int32', 14, 14, 256, 512, 1, 1, 0, 0, 2, 2), |
| 22 | + Workload('int8', 'int32', 7, 7, 512, 512, 3, 3, 1, 1, 1, 1), |
| 23 | + |
| 24 | + # mobilenet float32 |
| 25 | + Workload('float32', 'float32', 224, 224, 3, 32, 3, 3, 1, 1, 2, 2), |
| 26 | + Workload('float32', 'float32', 112, 112, 32, 64, 1, 1, 0, 0, 1, 1), |
| 27 | + Workload('float32', 'float32', 56, 56, 64, 128, 1, 1, 0, 0, 1, 1), |
| 28 | + Workload('float32', 'float32', 56, 56, 128, 128, 1, 1, 0, 0, 1, 1), |
| 29 | + Workload('float32', 'float32', 28, 28, 128, 256, 1, 1, 0, 0, 1, 1), |
| 30 | + Workload('float32', 'float32', 28, 28, 256, 256, 1, 1, 0, 0, 1, 1), |
| 31 | + Workload('float32', 'float32', 14, 14, 256, 512, 1, 1, 0, 0, 1, 1), |
| 32 | + Workload('float32', 'float32', 14, 14, 512, 512, 1, 1, 0, 0, 1, 1), |
| 33 | + Workload('float32', 'float32', 7, 7, 512, 1024, 1, 1, 0, 0, 1, 1), |
| 34 | + Workload('float32', 'float32', 7, 7, 1024, 1024, 1, 1, 0, 0, 1, 1), |
| 35 | + |
| 36 | + # mobilenet int8 |
| 37 | + Workload('float32', 'float32', 224, 224, 3, 32, 3, 3, 1, 1, 2, 2), |
| 38 | + Workload('int8', 'int32', 112, 112, 32, 64, 1, 1, 0, 0, 1, 1), |
| 39 | + Workload('int8', 'int32', 56, 56, 64, 128, 1, 1, 0, 0, 1, 1), |
| 40 | + Workload('int8', 'int32', 56, 56, 128, 128, 1, 1, 0, 0, 1, 1), |
| 41 | + Workload('int8', 'int32', 28, 28, 128, 256, 1, 1, 0, 0, 1, 1), |
| 42 | + Workload('int8', 'int32', 28, 28, 256, 256, 1, 1, 0, 0, 1, 1), |
| 43 | + Workload('int8', 'int32', 14, 14, 256, 512, 1, 1, 0, 0, 1, 1), |
| 44 | + Workload('int8', 'int32', 14, 14, 512, 512, 1, 1, 0, 0, 1, 1), |
| 45 | + Workload('int8', 'int32', 7, 7, 512, 1024, 1, 1, 0, 0, 1, 1), |
| 46 | + Workload('int8', 'int32', 7, 7, 1024, 1024, 1, 1, 0, 0, 1, 1), |
| 47 | +] |
| 48 | + |
| 49 | +_SCHEDULES = [ |
| 50 | + # float32 imagenet |
| 51 | + SpatialPack(1, 8, 4, 1, 4, True), |
| 52 | + SpatialPack(1, 8, 4, 1, 4, True), |
| 53 | + SpatialPack(1, 7, 4, 2, 4, True), |
| 54 | + SpatialPack(1, 4, 8, 4, 1, True), |
| 55 | + SpatialPack(1, 4, 4, 1, 16, False), |
| 56 | + SpatialPack(1, 4, 8, 4, 8, False), |
| 57 | + SpatialPack(1, 7, 4, 3, 8, True), |
| 58 | + SpatialPack(1, 2, 8, 1, 8, True), |
| 59 | + SpatialPack(2, 1, 16, 1, 4, True), |
| 60 | + SpatialPack(1, 7, 4, 1, 1, True), |
| 61 | + Im2ColPack(7, 4, 1, 16, True), |
| 62 | + Im2ColPack(7, 4, 1, 8, False), |
| 63 | + Im2ColPack(7, 4, 1, 16, False), |
| 64 | + |
| 65 | + # float32 mobilenet |
| 66 | + SpatialPack(2, 2, 4, 28, 1, True), |
| 67 | + SpatialPack(1, 4, 8, 14, 1, False), |
| 68 | + SpatialPack(1, 2, 16, 8, 1, True), |
| 69 | + SpatialPack(1, 4, 8, 8, 8, True), |
| 70 | + SpatialPack(2, 2, 8, 1, 1, False), |
| 71 | + SpatialPack(1, 4, 8, 4, 8, False), |
| 72 | + SpatialPack(2, 2, 8, 1, 4, False), |
| 73 | + SpatialPack(2, 2, 8, 1, 8, False), |
| 74 | + Im2ColPack(7, 4, 1, 16, False), |
| 75 | + Im2ColPack(7, 4, 1, 4, True), |
| 76 | + |
| 77 | + # int8 mobilenet |
| 78 | + SpatialPack(2, 2, 4, 28, 1, True), |
| 79 | + SpatialPack(1, 4, 8, 14, 1, False), |
| 80 | + SpatialPack(1, 2, 16, 8, 1, True), |
| 81 | + SpatialPack(1, 4, 8, 8, 8, True), |
| 82 | + SpatialPack(2, 2, 8, 1, 1, False), |
| 83 | + SpatialPack(1, 4, 8, 4, 8, False), |
| 84 | + SpatialPack(2, 2, 8, 1, 4, False), |
| 85 | + SpatialPack(2, 2, 8, 1, 8, False), |
| 86 | + Im2ColPack(7, 4, 1, 16, False), |
| 87 | + Im2ColPack(7, 4, 1, 4, True), |
| 88 | +] |
| 89 | + |
8 | 90 | @conv2d.register(["vtacpu", "vta"]) |
9 | 91 | def compute(*args, **kwargs): |
10 | 92 | with tvm.target.arm_cpu("vtacpu"): |
|
0 commit comments