Skip to content

Commit

Permalink
Merge branch 'main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
yamaguchi1024 authored Nov 7, 2024
2 parents c266e95 + 2372d0c commit 52bc09e
Show file tree
Hide file tree
Showing 125 changed files with 4,786 additions and 725 deletions.
2 changes: 1 addition & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "daily"
interval: "monthly"
4 changes: 2 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ license: MIT
# These fields should point to the latest release and be updated as soon as a
# new release is tagged.
commit: 09e666ee0690797a6c56103b65f5d83abd79c60e
version: 0.2.1
date-released: 2024-08-28
version: 1.0.0
date-released: 2024-11-05

# This is the citation for the PLDI 2022 paper.
preferred-citation:
Expand Down
30 changes: 5 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ If you're just using Exo, install it using `pip`:
```sh
$ pip install exo-lang
```
In case of `ModuleNotFoundError: No module named 'attrs'` please upgrade your attrs module by `pip install --upgrade attrs`.

## Compile Exo

Expand All @@ -29,11 +30,6 @@ You can use optional arguments to customize the output:
- The `--stem` argument allows you to specify custom names for the C file and header file.


# Examples

Take a look at [examples](examples/README.md) for scheduling examples, and [API documentation](docs/API.md) for complete scheduling interface documentation.


# Build Exo from source

We make active use of newer Python 3.x features. Please use Python 3.9 or 3.10 if you're getting errors about unsupported features.
Expand Down Expand Up @@ -62,7 +58,6 @@ Finally, you can build and install Exo.
(exo) $ pip install dist/*.whl
```


## PySMT

Depending on your setup, getting PySMT to work correctly may be difficult. You
Expand Down Expand Up @@ -117,31 +112,16 @@ pytest --cov=./ --cov-report=html

Then, if you want to see annotated source files, open `./htmlcov/index.html`.

---

# Repository structure

In this repository, folders are structured as follows:
# Learn about Exo

1. `src/exo` is where the core Exo implementation resides.
- **APIs.** Documentation for the APIs can be found in the [API documentation](docs/API.md).
- `API.py` defines a stable API for top-level decorators (`proc`, `instr`, and `config`).
- `API_scheduling.py` defines a API for scheduling primitives.
- `API_cursors.py` defines a API for scheduling primitives.
- **Standard libraries.** These could be user-defined, but we provide them for convenience.
- `libs/` contains some common memory definitions (`memories.py`) and custom malloc implementations.
- `platforms/` contains instruction definitions that are part of the release.
- `stdlib/` contains user-level scheduling functions such as `vectorize`.
- Other files are implementation details of Exo (e.g., `typecheck.py` implements typecheck), are not exposed to users.
2. `apps/` contains some sample applications written in Exo.
3. `dependencies/` contains submodules that Exo's apps and testing depends on.
4. `examples/` contains a step-by-step example of scheduling basic matrix multiplication on AVX2.
5. `tests/` contains the Exo test suite.
6. `docs/` contains additional Exo documentation.
Take a look at the [examples](examples/README.md) directory for scheduling examples and the [documentation](docs/README.md) directory for various documentation about Exo.


# Contact

Please contact [exo@mit.edu](mailto:exo@mit.edu) if you have any questions.
Please contact [exo@mit.edu](mailto:exo@mit.edu) or [yuka@csail.mit.edu](mailto:yuka@csail.mit.edu) if you have any questions.


# Publication
Expand Down
4 changes: 2 additions & 2 deletions apps/x86/conv/conv.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from __future__ import annotations

from exo import *
from exo.builtins import *
from exo.libs.externs import *
from exo.platforms.x86 import *
from exo.syntax import *
from exo.frontend.syntax import *
from exo.stdlib.scheduling import *


Expand Down
2 changes: 1 addition & 1 deletion apps/x86/sgemm/sgemm.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from exo import *
from exo.libs.memories import DRAM_STATIC
from exo.platforms.x86 import *
from exo.syntax import *
from exo.frontend.syntax import *
from exo.stdlib.scheduling import *
from exo.stdlib.stdlib import *

Expand Down
14 changes: 7 additions & 7 deletions dev-requirements.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
black==24.8.0
coverage==7.6.1
pre-commit==3.8.0
pytest-cov==5.0.0
black==24.10.0
coverage==7.6.4
pre-commit==4.0.1
pytest-cov==6.0.0
pytest-xdist==3.6.1
pytest==8.3.3
tox==4.21.2
numpy==2.1.1
Pillow==10.4.0
tox==4.23.2
numpy==2.1.2
Pillow==11.0.0
Loading

0 comments on commit 52bc09e

Please sign in to comment.