You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Problem: There are now multiple ways to express Cube-Vector data exchange. This is perhaps the most complicated part of PTO programming (for both C++ and Python DSL), and will be the major confusion point for users.
Plan: Should clearly demo the syntax differences and performance differences for each of the syntax flavors, using short "microkernels" without a complex algorithm (for example a pipelined matmul-add for a nice static shape, as a "warm-up" example before the users dive into full FlashAttention)
Similar to #119, but covers all possible syntax variants.
Problem: There are now multiple ways to express Cube-Vector data exchange. This is perhaps the most complicated part of PTO programming (for both C++ and Python DSL), and will be the major confusion point for users.
Plan: Should clearly demo the syntax differences and performance differences for each of the syntax flavors, using short "microkernels" without a complex algorithm (for example a pipelined matmul-add for a nice static shape, as a "warm-up" example before the users dive into full FlashAttention)
Similar to #119, but covers all possible syntax variants.
C++:
pto::TSYNCTPUSH,TPOPPython (see ptoas-tpush-tpop-design.md):
sync_set,sync_wait, full manual sync mode, like Port single-core scan from pto-kernels #113pto.push,pto.pop(with or without intra-core autosync)alloc/free(with or without intra-core autosync)Notes: