autoray.experimental.complexity_tracing#

Functionality for tracing through an autoray.lazy computation and estimating the cost and scaling.

In the following there are cost_* functions that estimate the total cost of a given operation, including sub-leading factors. There are also cost_scaling_* functions that only consider the leading factor of the cost, so that we can prime number decompose it and extract the scaling.

Module Contents#

Functions#

cost_tensordot(x)

cost_qr(x)

cost_svd(x)

cost_eigh(x)

cost_scaling_linalg(x)

Here we only care about the leading factor of the cost, which we need to

cost_matmul(x)

cost_einsum(x)

cost_linear(x)

cost_nothing(x)

cost_node(x[, allow_missed])

compute_cost(z[, print_missed])

prime_factors(→ list[int])

is_prime(→ bool)

closest_prime(→ int)

frequencies(it)

compute_cost_scalings(z, factor_map[, print_missed])

Attributes#

autoray.experimental.complexity_tracing.cost_tensordot(x)#
autoray.experimental.complexity_tracing.cost_scaling_tensordot#
autoray.experimental.complexity_tracing.cost_qr(x)#
autoray.experimental.complexity_tracing.cost_svd(x)#
autoray.experimental.complexity_tracing.cost_eigh(x)#
autoray.experimental.complexity_tracing.cost_scaling_linalg(x)#

Here we only care about the leading factor of the cost, which we need to preserve so that we can prime number decompose it.

autoray.experimental.complexity_tracing.cost_matmul(x)#
autoray.experimental.complexity_tracing.cost_scaling_matmul#
autoray.experimental.complexity_tracing.cost_einsum(x)#
autoray.experimental.complexity_tracing.cost_scaling_einsum#
autoray.experimental.complexity_tracing.cost_linear(x)#
autoray.experimental.complexity_tracing.cost_nothing(x)#
autoray.experimental.complexity_tracing.COSTS#
autoray.experimental.complexity_tracing.cost_node(x, allow_missed=True)#
autoray.experimental.complexity_tracing.compute_cost(z, print_missed=True)#
autoray.experimental.complexity_tracing.COST_SCALINGS#
autoray.experimental.complexity_tracing.prime_factors(n) list[int]#
autoray.experimental.complexity_tracing.is_prime(n: int) bool#
autoray.experimental.complexity_tracing.closest_prime(nt: int) int#
autoray.experimental.complexity_tracing.frequencies(it)#
autoray.experimental.complexity_tracing.compute_cost_scalings(z, factor_map, print_missed=True)#