예제 #1
0
            wenzel_utils.compile_wenzel(
                "hessian", False, compiler_version=WENZEL_COMPILER_VERSION)

            # initialize arrays for run
            our_times = []
            py_times = []
            wenzel_times_static = []
            wenzel_times_dynamic = []

            for i in range(NUM_ITERATIONS):

                pytorch = pytorch_utils.run_pytorch_hessian()
                ours = us_utils.run_ours(
                    functions[func_num],
                    num_params,
                    functions,
                    PARAMS_FILENAME,
                    OUTPUT_FILENAME,
                    runnable_filename=
                    "./tests/utils/static_code/runnable_hessian")
                wenzel_static = wenzel_utils.run_wenzel("hessian", True)
                wenzel_dynamic = wenzel_utils.run_wenzel("hessian", False)

                our_times.append(float(ours[1]))
                py_times.append(float(pytorch[1]))
                wenzel_times_static.append(float(wenzel_static[1]))
                wenzel_times_dynamic.append(float(wenzel_dynamic[1]))

            # print for debug purposes
            print("Parameters: ", params[:10])
            print("ours: ", ours[0][:10])
            print("pytorch: ", pytorch[0][:10])
            wenzel_utils.compile_wenzel("single", False,
                                        WENZEL_COMPILER_VERSION)

            # initialize arrays for run
            our_times = []
            py_times = []
            wenzel_times_static = []
            wenzel_times_dynamic = []
            enoki_times = []
            tapenade_times = []

            for i in range(NUM_ITERATIONS):

                pytorch = pytorch_utils.run_pytorch()
                ours = us_utils.run_ours(functions[func_num], num_params,
                                         functions, PARAMS_FILENAME,
                                         OUTPUT_FILENAME, RUNNABLE_FILENAME)
                enoki = enoki_utils.run_enoki()
                wenzel_static = wenzel_utils.run_wenzel("single", True)
                wenzel_dynamic = wenzel_utils.run_wenzel("single", False)
                tapenade = tapenade_utils.run_tapenade(functions[func_num],
                                                       num_params, functions,
                                                       PARAMS_FILENAME,
                                                       TAPENADE_OUTPUT,
                                                       RUNNABLE_TAPENADE)

                # for j in range(len(ours[0])):
                #     assert math.isclose(float(pytorch[0][j]), float(wenzel[0][j]), abs_tol=10**-3)
                #     assert math.isclose(float(wenzel[0][j]), float(ours[0][j]), abs_tol=10**-3)
                # assert math.isclose(float(ours[0][j]), float(enoki[0][j]), abs_tol=10**-1)
                our_times.append(float(ours[1]))
예제 #3
0
                "hessian", False, compiler_version=WENZEL_COMPILER_VERSION)

            # initialize arrays for run
            our_times_single = []
            our_times_hessian = []
            wenzel_times_single_static = []
            wenzel_times_hessian_static = []
            wenzel_times_single_dynamic = []
            wenzel_times_hessian_dynamic = []

            for i in range(NUM_ITERATIONS):
                ours_single = us_utils.run_ours(
                    functions[func_num],
                    num_params,
                    functions,
                    PARAMS_FILENAME,
                    output_filename=
                    "./tests/utils/hessian/us_output_single.txt",
                    runnable_filename=
                    "./tests/utils/static_code/runnable_single")
                ours_hessian = us_utils.run_ours(
                    functions[func_num],
                    num_params,
                    functions,
                    PARAMS_FILENAME,
                    output_filename=
                    "./tests/utils/hessian/us_output_hessian.txt",
                    runnable_filename=
                    "./tests/utils/static_code/runnable_hessian")
                wenzel_single_static = wenzel_utils.run_wenzel("single", True)
                wenzel_double_static = wenzel_utils.run_wenzel("hessian", True)