exo-lang / exo

Exocompilation for productive programming of hardware accelerators
https://exo-lang.dev
MIT License
295 stars 30 forks source link

Implemented `insert_noop_call` scheduling operation #661

Closed skeqiqevian closed 1 month ago

skeqiqevian commented 3 months ago

implement a new scheduling op to insert no-op function calls anywhere, addressing #565. This scheduling op will be useful for inserting prefetching and potentially synchronization primitives arbitrarily.

For now, it only works if the body of the proc is a single pass statement, but we could potentially extend this in the future.

codecov[bot] commented 3 months ago

Codecov Report

Attention: Patch coverage is 89.02439% with 9 lines in your changes missing coverage. Please review.

Project coverage is 87.76%. Comparing base (0cf7e19) to head (fe04449). Report is 1 commits behind head on main.

Files Patch % Lines
src/exo/typecheck.py 78.26% 5 Missing :warning:
src/exo/LoopIR_scheduling.py 94.11% 2 Missing :warning:
src/exo/API_scheduling.py 92.30% 1 Missing :warning:
src/exo/pyparser.py 0.00% 1 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #661 +/- ## ========================================== + Coverage 87.74% 87.76% +0.02% ========================================== Files 84 84 Lines 20658 20715 +57 ========================================== + Hits 18126 18181 +55 - Misses 2532 2534 +2 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

yamaguchi1024 commented 3 months ago

@skeqiqevian Implementation of insert_noop_call looks good (I like the typecheck refactoring!) but how does changing the schedule of apps/x86/sgemm/sgemm.py affect the performance?