import copy import dace import dace.data import dace.dtypes as dtypes from dace.transformation.optimizer import Optimizer from dace.transformation.dataflow import MapCollapse from dace.transformation.interstate import LoopToMap import dace.transformation.auto.auto_optimize as opt import math import numpy as np N = dace.symbol('N') @dace.program(auto_optimize=True) def dace_fn(L:dace.float64[N, N], x:dace.float64[N], Df:dace.float64[N]): for i in range(0, N): for j in range(i+1, N): Df[i] = L[i][j] * x[j] L_mat = np.random.rand(20,20) x_vect = np.random.rand(20) Df_vect = np.random.rand(20) dace_compile = dace_fn.compile(L_mat, x_vect, Df_vect, N=20) dace_compile(L_mat, x_vect, Df_vect, N=20)