# Copyright © 2023 Apple Inc. import numpy as np from time_utils import time_fn def time_add(): a = np.ones((100, 100, 10), dtype=np.float32) b = np.ones((100, 100, 10), dtype=np.float32) time_fn(np.add, a, b) def time_matmul(): a = np.random.rand(1000, 500).astype(np.float32) b = np.random.rand(500, 1000).astype(np.float32) time_fn(np.matmul, a, b) def time_exp(): a = np.random.randn(1000, 100).astype(np.float32) time_fn(np.exp, a) def time_take(): a = np.random.rand(10000, 500) ids = np.random.randint(0, 10000, (20, 10)) ids = [idx.reshape(-1) for idx in np.split(ids, 20)] def random_take(): return [np.take(a, idx, 0) for idx in ids] time_fn(random_take) if __name__ == "__main__": time_add() time_matmul() time_exp() time_take()