add throughput mode to validation scripts

make raptor also emit input sizes
This commit is contained in:
NiccoloN
2026-08-11 10:34:50 +02:00
parent 910701dfaf
commit c55d9f3dad
15 changed files with 974 additions and 497 deletions
+28 -28
View File
@@ -485,16 +485,16 @@ def conv_without_kernel_shape_attr():
# GEMM tests
# ---------------------------------------------------------------------------
def gemm_simple():
def gemm_square_weights():
"""Simple GEMM with square weights: [10, 132] @ [132, 132]."""
B, K, N = 10, 132, 132
W = numpy_helper.from_array(np.random.default_rng(41).uniform(-1, 1, (K, N)).astype(np.float32), name="W")
A = helper.make_tensor_value_info("A", TensorProto.FLOAT, [B, K])
Y = helper.make_tensor_value_info("Y", TensorProto.FLOAT, [B, N])
node = helper.make_node("Gemm", ["A", "W"], ["Y"])
graph = helper.make_graph([node], "gemm_simple", [A], [Y], initializer=[W])
graph = helper.make_graph([node], "gemm_square_weights", [A], [Y], initializer=[W])
model = helper.make_model(graph, opset_imports=[helper.make_opsetid("", 13)])
save_model(model, "gemm/simple", "gemm_simple.onnx")
save_model(model, "gemm/square_weights", "gemm_square_weights.onnx")
def gemm_non_square():
@@ -523,7 +523,7 @@ def gemm_with_bias():
save_model(model, "gemm/with_bias", "gemm_with_bias.onnx")
def gemm_transB():
def gemm_transpose_b():
"""GEMM with transB=1: Y = A @ W^T."""
B, K, N = 4, 128, 64
rng = np.random.default_rng(44)
@@ -532,9 +532,9 @@ def gemm_transB():
A = helper.make_tensor_value_info("A", TensorProto.FLOAT, [B, K])
Y = helper.make_tensor_value_info("Y", TensorProto.FLOAT, [B, N])
node = helper.make_node("Gemm", ["A", "W"], ["Y"], transB=1)
graph = helper.make_graph([node], "gemm_transB", [A], [Y], initializer=[W])
graph = helper.make_graph([node], "gemm_transpose_b", [A], [Y], initializer=[W])
model = helper.make_model(graph, opset_imports=[helper.make_opsetid("", 13)])
save_model(model, "gemm/transB", "gemm_transB.onnx")
save_model(model, "gemm/transpose_b", "gemm_transpose_b.onnx")
def gemm_alpha_beta():
@@ -577,7 +577,7 @@ def gemm_large():
save_model(model, "gemm/large", "gemm_large.onnx")
def gemm_transB_with_bias():
def gemm_transpose_b_with_bias():
"""GEMM with transB and bias: Y = A @ W^T + C."""
B, K, N = 4, 128, 64
rng = np.random.default_rng(48)
@@ -586,9 +586,9 @@ def gemm_transB_with_bias():
A = helper.make_tensor_value_info("A", TensorProto.FLOAT, [B, K])
Y = helper.make_tensor_value_info("Y", TensorProto.FLOAT, [B, N])
node = helper.make_node("Gemm", ["A", "W", "C"], ["Y"], transB=1)
graph = helper.make_graph([node], "gemm_transB_with_bias", [A], [Y], initializer=[W, C])
graph = helper.make_graph([node], "gemm_transpose_b_with_bias", [A], [Y], initializer=[W, C])
model = helper.make_model(graph, opset_imports=[helper.make_opsetid("", 13)])
save_model(model, "gemm/transB_with_bias", "gemm_transB_with_bias.onnx")
save_model(model, "gemm/transpose_b_with_bias", "gemm_transpose_b_with_bias.onnx")
def gemm_dynamic():
@@ -602,15 +602,15 @@ def gemm_dynamic():
save_model(model, "gemm/dynamic", "gemm_dynamic.onnx")
def gemm_dynamic_transB():
def gemm_dynamic_transpose_b():
"""GEMM with runtime matrix operands and transposed runtime B."""
A = helper.make_tensor_value_info("A", TensorProto.FLOAT, [2, 8])
B = helper.make_tensor_value_info("B", TensorProto.FLOAT, [4, 8])
Y = helper.make_tensor_value_info("Y", TensorProto.FLOAT, [2, 4])
node = helper.make_node("Gemm", ["A", "B"], ["Y"], transB=1)
graph = helper.make_graph([node], "gemm_dynamic_transB", [A, B], [Y])
graph = helper.make_graph([node], "gemm_dynamic_transpose_b", [A, B], [Y])
model = helper.make_model(graph, opset_imports=[helper.make_opsetid("", 13)])
save_model(model, "gemm/dynamic_transB", "gemm_dynamic_transB.onnx")
save_model(model, "gemm/dynamic_transpose_b", "gemm_dynamic_transpose_b.onnx")
def gemm_dynamic_bias():
@@ -696,26 +696,26 @@ def gemm_small_k_large_n():
save_model(model, "gemm/small_k_large_n", "gemm_small_k_large_n.onnx")
def gemm_transA():
def gemm_transpose_a():
"""GEMM with transA=1: A is stored as [K, M] and used as [M, K]."""
A = helper.make_tensor_value_info("A", TensorProto.FLOAT, [8, 4])
Y = helper.make_tensor_value_info("Y", TensorProto.FLOAT, [4, 6])
W = numpy_helper.from_array(np.random.default_rng(90).uniform(-1, 1, (8, 6)).astype(np.float32), name="W")
node = helper.make_node("Gemm", ["A", "W"], ["Y"], transA=1)
graph = helper.make_graph([node], "gemm_transA", [A], [Y], initializer=[W])
graph = helper.make_graph([node], "gemm_transpose_a", [A], [Y], initializer=[W])
model = helper.make_model(graph, opset_imports=[helper.make_opsetid("", 13)])
save_model(model, "gemm/transA", "gemm_transA.onnx")
save_model(model, "gemm/transpose_a", "gemm_transpose_a.onnx")
def gemm_transA_transB():
def gemm_transpose_a_and_b():
"""GEMM with transA=1 and transB=1."""
A = helper.make_tensor_value_info("A", TensorProto.FLOAT, [8, 4])
Y = helper.make_tensor_value_info("Y", TensorProto.FLOAT, [4, 6])
W = numpy_helper.from_array(np.random.default_rng(91).uniform(-1, 1, (6, 8)).astype(np.float32), name="W")
node = helper.make_node("Gemm", ["A", "W"], ["Y"], transA=1, transB=1)
graph = helper.make_graph([node], "gemm_transA_transB", [A], [Y], initializer=[W])
graph = helper.make_graph([node], "gemm_transpose_a_and_b", [A], [Y], initializer=[W])
model = helper.make_model(graph, opset_imports=[helper.make_opsetid("", 13)])
save_model(model, "gemm/transA_transB", "gemm_transA_transB.onnx")
save_model(model, "gemm/transpose_a_and_b", "gemm_transpose_a_and_b.onnx")
def gemm_bias_rank2_broadcast():
@@ -1415,7 +1415,7 @@ def resize_nearest_2x():
save_model(model, "resize/nearest_2x", "resize_nearest_2x.onnx")
def resize_nearest_non_uniform():
def resize_nearest_non_uniform_scales():
"""Resize an NCHW tensor with non-uniform nearest-neighbor scales."""
X = helper.make_tensor_value_info("X", TensorProto.FLOAT, [1, 1, 2, 3])
Y = helper.make_tensor_value_info("Y", TensorProto.FLOAT, [1, 1, 6, 6])
@@ -1424,9 +1424,9 @@ def resize_nearest_non_uniform():
node = helper.make_node(
"Resize", ["X", "roi", "scales"], ["Y"],
mode="nearest", coordinate_transformation_mode="asymmetric", nearest_mode="floor")
graph = helper.make_graph([node], "resize_nearest_non_uniform", [X], [Y], initializer=[roi, scales])
graph = helper.make_graph([node], "resize_nearest_non_uniform_scales", [X], [Y], initializer=[roi, scales])
model = helper.make_model(graph, opset_imports=[helper.make_opsetid("", 13)])
save_model(model, "resize/non_uniform", "resize_non_uniform.onnx")
save_model(model, "resize/non_uniform_scales", "resize_non_uniform_scales.onnx")
def resize_with_sizes():
@@ -2079,16 +2079,16 @@ def div_leading_dimension_broadcast():
if __name__ == "__main__":
print("Generating GEMM tests:")
gemm_simple()
gemm_square_weights()
gemm_non_square()
gemm_with_bias()
gemm_transB()
gemm_transpose_b()
gemm_alpha_beta()
gemm_small()
gemm_large()
gemm_transB_with_bias()
gemm_transpose_b_with_bias()
gemm_dynamic()
gemm_dynamic_transB()
gemm_dynamic_transpose_b()
gemm_dynamic_bias()
gemm_dynamic_alpha()
gemm_dynamic_beta()
@@ -2096,8 +2096,8 @@ if __name__ == "__main__":
gemm_huge_1024()
gemm_large_k_small_n()
gemm_small_k_large_n()
gemm_transA()
gemm_transA_transB()
gemm_transpose_a()
gemm_transpose_a_and_b()
gemm_bias_rank2_broadcast()
gemm_scalar_bias()
@@ -2220,7 +2220,7 @@ if __name__ == "__main__":
print("\nGenerating Resize tests:")
resize_nearest_2x()
resize_nearest_non_uniform()
resize_nearest_non_uniform_scales()
resize_with_sizes()
resize_nearest_downsample()
resize_height_only()