add throughput mode to validation scripts
make raptor also emit input sizes
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user