From 0444ca8c9f0b5cda80f480df8ae57f9004712d0d Mon Sep 17 00:00:00 2001 From: Ayush Ranjan Date: Fri, 14 Oct 2022 11:24:22 -0700 Subject: [PATCH] Make tensorflow benchmark order deterministic. Makes it easier to compare output from different runs. Consistent with what other benchmarks do. PiperOrigin-RevId: 481192191 --- test/benchmarks/ml/tensorflow_test.go | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/test/benchmarks/ml/tensorflow_test.go b/test/benchmarks/ml/tensorflow_test.go index 6c328090f..ee0c946b8 100644 --- a/test/benchmarks/ml/tensorflow_test.go +++ b/test/benchmarks/ml/tensorflow_test.go @@ -26,15 +26,17 @@ import ( // BenchmarkTensorflow runs workloads from a TensorFlow tutorial. // See: https://github.com/aymericdamien/TensorFlow-Examples func BenchmarkTensorflow(b *testing.B) { - workloads := map[string]string{ - "GradientDecisionTree": "2_BasicModels/gradient_boosted_decision_tree.py", - "Kmeans": "2_BasicModels/kmeans.py", - "LogisticRegression": "2_BasicModels/logistic_regression.py", - "NearestNeighbor": "2_BasicModels/nearest_neighbor.py", - "RandomForest": "2_BasicModels/random_forest.py", - "ConvolutionalNetwork": "3_NeuralNetworks/convolutional_network.py", - "MultilayerPerceptron": "3_NeuralNetworks/multilayer_perceptron.py", - "NeuralNetwork": "3_NeuralNetworks/neural_network.py", + workloads := []struct { + name, file string + }{ + {"GradientDecisionTree", "2_BasicModels/gradient_boosted_decision_tree.py"}, + {"Kmeans", "2_BasicModels/kmeans.py"}, + {"LogisticRegression", "2_BasicModels/logistic_regression.py"}, + {"NearestNeighbor", "2_BasicModels/nearest_neighbor.py"}, + {"RandomForest", "2_BasicModels/random_forest.py"}, + {"ConvolutionalNetwork", "3_NeuralNetworks/convolutional_network.py"}, + {"MultilayerPerceptron", "3_NeuralNetworks/multilayer_perceptron.py"}, + {"NeuralNetwork", "3_NeuralNetworks/neural_network.py"}, } machine, err := harness.GetMachine() @@ -43,10 +45,10 @@ func BenchmarkTensorflow(b *testing.B) { } defer machine.CleanUp() - for name, workload := range workloads { + for _, workload := range workloads { runName, err := tools.ParametersToName(tools.Parameter{ Name: "operation", - Value: name, + Value: workload.name, }) if err != nil { b.Fatalf("Failed to parse param: %v", err) @@ -71,7 +73,7 @@ func BenchmarkTensorflow(b *testing.B) { Image: "benchmarks/tensorflow", Env: []string{"PYTHONPATH=$PYTHONPATH:/TensorFlow-Examples/examples"}, WorkDir: "/TensorFlow-Examples/examples", - }, "python", workload); err != nil { + }, "python", workload.file); err != nil { b.Errorf("failed to run container: %v logs: %s", err, out) } b.StopTimer()