diff --git a/examples/quiz1/.gitignore b/examples/quiz1/.gitignore new file mode 100644 index 00000000..d10776ef --- /dev/null +++ b/examples/quiz1/.gitignore @@ -0,0 +1 @@ +quiz1/ diff --git a/examples/quiz1/quiz1/quiz1.c b/examples/quiz1/quiz1/quiz1.c deleted file mode 100644 index 5861f1ce..00000000 --- a/examples/quiz1/quiz1/quiz1.c +++ /dev/null @@ -1,56 +0,0 @@ -#include "quiz1.h" - -#include -#include -#include - -// vec_double( -// N : size, -// inp : f32[N] @DRAM, -// out : f32[N] @DRAM -// ) -void vec_double( void *ctxt, int_fast32_t N, const float* inp, float* out ) { -EXO_ASSUME(N % 8 == 0); -for (int_fast32_t i = 0; i < N; i++) { - out[i] = 2.0f * inp[i]; -} -} - -// vec_double_optimized( -// N : size, -// inp : f32[N] @DRAM, -// out : f32[N] @DRAM -// ) -void vec_double_optimized( void *ctxt, int_fast32_t N, const float* inp, float* out ) { -EXO_ASSUME(N % 8 == 0); -__m256 two_vec; -two_vec = _mm256_broadcast_ss(2.0); -for (int_fast32_t io = 0; io < ((N) / (8)); io++) { - __m256 out_vec; - __m256 inp_vec; - inp_vec = _mm256_loadu_ps(&inp[8 * io]); - out_vec = _mm256_mul_ps(two_vec, inp_vec); - _mm256_storeu_ps(&out[8 * io], out_vec); -} -} - - -/* relying on the following instruction..." -vector_assign_two(out) -{out_data} = _mm256_broadcast_ss(2.0); -*/ - -/* relying on the following instruction..." -vector_load(dst,src) -{dst_data} = _mm256_loadu_ps(&{src_data}); -*/ - -/* relying on the following instruction..." -vector_multiply(out,x,y) -{out_data} = _mm256_mul_ps({x_data}, {y_data}); -*/ - -/* relying on the following instruction..." -vector_store(dst,src) -_mm256_storeu_ps(&{dst_data}, {src_data}); -*/ diff --git a/examples/quiz1/quiz1/quiz1.d b/examples/quiz1/quiz1/quiz1.d deleted file mode 100644 index f87d2bc2..00000000 --- a/examples/quiz1/quiz1/quiz1.d +++ /dev/null @@ -1,308 +0,0 @@ -quiz1/quiz1.c quiz1/quiz1.h : /home/yuka/.local/bin/exocc \ - /home/yuka/.local/lib/python3.9/site-packages/_distutils_hack/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/asdl.py \ - /home/yuka/.local/lib/python3.9/site-packages/asdl_adt/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/asdl_adt/adt.py \ - /home/yuka/.local/lib/python3.9/site-packages/asdl_adt/validators.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/_cmp.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/_compat.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/_config.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/_funcs.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/_make.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/_next_gen.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/_version_info.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/converters.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/exceptions.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/filters.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/setters.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/validators.py \ - /home/yuka/.local/lib/python3.9/site-packages/attrs/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/attrs/converters.py \ - /home/yuka/.local/lib/python3.9/site-packages/attrs/exceptions.py \ - /home/yuka/.local/lib/python3.9/site-packages/attrs/filters.py \ - /home/yuka/.local/lib/python3.9/site-packages/attrs/setters.py \ - /home/yuka/.local/lib/python3.9/site-packages/attrs/validators.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/API.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/API_cursors.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/API_scheduling.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/API_types.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/backend/LoopIR_compiler.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/backend/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/backend/mem_analysis.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/backend/parallel_analysis.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/backend/prec_analysis.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/backend/win_analysis.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/core/LoopIR.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/core/LoopIR_pprint.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/core/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/core/configs.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/core/extern.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/core/internal_cursors.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/core/memory.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/core/prelude.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/core/proc_eqv.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/frontend/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/frontend/boundscheck.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/frontend/parse_fragment.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/frontend/pattern_match.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/frontend/pyparser.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/frontend/typecheck.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/libs/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/libs/memories.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/main.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/rewrite/LoopIR_scheduling.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/rewrite/LoopIR_unification.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/rewrite/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/rewrite/analysis_simplify.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/rewrite/new_analysis_core.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/rewrite/new_eff.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/rewrite/range_analysis.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/stdlib/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/stdlib/analysis.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/stdlib/scheduling.py \ - /home/yuka/.local/lib/python3.9/site-packages/importlib_metadata/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/importlib_metadata/_adapters.py \ - /home/yuka/.local/lib/python3.9/site-packages/importlib_metadata/_collections.py \ - /home/yuka/.local/lib/python3.9/site-packages/importlib_metadata/_compat.py \ - /home/yuka/.local/lib/python3.9/site-packages/importlib_metadata/_functools.py \ - /home/yuka/.local/lib/python3.9/site-packages/importlib_metadata/_itertools.py \ - /home/yuka/.local/lib/python3.9/site-packages/importlib_metadata/_meta.py \ - /home/yuka/.local/lib/python3.9/site-packages/importlib_metadata/_text.py \ - /home/yuka/.local/lib/python3.9/site-packages/importlib_metadata/compat/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/importlib_metadata/compat/py39.py \ - /home/yuka/.local/lib/python3.9/site-packages/platformdirs/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/platformdirs/api.py \ - /home/yuka/.local/lib/python3.9/site-packages/platformdirs/unix.py \ - /home/yuka/.local/lib/python3.9/site-packages/platformdirs/version.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/configuration.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/constants.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/decorators.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/environment.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/exceptions.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/factory.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/fnode.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/formula.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/logics.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/operators.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/oracles.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/printers.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/shortcuts.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/simplifier.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/smtlib/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/smtlib/annotations.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/smtlib/commands.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/smtlib/parser/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/smtlib/parser/parser.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/smtlib/printers.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/smtlib/script.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/solvers/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/solvers/options.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/solvers/portfolio.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/solvers/qelim.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/solvers/smtlib.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/solvers/solver.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/solvers/z3.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/substituter.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/type_checker.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/typing.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/utils.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/walkers/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/walkers/dag.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/walkers/generic.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/walkers/identitydag.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/walkers/tree.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pyparser/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pyparser/pyparser.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pyparser/pyparser_utils.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pyparser/split_penalty_visitor.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pytree/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pytree/blank_line_calculator.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pytree/comment_splicer.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pytree/continuation_splicer.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pytree/pytree_unwrapper.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pytree/pytree_utils.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pytree/pytree_visitor.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pytree/split_penalty.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pytree/subtype_assigner.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/errors.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/file_resources.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/format_decision_state.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/format_token.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/identify_container.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/line_joiner.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/logical_line.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/object_state.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/reformatter.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/split_penalty.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/style.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/subtypes.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/yapf_api.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/fixer_util.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/patcomp.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/pgen2/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/pgen2/driver.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/pgen2/grammar.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/pgen2/literals.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/pgen2/parse.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/pgen2/pgen.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/pgen2/token.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/pgen2/tokenize.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/pygram.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/pytree.py \ - /home/yuka/.local/lib/python3.9/site-packages/z3/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/z3/z3.py \ - /home/yuka/.local/lib/python3.9/site-packages/z3/z3consts.py \ - /home/yuka/.local/lib/python3.9/site-packages/z3/z3core.py \ - /home/yuka/.local/lib/python3.9/site-packages/z3/z3num.py \ - /home/yuka/.local/lib/python3.9/site-packages/z3/z3poly.py \ - /home/yuka/.local/lib/python3.9/site-packages/z3/z3printer.py \ - /home/yuka/.local/lib/python3.9/site-packages/z3/z3rcf.py \ - /home/yuka/.local/lib/python3.9/site-packages/z3/z3types.py \ - /home/yuka/.local/lib/python3.9/site-packages/z3/z3util.py \ - /home/yuka/.local/lib/python3.9/site-packages/zipp/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/zipp/compat/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/zipp/compat/py310.py \ - /home/yuka/.local/lib/python3.9/site-packages/zipp/glob.py \ - /usr/local/lib/python3.9/__future__.py \ - /usr/local/lib/python3.9/_bootlocale.py \ - /usr/local/lib/python3.9/_collections_abc.py \ - /usr/local/lib/python3.9/_compat_pickle.py \ - /usr/local/lib/python3.9/_compression.py \ - /usr/local/lib/python3.9/_sitebuiltins.py \ - /usr/local/lib/python3.9/_weakrefset.py \ - /usr/local/lib/python3.9/abc.py \ - /usr/local/lib/python3.9/argparse.py \ - /usr/local/lib/python3.9/ast.py \ - /usr/local/lib/python3.9/base64.py \ - /usr/local/lib/python3.9/bisect.py \ - /usr/local/lib/python3.9/calendar.py \ - /usr/local/lib/python3.9/codecs.py \ - /usr/local/lib/python3.9/collections/__init__.py \ - /usr/local/lib/python3.9/collections/abc.py \ - /usr/local/lib/python3.9/configparser.py \ - /usr/local/lib/python3.9/contextlib.py \ - /usr/local/lib/python3.9/copy.py \ - /usr/local/lib/python3.9/copyreg.py \ - /usr/local/lib/python3.9/ctypes/__init__.py \ - /usr/local/lib/python3.9/ctypes/_endian.py \ - /usr/local/lib/python3.9/dataclasses.py \ - /usr/local/lib/python3.9/datetime.py \ - /usr/local/lib/python3.9/decimal.py \ - /usr/local/lib/python3.9/difflib.py \ - /usr/local/lib/python3.9/dis.py \ - /usr/local/lib/python3.9/email/__init__.py \ - /usr/local/lib/python3.9/email/_encoded_words.py \ - /usr/local/lib/python3.9/email/_parseaddr.py \ - /usr/local/lib/python3.9/email/_policybase.py \ - /usr/local/lib/python3.9/email/base64mime.py \ - /usr/local/lib/python3.9/email/charset.py \ - /usr/local/lib/python3.9/email/encoders.py \ - /usr/local/lib/python3.9/email/errors.py \ - /usr/local/lib/python3.9/email/feedparser.py \ - /usr/local/lib/python3.9/email/header.py \ - /usr/local/lib/python3.9/email/iterators.py \ - /usr/local/lib/python3.9/email/message.py \ - /usr/local/lib/python3.9/email/parser.py \ - /usr/local/lib/python3.9/email/quoprimime.py \ - /usr/local/lib/python3.9/email/utils.py \ - /usr/local/lib/python3.9/encodings/__init__.py \ - /usr/local/lib/python3.9/encodings/aliases.py \ - /usr/local/lib/python3.9/encodings/latin_1.py \ - /usr/local/lib/python3.9/encodings/utf_8.py \ - /usr/local/lib/python3.9/enum.py \ - /usr/local/lib/python3.9/fnmatch.py \ - /usr/local/lib/python3.9/fractions.py \ - /usr/local/lib/python3.9/functools.py \ - /usr/local/lib/python3.9/genericpath.py \ - /usr/local/lib/python3.9/gettext.py \ - /usr/local/lib/python3.9/heapq.py \ - /usr/local/lib/python3.9/importlib/__init__.py \ - /usr/local/lib/python3.9/importlib/_bootstrap.py \ - /usr/local/lib/python3.9/importlib/_bootstrap_external.py \ - /usr/local/lib/python3.9/importlib/_common.py \ - /usr/local/lib/python3.9/importlib/abc.py \ - /usr/local/lib/python3.9/importlib/machinery.py \ - /usr/local/lib/python3.9/importlib/resources.py \ - /usr/local/lib/python3.9/importlib/util.py \ - /usr/local/lib/python3.9/inspect.py \ - /usr/local/lib/python3.9/io.py \ - /usr/local/lib/python3.9/json/__init__.py \ - /usr/local/lib/python3.9/json/decoder.py \ - /usr/local/lib/python3.9/json/encoder.py \ - /usr/local/lib/python3.9/json/scanner.py \ - /usr/local/lib/python3.9/keyword.py \ - /usr/local/lib/python3.9/lib-dynload/_bisect.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_ctypes.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_datetime.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_decimal.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_heapq.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_json.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_lzma.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_opcode.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_pickle.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_posixsubprocess.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_random.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_sha512.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_socket.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_struct.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/array.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/binascii.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/grp.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/math.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/select.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/zlib.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/linecache.py \ - /usr/local/lib/python3.9/locale.py \ - /usr/local/lib/python3.9/logging/__init__.py \ - /usr/local/lib/python3.9/lzma.py \ - /usr/local/lib/python3.9/multiprocessing/__init__.py \ - /usr/local/lib/python3.9/multiprocessing/context.py \ - /usr/local/lib/python3.9/multiprocessing/process.py \ - /usr/local/lib/python3.9/multiprocessing/reduction.py \ - /usr/local/lib/python3.9/ntpath.py \ - /usr/local/lib/python3.9/numbers.py \ - /usr/local/lib/python3.9/opcode.py \ - /usr/local/lib/python3.9/operator.py \ - /usr/local/lib/python3.9/os.py \ - /usr/local/lib/python3.9/pathlib.py \ - /usr/local/lib/python3.9/pickle.py \ - /usr/local/lib/python3.9/pkgutil.py \ - /usr/local/lib/python3.9/platform.py \ - /usr/local/lib/python3.9/posixpath.py \ - /usr/local/lib/python3.9/quopri.py \ - /usr/local/lib/python3.9/random.py \ - /usr/local/lib/python3.9/re.py \ - /usr/local/lib/python3.9/reprlib.py \ - /usr/local/lib/python3.9/selectors.py \ - /usr/local/lib/python3.9/shutil.py \ - /usr/local/lib/python3.9/signal.py \ - /usr/local/lib/python3.9/site.py \ - /usr/local/lib/python3.9/socket.py \ - /usr/local/lib/python3.9/sre_compile.py \ - /usr/local/lib/python3.9/sre_constants.py \ - /usr/local/lib/python3.9/sre_parse.py \ - /usr/local/lib/python3.9/stat.py \ - /usr/local/lib/python3.9/string.py \ - /usr/local/lib/python3.9/struct.py \ - /usr/local/lib/python3.9/subprocess.py \ - /usr/local/lib/python3.9/tempfile.py \ - /usr/local/lib/python3.9/textwrap.py \ - /usr/local/lib/python3.9/threading.py \ - /usr/local/lib/python3.9/token.py \ - /usr/local/lib/python3.9/tokenize.py \ - /usr/local/lib/python3.9/traceback.py \ - /usr/local/lib/python3.9/types.py \ - /usr/local/lib/python3.9/typing.py \ - /usr/local/lib/python3.9/urllib/__init__.py \ - /usr/local/lib/python3.9/urllib/parse.py \ - /usr/local/lib/python3.9/uu.py \ - /usr/local/lib/python3.9/warnings.py \ - /usr/local/lib/python3.9/weakref.py \ - /usr/local/lib/python3.9/zipfile.py \ No newline at end of file diff --git a/examples/quiz1/quiz1/quiz1.h b/examples/quiz1/quiz1/quiz1.h deleted file mode 100644 index 534debbf..00000000 --- a/examples/quiz1/quiz1/quiz1.h +++ /dev/null @@ -1,66 +0,0 @@ - -#pragma once -#ifndef QUIZ1_H -#define QUIZ1_H - -#ifdef __cplusplus -extern "C" { -#endif - - -#include -#include - -// Compiler feature macros adapted from Hedley (public domain) -// https://github.com/nemequ/hedley - -#if defined(__has_builtin) -# define EXO_HAS_BUILTIN(builtin) __has_builtin(builtin) -#else -# define EXO_HAS_BUILTIN(builtin) (0) -#endif - -#if EXO_HAS_BUILTIN(__builtin_assume) -# define EXO_ASSUME(expr) __builtin_assume(expr) -#elif EXO_HAS_BUILTIN(__builtin_unreachable) -# define EXO_ASSUME(expr) \ - ((void)((expr) ? 1 : (__builtin_unreachable(), 1))) -#else -# define EXO_ASSUME(expr) ((void)(expr)) -#endif - - -#ifndef EXO_WIN_1F32 -#define EXO_WIN_1F32 -struct exo_win_1f32{ - float * const data; - const int_fast32_t strides[1]; -}; -#endif -#ifndef EXO_WIN_1F32C -#define EXO_WIN_1F32C -struct exo_win_1f32c{ - const float * const data; - const int_fast32_t strides[1]; -}; -#endif -// vec_double( -// N : size, -// inp : f32[N] @DRAM, -// out : f32[N] @DRAM -// ) -void vec_double( void *ctxt, int_fast32_t N, const float* inp, float* out ); - -// vec_double_optimized( -// N : size, -// inp : f32[N] @DRAM, -// out : f32[N] @DRAM -// ) -void vec_double_optimized( void *ctxt, int_fast32_t N, const float* inp, float* out ); - - - -#ifdef __cplusplus -} -#endif -#endif // QUIZ1_H diff --git a/examples/quiz2/.gitignore b/examples/quiz2/.gitignore new file mode 100644 index 00000000..99d0c64f --- /dev/null +++ b/examples/quiz2/.gitignore @@ -0,0 +1 @@ +quiz2/ diff --git a/examples/quiz2/quiz2/quiz2.c b/examples/quiz2/quiz2/quiz2.c deleted file mode 100644 index abc4efdd..00000000 --- a/examples/quiz2/quiz2/quiz2.c +++ /dev/null @@ -1,63 +0,0 @@ -#include "quiz2.h" - -#include -#include - -// scaled_add( -// N : size, -// a : f32[N] @DRAM, -// b : f32[N] @DRAM, -// c : f32[N] @DRAM -// ) -void scaled_add( void *ctxt, int_fast32_t N, const float* a, const float* b, float* c ) { -EXO_ASSUME(N % 8 == 0); -for (int_fast32_t i = 0; i < N; i++) { - c[i] = 2.0f * a[i] + 3.0f * b[i]; -} -} - -// scaled_add_scheduled( -// N : size, -// a : f32[N] @DRAM, -// b : f32[N] @DRAM, -// c : f32[N] @DRAM -// ) -void scaled_add_scheduled( void *ctxt, int_fast32_t N, const float* a, const float* b, float* c ) { -EXO_ASSUME(N % 8 == 0); -for (int_fast32_t io = 0; io < ((N) / (8)); io++) { - float *vec = (float*) malloc(8 * sizeof(*vec)); - float *vec_1 = (float*) malloc(8 * sizeof(*vec_1)); - float *vec_2 = (float*) malloc(8 * sizeof(*vec_2)); - float *vec_3 = (float*) malloc(8 * sizeof(*vec_3)); - float *vec_4 = (float*) malloc(8 * sizeof(*vec_4)); - float *vec_5 = (float*) malloc(8 * sizeof(*vec_5)); - for (int_fast32_t ii = 0; ii < 8; ii++) { - vec_1[ii] = 2.0f; - } - for (int_fast32_t ii = 0; ii < 8; ii++) { - vec_2[ii] = a[8 * io + ii]; - } - for (int_fast32_t ii = 0; ii < 8; ii++) { - vec[ii] = vec_1[ii] * vec_2[ii]; - } - free(vec_2); - free(vec_1); - for (int_fast32_t ii = 0; ii < 8; ii++) { - vec_4[ii] = 3.0f; - } - for (int_fast32_t ii = 0; ii < 8; ii++) { - vec_5[ii] = b[8 * io + ii]; - } - for (int_fast32_t ii = 0; ii < 8; ii++) { - vec_3[ii] = vec_4[ii] * vec_5[ii]; - } - free(vec_5); - free(vec_4); - for (int_fast32_t ii = 0; ii < 8; ii++) { - c[8 * io + ii] = vec[ii] + vec_3[ii]; - } - free(vec_3); - free(vec); -} -} - diff --git a/examples/quiz2/quiz2/quiz2.d b/examples/quiz2/quiz2/quiz2.d deleted file mode 100644 index da7e13da..00000000 --- a/examples/quiz2/quiz2/quiz2.d +++ /dev/null @@ -1,306 +0,0 @@ -quiz2/quiz2.c quiz2/quiz2.h : /home/yuka/.local/bin/exocc \ - /home/yuka/.local/lib/python3.9/site-packages/_distutils_hack/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/asdl.py \ - /home/yuka/.local/lib/python3.9/site-packages/asdl_adt/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/asdl_adt/adt.py \ - /home/yuka/.local/lib/python3.9/site-packages/asdl_adt/validators.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/_cmp.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/_compat.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/_config.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/_funcs.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/_make.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/_next_gen.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/_version_info.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/converters.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/exceptions.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/filters.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/setters.py \ - /home/yuka/.local/lib/python3.9/site-packages/attr/validators.py \ - /home/yuka/.local/lib/python3.9/site-packages/attrs/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/attrs/converters.py \ - /home/yuka/.local/lib/python3.9/site-packages/attrs/exceptions.py \ - /home/yuka/.local/lib/python3.9/site-packages/attrs/filters.py \ - /home/yuka/.local/lib/python3.9/site-packages/attrs/setters.py \ - /home/yuka/.local/lib/python3.9/site-packages/attrs/validators.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/API.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/API_cursors.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/API_scheduling.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/API_types.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/backend/LoopIR_compiler.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/backend/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/backend/mem_analysis.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/backend/parallel_analysis.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/backend/prec_analysis.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/backend/win_analysis.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/core/LoopIR.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/core/LoopIR_pprint.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/core/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/core/configs.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/core/extern.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/core/internal_cursors.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/core/memory.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/core/prelude.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/core/proc_eqv.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/frontend/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/frontend/boundscheck.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/frontend/parse_fragment.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/frontend/pattern_match.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/frontend/pyparser.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/frontend/typecheck.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/main.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/rewrite/LoopIR_scheduling.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/rewrite/LoopIR_unification.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/rewrite/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/rewrite/analysis_simplify.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/rewrite/new_analysis_core.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/rewrite/new_eff.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/rewrite/range_analysis.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/stdlib/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/stdlib/analysis.py \ - /home/yuka/.local/lib/python3.9/site-packages/exo/stdlib/scheduling.py \ - /home/yuka/.local/lib/python3.9/site-packages/importlib_metadata/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/importlib_metadata/_adapters.py \ - /home/yuka/.local/lib/python3.9/site-packages/importlib_metadata/_collections.py \ - /home/yuka/.local/lib/python3.9/site-packages/importlib_metadata/_compat.py \ - /home/yuka/.local/lib/python3.9/site-packages/importlib_metadata/_functools.py \ - /home/yuka/.local/lib/python3.9/site-packages/importlib_metadata/_itertools.py \ - /home/yuka/.local/lib/python3.9/site-packages/importlib_metadata/_meta.py \ - /home/yuka/.local/lib/python3.9/site-packages/importlib_metadata/_text.py \ - /home/yuka/.local/lib/python3.9/site-packages/importlib_metadata/compat/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/importlib_metadata/compat/py39.py \ - /home/yuka/.local/lib/python3.9/site-packages/platformdirs/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/platformdirs/api.py \ - /home/yuka/.local/lib/python3.9/site-packages/platformdirs/unix.py \ - /home/yuka/.local/lib/python3.9/site-packages/platformdirs/version.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/configuration.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/constants.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/decorators.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/environment.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/exceptions.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/factory.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/fnode.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/formula.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/logics.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/operators.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/oracles.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/printers.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/shortcuts.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/simplifier.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/smtlib/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/smtlib/annotations.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/smtlib/commands.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/smtlib/parser/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/smtlib/parser/parser.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/smtlib/printers.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/smtlib/script.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/solvers/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/solvers/options.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/solvers/portfolio.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/solvers/qelim.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/solvers/smtlib.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/solvers/solver.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/solvers/z3.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/substituter.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/type_checker.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/typing.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/utils.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/walkers/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/walkers/dag.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/walkers/generic.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/walkers/identitydag.py \ - /home/yuka/.local/lib/python3.9/site-packages/pysmt/walkers/tree.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pyparser/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pyparser/pyparser.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pyparser/pyparser_utils.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pyparser/split_penalty_visitor.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pytree/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pytree/blank_line_calculator.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pytree/comment_splicer.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pytree/continuation_splicer.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pytree/pytree_unwrapper.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pytree/pytree_utils.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pytree/pytree_visitor.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pytree/split_penalty.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/pytree/subtype_assigner.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/errors.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/file_resources.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/format_decision_state.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/format_token.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/identify_container.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/line_joiner.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/logical_line.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/object_state.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/reformatter.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/split_penalty.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/style.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/subtypes.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf/yapflib/yapf_api.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/fixer_util.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/patcomp.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/pgen2/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/pgen2/driver.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/pgen2/grammar.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/pgen2/literals.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/pgen2/parse.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/pgen2/pgen.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/pgen2/token.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/pgen2/tokenize.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/pygram.py \ - /home/yuka/.local/lib/python3.9/site-packages/yapf_third_party/_ylib2to3/pytree.py \ - /home/yuka/.local/lib/python3.9/site-packages/z3/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/z3/z3.py \ - /home/yuka/.local/lib/python3.9/site-packages/z3/z3consts.py \ - /home/yuka/.local/lib/python3.9/site-packages/z3/z3core.py \ - /home/yuka/.local/lib/python3.9/site-packages/z3/z3num.py \ - /home/yuka/.local/lib/python3.9/site-packages/z3/z3poly.py \ - /home/yuka/.local/lib/python3.9/site-packages/z3/z3printer.py \ - /home/yuka/.local/lib/python3.9/site-packages/z3/z3rcf.py \ - /home/yuka/.local/lib/python3.9/site-packages/z3/z3types.py \ - /home/yuka/.local/lib/python3.9/site-packages/z3/z3util.py \ - /home/yuka/.local/lib/python3.9/site-packages/zipp/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/zipp/compat/__init__.py \ - /home/yuka/.local/lib/python3.9/site-packages/zipp/compat/py310.py \ - /home/yuka/.local/lib/python3.9/site-packages/zipp/glob.py \ - /usr/local/lib/python3.9/__future__.py \ - /usr/local/lib/python3.9/_bootlocale.py \ - /usr/local/lib/python3.9/_collections_abc.py \ - /usr/local/lib/python3.9/_compat_pickle.py \ - /usr/local/lib/python3.9/_compression.py \ - /usr/local/lib/python3.9/_sitebuiltins.py \ - /usr/local/lib/python3.9/_weakrefset.py \ - /usr/local/lib/python3.9/abc.py \ - /usr/local/lib/python3.9/argparse.py \ - /usr/local/lib/python3.9/ast.py \ - /usr/local/lib/python3.9/base64.py \ - /usr/local/lib/python3.9/bisect.py \ - /usr/local/lib/python3.9/calendar.py \ - /usr/local/lib/python3.9/codecs.py \ - /usr/local/lib/python3.9/collections/__init__.py \ - /usr/local/lib/python3.9/collections/abc.py \ - /usr/local/lib/python3.9/configparser.py \ - /usr/local/lib/python3.9/contextlib.py \ - /usr/local/lib/python3.9/copy.py \ - /usr/local/lib/python3.9/copyreg.py \ - /usr/local/lib/python3.9/ctypes/__init__.py \ - /usr/local/lib/python3.9/ctypes/_endian.py \ - /usr/local/lib/python3.9/dataclasses.py \ - /usr/local/lib/python3.9/datetime.py \ - /usr/local/lib/python3.9/decimal.py \ - /usr/local/lib/python3.9/difflib.py \ - /usr/local/lib/python3.9/dis.py \ - /usr/local/lib/python3.9/email/__init__.py \ - /usr/local/lib/python3.9/email/_encoded_words.py \ - /usr/local/lib/python3.9/email/_parseaddr.py \ - /usr/local/lib/python3.9/email/_policybase.py \ - /usr/local/lib/python3.9/email/base64mime.py \ - /usr/local/lib/python3.9/email/charset.py \ - /usr/local/lib/python3.9/email/encoders.py \ - /usr/local/lib/python3.9/email/errors.py \ - /usr/local/lib/python3.9/email/feedparser.py \ - /usr/local/lib/python3.9/email/header.py \ - /usr/local/lib/python3.9/email/iterators.py \ - /usr/local/lib/python3.9/email/message.py \ - /usr/local/lib/python3.9/email/parser.py \ - /usr/local/lib/python3.9/email/quoprimime.py \ - /usr/local/lib/python3.9/email/utils.py \ - /usr/local/lib/python3.9/encodings/__init__.py \ - /usr/local/lib/python3.9/encodings/aliases.py \ - /usr/local/lib/python3.9/encodings/latin_1.py \ - /usr/local/lib/python3.9/encodings/utf_8.py \ - /usr/local/lib/python3.9/enum.py \ - /usr/local/lib/python3.9/fnmatch.py \ - /usr/local/lib/python3.9/fractions.py \ - /usr/local/lib/python3.9/functools.py \ - /usr/local/lib/python3.9/genericpath.py \ - /usr/local/lib/python3.9/gettext.py \ - /usr/local/lib/python3.9/heapq.py \ - /usr/local/lib/python3.9/importlib/__init__.py \ - /usr/local/lib/python3.9/importlib/_bootstrap.py \ - /usr/local/lib/python3.9/importlib/_bootstrap_external.py \ - /usr/local/lib/python3.9/importlib/_common.py \ - /usr/local/lib/python3.9/importlib/abc.py \ - /usr/local/lib/python3.9/importlib/machinery.py \ - /usr/local/lib/python3.9/importlib/resources.py \ - /usr/local/lib/python3.9/importlib/util.py \ - /usr/local/lib/python3.9/inspect.py \ - /usr/local/lib/python3.9/io.py \ - /usr/local/lib/python3.9/json/__init__.py \ - /usr/local/lib/python3.9/json/decoder.py \ - /usr/local/lib/python3.9/json/encoder.py \ - /usr/local/lib/python3.9/json/scanner.py \ - /usr/local/lib/python3.9/keyword.py \ - /usr/local/lib/python3.9/lib-dynload/_bisect.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_ctypes.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_datetime.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_decimal.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_heapq.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_json.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_lzma.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_opcode.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_pickle.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_posixsubprocess.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_random.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_sha512.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_socket.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/_struct.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/array.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/binascii.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/grp.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/math.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/select.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/lib-dynload/zlib.cpython-39-x86_64-linux-gnu.so \ - /usr/local/lib/python3.9/linecache.py \ - /usr/local/lib/python3.9/locale.py \ - /usr/local/lib/python3.9/logging/__init__.py \ - /usr/local/lib/python3.9/lzma.py \ - /usr/local/lib/python3.9/multiprocessing/__init__.py \ - /usr/local/lib/python3.9/multiprocessing/context.py \ - /usr/local/lib/python3.9/multiprocessing/process.py \ - /usr/local/lib/python3.9/multiprocessing/reduction.py \ - /usr/local/lib/python3.9/ntpath.py \ - /usr/local/lib/python3.9/numbers.py \ - /usr/local/lib/python3.9/opcode.py \ - /usr/local/lib/python3.9/operator.py \ - /usr/local/lib/python3.9/os.py \ - /usr/local/lib/python3.9/pathlib.py \ - /usr/local/lib/python3.9/pickle.py \ - /usr/local/lib/python3.9/pkgutil.py \ - /usr/local/lib/python3.9/platform.py \ - /usr/local/lib/python3.9/posixpath.py \ - /usr/local/lib/python3.9/quopri.py \ - /usr/local/lib/python3.9/random.py \ - /usr/local/lib/python3.9/re.py \ - /usr/local/lib/python3.9/reprlib.py \ - /usr/local/lib/python3.9/selectors.py \ - /usr/local/lib/python3.9/shutil.py \ - /usr/local/lib/python3.9/signal.py \ - /usr/local/lib/python3.9/site.py \ - /usr/local/lib/python3.9/socket.py \ - /usr/local/lib/python3.9/sre_compile.py \ - /usr/local/lib/python3.9/sre_constants.py \ - /usr/local/lib/python3.9/sre_parse.py \ - /usr/local/lib/python3.9/stat.py \ - /usr/local/lib/python3.9/string.py \ - /usr/local/lib/python3.9/struct.py \ - /usr/local/lib/python3.9/subprocess.py \ - /usr/local/lib/python3.9/tempfile.py \ - /usr/local/lib/python3.9/textwrap.py \ - /usr/local/lib/python3.9/threading.py \ - /usr/local/lib/python3.9/token.py \ - /usr/local/lib/python3.9/tokenize.py \ - /usr/local/lib/python3.9/traceback.py \ - /usr/local/lib/python3.9/types.py \ - /usr/local/lib/python3.9/typing.py \ - /usr/local/lib/python3.9/urllib/__init__.py \ - /usr/local/lib/python3.9/urllib/parse.py \ - /usr/local/lib/python3.9/uu.py \ - /usr/local/lib/python3.9/warnings.py \ - /usr/local/lib/python3.9/weakref.py \ - /usr/local/lib/python3.9/zipfile.py \ No newline at end of file diff --git a/examples/quiz2/quiz2/quiz2.h b/examples/quiz2/quiz2/quiz2.h deleted file mode 100644 index e7c89722..00000000 --- a/examples/quiz2/quiz2/quiz2.h +++ /dev/null @@ -1,55 +0,0 @@ - -#pragma once -#ifndef QUIZ2_H -#define QUIZ2_H - -#ifdef __cplusplus -extern "C" { -#endif - - -#include -#include - -// Compiler feature macros adapted from Hedley (public domain) -// https://github.com/nemequ/hedley - -#if defined(__has_builtin) -# define EXO_HAS_BUILTIN(builtin) __has_builtin(builtin) -#else -# define EXO_HAS_BUILTIN(builtin) (0) -#endif - -#if EXO_HAS_BUILTIN(__builtin_assume) -# define EXO_ASSUME(expr) __builtin_assume(expr) -#elif EXO_HAS_BUILTIN(__builtin_unreachable) -# define EXO_ASSUME(expr) \ - ((void)((expr) ? 1 : (__builtin_unreachable(), 1))) -#else -# define EXO_ASSUME(expr) ((void)(expr)) -#endif - - - -// scaled_add( -// N : size, -// a : f32[N] @DRAM, -// b : f32[N] @DRAM, -// c : f32[N] @DRAM -// ) -void scaled_add( void *ctxt, int_fast32_t N, const float* a, const float* b, float* c ); - -// scaled_add_scheduled( -// N : size, -// a : f32[N] @DRAM, -// b : f32[N] @DRAM, -// c : f32[N] @DRAM -// ) -void scaled_add_scheduled( void *ctxt, int_fast32_t N, const float* a, const float* b, float* c ); - - - -#ifdef __cplusplus -} -#endif -#endif // QUIZ2_H diff --git a/examples/quiz3/.gitignore b/examples/quiz3/.gitignore new file mode 100644 index 00000000..9f05cb89 --- /dev/null +++ b/examples/quiz3/.gitignore @@ -0,0 +1 @@ +quiz3/