Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Index tree rewrite #57

Open
wants to merge 32 commits into
base: master
Choose a base branch
from
Open

Conversation

AK2000
Copy link
Collaborator

@AK2000 AK2000 commented May 15, 2024

Rewriting Index Tree to make information more explicit in IR. Hope is that this will facilitate easier understanding and engineering, with more modular code changes.
An initial list of the changes made and left to be done. Some of these might be better served after the initial PR is finished

  • Reorganize tree into a top down structure. Enforces single parent constraint explicitly
  • Created domain type in IR to represent iteration domain of each index variable
  • Created pass to infer concrete domains from uses of the index variables in tensors
  • Created "real" sparse tensor type from what was a C predicate
  • Created workspace type
  • Created sparse tensor conversion pass which lower operations on sparse tensors and workspaces
  • Rewrite fusion pass with new index tree
  • Support "union" iteration domain for addition indices without same sparsity pattern
  • Integrate tile format information

This branch also needs to be perfomance tested before merge.

@AK2000
Copy link
Collaborator Author

AK2000 commented Jun 19, 2024

Certain tests are still failing. Some of these are expected, since they did not work correctly before. Others need to be fixed before merge:

Failed Tests:

  • kernels/triangleCount_SandiaLL.ta
  • ops/eltwise_mult_DCSRxDense_oDCSR.ta
  • compound_exps/CSR_mult_spTranspose_CSR.ta
  • compound_exps/spTranspose_CSR_eltwise_CSR.ta
  • compound_exps/spTranspose_CSR_mult_CSR.ta
  • opts/chain_mult_factorize.ta

Expected to Fail because of elementwise "addition":

  • ops/eltwise_subtract_CSRxCSR_oCSR.ta
  • ops/eltwise_add_CSRxCSR_oCSR.ta
  • semiring/eltwise_monoidPlus_COOxDense_oCOO.ta
  • semiring/mm_SemiringMinFirst_CSRxCSR_oCSR.ta
  • semiring/mm_SemiringMinPlus_CSRxCSR_oCSR.ta
  • semiring/mm_SemiringMinSecond_CSRxCSR_oCSR.ta
  • semiring/mm_SemiringPlusFirst_CSRxCSR_oCSR.ta
  • semiring/mm_SemiringPlusSecond_CSRxCSR_oCSR.ta

Expected to Fail because Masking

  • ops/mult_spgemm_CSRxCSR_oCSR_wMasking.ta
  • kernels/triangleCount_SandiaLL_wMasking.ta

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant