code: def test_matmul_performance(self):
      n = 1024
      repeats = 10
      x = tf.random.uniform([n, n])
      y = tf.random.uniform([n, n])
      actual = tf.matmul(x, y)
      private_x = tfe.define_private_input("server0", lambda: x)
      private_y = tfe.define_private_input("server0", lambda: y)
  
      @tfe.function
      def test_matmul(input_x, input_y):
          z = tfe.matmul(input_x, input_y)
          return z.reveal().to_native()
  
      Performance.time_log("1st run")
      result = test_matmul(private_x, private_y)
      np.testing.assert_allclose(result, actual, rtol=0.0, atol=0.01)
      Performance.time_log("1st run")
  
      Performance.time_log("run " + str(repeats) + " rounds")
      for i in range(repeats):
          test_matmul(private_x, private_y)
      Performance.time_log("run " + str(repeats) + " rounds")
  
file_path: tf-encrypted/examples/benchmark/operation/op_profile.py
imports: import argparse
  import unittest
  import numpy
  import tensorflow
  import tf_encrypted
  from tf_encrypted.performance import Performance
  from tf_encrypted.protocol import ABY3
  from tf_encrypted.protocol import Pond
  from tf_encrypted.protocol import SecureNN
label_desc: Use image node_id 6 for calling the TestOPProfile obj's underlying member method code with example usage: obj.test_matmul_performance() and returns: z