mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-05-17 21:10:43 +00:00
### Description Add ConvTranspose implementation using MatMul to increase perf. ### Motivation and Context <!-- - Why is this change required? What problem does it solve? - If it fixes an open issue, please link to the issue here. -->
396 lines
11 KiB
Text
396 lines
11 KiB
Text
[
|
|
{
|
|
"name": "ConvTranspose without bias addition A",
|
|
"operator": "ConvTranspose",
|
|
"attributes": [{ "name": "kernel_shape", "data": [2, 2], "type": "ints" }],
|
|
"cases": [
|
|
{
|
|
"name": "T[0]",
|
|
"inputs": [
|
|
{
|
|
"data": [10, 20, 30, 40],
|
|
"dims": [1, 1, 2, 2],
|
|
"type": "float32"
|
|
},
|
|
{
|
|
"data": [1, 2, 3, 4],
|
|
"dims": [1, 1, 2, 2],
|
|
"type": "float32"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"data": [10, 40, 40, 60, 200, 160, 90, 240, 160],
|
|
"dims": [1, 1, 3, 3],
|
|
"type": "float32"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "ConvTranspose without bias addition A - NHWC",
|
|
"inputShapeDefinitions": "rankOnly",
|
|
"opset": { "domain": "", "version": 17 },
|
|
"operator": "ConvTranspose",
|
|
"attributes": [{ "name": "kernel_shape", "data": [2, 2], "type": "ints" }],
|
|
"cases": [
|
|
{
|
|
"name": "T[0]",
|
|
"inputs": [
|
|
{
|
|
"data": [10, 20, 30, 40],
|
|
"dims": [1, 1, 2, 2],
|
|
"type": "float32"
|
|
},
|
|
{
|
|
"data": [1, 2, 3, 4],
|
|
"dims": [1, 1, 2, 2],
|
|
"type": "float32"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"data": [10, 40, 40, 60, 200, 160, 90, 240, 160],
|
|
"dims": [1, 1, 3, 3],
|
|
"type": "float32"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "ConvTranspose without bias addition B",
|
|
"operator": "ConvTranspose",
|
|
"attributes": [{ "name": "kernel_shape", "data": [2, 2], "type": "ints" }],
|
|
"cases": [
|
|
{
|
|
"name": "T[0]",
|
|
"inputs": [
|
|
{
|
|
"data": [10, 20, 30, 40, 50, 60, 70, 80],
|
|
"dims": [1, 2, 2, 2],
|
|
"type": "float32"
|
|
},
|
|
{
|
|
"data": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
|
|
"dims": [2, 2, 2, 2],
|
|
"type": "float32"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"data": [
|
|
400, 940, 560, 1080, 2520, 1480, 760, 1740, 1000, 640, 1500, 880, 1720, 3960, 2280, 1160, 2620, 1480
|
|
],
|
|
"dims": [1, 2, 3, 3],
|
|
"type": "float32"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "ConvTranspose with bias addition A",
|
|
"operator": "ConvTranspose",
|
|
"attributes": [{ "name": "kernel_shape", "data": [2, 2], "type": "ints" }],
|
|
"cases": [
|
|
{
|
|
"name": "T[0]",
|
|
"inputs": [
|
|
{
|
|
"data": [10, 20, 30, 40],
|
|
"dims": [1, 4, 1, 1],
|
|
"type": "float32"
|
|
},
|
|
{
|
|
"data": [
|
|
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
|
|
30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
|
|
56, 57, 58, 59, 60, 61, 62, 63, 64
|
|
],
|
|
"dims": [4, 4, 2, 2],
|
|
"type": "float32"
|
|
},
|
|
{
|
|
"data": [65, 66, 67, 68],
|
|
"dims": [4],
|
|
"type": "float32"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"data": [3365, 3465, 3565, 3665, 3766, 3866, 3966, 4066, 4167, 4267, 4367, 4467, 4568, 4668, 4768, 4868],
|
|
"dims": [1, 4, 2, 2],
|
|
"type": "float32"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "ConvTranspose with bias addition B",
|
|
"operator": "ConvTranspose",
|
|
"attributes": [{ "name": "kernel_shape", "data": [2, 2], "type": "ints" }],
|
|
"cases": [
|
|
{
|
|
"name": "T[0]",
|
|
"inputs": [
|
|
{
|
|
"data": [6, 8, 7, 9, 15, 11, 8, 12, 9],
|
|
"dims": [1, 1, 3, 3],
|
|
"type": "float32"
|
|
},
|
|
{
|
|
"data": [1, 2, 3, 4],
|
|
"dims": [1, 1, 2, 2],
|
|
"type": "float32"
|
|
},
|
|
{
|
|
"data": [5],
|
|
"dims": [1],
|
|
"type": "float32"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"data": [11, 25, 28, 19, 32, 86, 99, 55, 40, 114, 131, 67, 29, 73, 80, 41],
|
|
"dims": [1, 1, 4, 4],
|
|
"type": "float32"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "ConvTranspose with bias addition B - NHWC",
|
|
"operator": "ConvTranspose",
|
|
"inputShapeDefinitions": "rankOnly",
|
|
"opset": { "domain": "", "version": 17 },
|
|
"attributes": [{ "name": "kernel_shape", "data": [2, 2], "type": "ints" }],
|
|
"cases": [
|
|
{
|
|
"name": "T[0]",
|
|
"inputs": [
|
|
{
|
|
"data": [6, 8, 7, 9, 15, 11, 8, 12, 9],
|
|
"dims": [1, 1, 3, 3],
|
|
"type": "float32"
|
|
},
|
|
{
|
|
"data": [1, 2, 3, 4],
|
|
"dims": [1, 1, 2, 2],
|
|
"type": "float32"
|
|
},
|
|
{
|
|
"data": [5],
|
|
"dims": [1],
|
|
"type": "float32"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"data": [11, 25, 28, 19, 32, 86, 99, 55, 40, 114, 131, 67, 29, 73, 80, 41],
|
|
"dims": [1, 1, 4, 4],
|
|
"type": "float32"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "ConvTranspose- group - A",
|
|
"operator": "ConvTranspose",
|
|
"attributes": [
|
|
{ "name": "kernel_shape", "data": [1, 1], "type": "ints" },
|
|
{ "name": "group", "data": 2, "type": "int" }
|
|
],
|
|
"cases": [
|
|
{
|
|
"name": "T[0]",
|
|
"inputs": [
|
|
{
|
|
"data": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 18.0, 20.0, 22.0, 24.0, 26.0, 28.0, 30.0, 32.0, 34.0],
|
|
"dims": [1, 2, 3, 3],
|
|
"type": "float32"
|
|
},
|
|
{
|
|
"data": [1.0, 2.0],
|
|
"dims": [2, 1, 1, 1],
|
|
"type": "float32"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"data": [0, 1, 2, 3, 4, 5, 6, 7, 8, 36, 40, 44, 48, 52, 56, 60, 64, 68],
|
|
"dims": [1, 2, 3, 3],
|
|
"type": "float32"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "ConvTranspose- group - B",
|
|
"operator": "ConvTranspose",
|
|
"attributes": [
|
|
{ "name": "kernel_shape", "data": [2, 2], "type": "ints" },
|
|
{ "name": "group", "data": 3, "type": "int" }
|
|
],
|
|
"cases": [
|
|
{
|
|
"name": "T[0]",
|
|
"inputs": [
|
|
{
|
|
"data": [
|
|
0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0,
|
|
19.0, 20.0, 21.0, 22.0, 23.0, 0, 0, 0
|
|
],
|
|
"dims": [1, 3, 3, 3],
|
|
"type": "float32"
|
|
},
|
|
{
|
|
"data": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0],
|
|
"dims": [3, 1, 2, 2],
|
|
"type": "float32"
|
|
},
|
|
{
|
|
"data": [0.125, 0.25, 0.375],
|
|
"dims": [3],
|
|
"type": "float32"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"data": [
|
|
0.125, 1.125, 4.125, 4.125, 3.125, 13.125, 23.125, 18.125, 15.125, 43.125, 53.125, 36.125, 18.125, 45.125,
|
|
52.125, 32.125, 45.25, 104.25, 115.25, 66.25, 123.25, 279.25, 305.25, 172.25, 159.25, 357.25, 383.25,
|
|
214.25, 105.25, 232.25, 247.25, 136.25, 162.375, 351.375, 370.375, 200.375, 387.375, 833.375, 875.375,
|
|
470.375, 231.375, 494.375, 517.375, 276.375, 0.375, 0.375, 0.375, 0.375
|
|
],
|
|
"dims": [1, 3, 4, 4],
|
|
"type": "float32"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "ConvTranspose- group - C",
|
|
"operator": "ConvTranspose",
|
|
"attributes": [
|
|
{ "name": "kernel_shape", "data": [2, 2], "type": "ints" },
|
|
{ "name": "group", "data": 3, "type": "int" }
|
|
],
|
|
"cases": [
|
|
{
|
|
"name": "T[0]",
|
|
"inputs": [
|
|
{
|
|
"data": [
|
|
0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0,
|
|
19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0
|
|
],
|
|
"dims": [1, 3, 3, 4],
|
|
"type": "float32"
|
|
},
|
|
{
|
|
"data": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0],
|
|
"dims": [3, 1, 2, 2],
|
|
"type": "float32"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"data": [
|
|
0, 1, 4, 7, 6, 4, 16, 26, 36, 26, 20, 56, 66, 76, 50, 24, 59, 66, 73, 44, 60, 137, 148, 159, 90, 164, 368,
|
|
394, 420, 234, 212, 472, 498, 524, 290, 140, 307, 322, 337, 184, 216, 465, 484, 503, 270, 516, 1104, 1146,
|
|
1188, 634, 596, 1272, 1314, 1356, 722, 352, 747, 770, 793, 420
|
|
],
|
|
"dims": [1, 3, 4, 5],
|
|
"type": "float32"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "ConvTranspose- pointwise",
|
|
"operator": "ConvTranspose",
|
|
"attributes": [{ "name": "kernel_shape", "data": [1, 1], "type": "ints" }],
|
|
"cases": [
|
|
{
|
|
"name": "T[0]",
|
|
"inputs": [
|
|
{
|
|
"data": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0],
|
|
"dims": [1, 2, 2, 2],
|
|
"type": "float32"
|
|
},
|
|
{
|
|
"data": [0.0, 1.0, 2.0, 3.0],
|
|
"dims": [2, 2, 1, 1],
|
|
"type": "float32"
|
|
},
|
|
{
|
|
"data": [1, 2],
|
|
"dims": [2],
|
|
"type": "float32"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"data": [9, 11, 13, 15, 14, 18, 22, 26],
|
|
"dims": [1, 2, 2, 2],
|
|
"type": "float32"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "ConvTranspose with bias addition C",
|
|
"operator": "ConvTranspose",
|
|
"inputShapeDefinitions": "rankOnly",
|
|
"opset": { "domain": "", "version": 17 },
|
|
"attributes": [{ "name": "kernel_shape", "data": [1, 1], "type": "ints" }],
|
|
"cases": [
|
|
{
|
|
"name": "T[0]",
|
|
"inputs": [
|
|
{
|
|
"data": [
|
|
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
|
|
30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
|
|
56, 57, 58, 59, 60, 61, 62, 63, 64
|
|
],
|
|
"dims": [1, 4, 4, 4],
|
|
"type": "float32"
|
|
},
|
|
{
|
|
"data": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
|
|
"dims": [4, 4, 1, 1],
|
|
"type": "float32"
|
|
},
|
|
{
|
|
"data": [1, 2, 3, 4],
|
|
"dims": [4],
|
|
"type": "float32"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"data": [
|
|
1021, 1049, 1077, 1105, 1133, 1161, 1189, 1217, 1245, 1273, 1301, 1329, 1357, 1385, 1413, 1441, 1122,
|
|
1154, 1186, 1218, 1250, 1282, 1314, 1346, 1378, 1410, 1442, 1474, 1506, 1538, 1570, 1602, 1223, 1259,
|
|
1295, 1331, 1367, 1403, 1439, 1475, 1511, 1547, 1583, 1619, 1655, 1691, 1727, 1763, 1324, 1364, 1404,
|
|
1444, 1484, 1524, 1564, 1604, 1644, 1684, 1724, 1764, 1804, 1844, 1884, 1924
|
|
],
|
|
"dims": [1, 4, 4, 4],
|
|
"type": "float32"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|