George Hotz
a0cb16ac61
node cleanup + local metal test speed [pr] ( #6880 )
...
* node cleanup [pr]
* fix tests, including the double one on metal
* no time tqdm tests
2024-10-04 18:14:23 +08:00
George Hotz
cdff1d75b6
things that are only used in one place don't belong in helpers [pr] ( #6878 )
...
* things that are only used in one place don't belong in helpers [pr]
* pretty print moved
2024-10-04 17:27:38 +08:00
George Hotz
f4ec39fe58
switch symbolic from old to uops, final PR ( #6872 )
...
* switch symbolic from old to uops, final PR
* two wrong answers
* not needed resolves
* symbolic ops passes
* symbolic ops passes
* progress
* tests pass (almost)
* fix last test
* fix some tests
* global binding and unbinding
* Revert "global binding and unbinding"
This reverts commit 9456725630316487509980af20c6d2981de00bec.
* that test works now
* vars on uop doesn't recurse
* fix fuzzer
* update
* fix type
* fix gpt, it's UOp now
* ssimplify symbolics
2024-10-04 16:42:27 +08:00
George Hotz
738a5794a9
last update for new symbolic [pr] ( #6877 )
2024-10-04 14:58:51 +08:00
George Hotz
e10245909a
explore global uop cache [pr] ( #6863 )
...
* explore global uop cache
* wvd uops
* remove useless lru caches
* key is is
* simpler rewriter
2024-10-03 13:08:13 +08:00
chenyu
c3c93f332a
symbolic bool raise ValueError when not sure [pr] ( #6853 )
2024-10-02 09:10:58 -04:00
George Hotz
7214450c23
little symbolic changes [pr] ( #6849 )
...
* little symbolic changes [pr]
* symbolic needs resolve too
* no resolve
* less change
2024-10-02 17:12:30 +08:00
George Hotz
be12409b51
changes for symbolic ( #6844 )
...
* changes for symbolic
* only for ints
* check int first
2024-10-02 12:57:16 +08:00
George Hotz
100ce7a684
hotfix: min/max on CMPNE was wrong
2024-10-02 10:15:03 +08:00
George Hotz
1ac83aaa4b
lil sym changes ( #6837 )
...
* lil sym changes [pr]
* fix inf crap
* Update ops.py
* remove that, it's wrong
2024-10-02 09:54:17 +08:00
George Hotz
84726e8855
good changes from symbolic removal [run_process_replay] ( #6835 )
...
* good changes from symbolic removal [run_process_replay]
* fix __ne__
2024-10-01 18:49:09 +08:00
George Hotz
e907b25792
move some pm rules to uopgraph.py [run_process_replay] ( #6831 )
...
* move some pm rules to uopgraph.py [run_process_replay]
* move more
* move lt and clean
* end maybe
* put back
2024-10-01 18:28:41 +08:00
George Hotz
8a93c48901
pickle main pattern matcher [run_process_replay] ( #6827 )
...
* pickle main pattern matcher [run_process_replay]
* del line
2024-10-01 13:58:42 +08:00
George Hotz
d726eb6f48
uop resolve [run_process_replay] ( #6826 )
...
* uop bool and int and stuff [run_process_replay]
* add ne support
* can't even be None anymore
* BinaryOps.AND support
* less compare
2024-10-01 13:11:42 +08:00
George Hotz
0f28e93224
add pickle support for pattern matchers [run_process_replay] ( #6816 )
...
* add pickle support for pattern matchers [run_process_replay]
* cleaner and all
* no closures
* fix tests
* revert that
* final
* cleaner
* python 3.8 fix
* add round trip back
* this
* waste lines on this. that's the final line count
* max print better
* more targetted fix
* regrettably add 3.8 support
2024-09-30 21:54:46 +08:00
George Hotz
eaa1e0eeeb
rename constant_folder to sym [run_process_replay] ( #6780 )
2024-09-27 14:54:54 +08:00
wozeparrot
2b899164c6
no numpy ( #6751 )
2024-09-26 16:40:18 +08:00
George Hotz
882339f729
remove parens from neg ( #6738 )
2024-09-25 15:38:20 +08:00
chenyu
ff25bfb1b0
conv backward tests in test_simplify_valid_idx ( #6727 )
...
the backward idx is pretty ugly now
2024-09-25 02:51:07 -04:00
chenyu
e6a1b5aa8f
more test_simplify_valid_idx cleanup ( #6726 )
...
moved UOps.VECTORIZE of idx into the helper
2024-09-24 23:47:42 -04:00
chenyu
14524eeddc
test_image_valid.py -> test_simplify_valid_idx.py ( #6724 )
...
restructure the tests, will use the same file for non-image tests
2024-09-24 23:32:27 -04:00
chenyu
8d75326cb5
do not fold var with min==max ( #6713 )
...
not really used, want it to keep as a var for valid simplification
[run_process_replay]
2024-09-24 06:16:34 -04:00
chenyu
9e51879019
fix idx setup in image_valid test_openpilot_conv3 ( #6710 )
...
* fix idx setup in image_valid test_openpilot_conv3
* corrected output and sad
2024-09-24 05:49:04 -04:00
chenyu
4bb1694f49
more tests about bounds of UOp divs ( #6700 )
2024-09-24 00:41:43 -04:00
chenyu
79aef64d70
update tests in test_image_valid ( #6698 )
2024-09-24 00:04:21 -04:00
chenyu
f55459c98e
failed validhack test for a 0.9.7 conv ( #6677 )
2024-09-23 04:43:47 -04:00
chenyu
0362dbbbe8
relax idx simplification given valid ( #6669 )
...
apply to kernels in op 0.9.7.
if a valid has a complicated expr, we cannot drop valid but it's possible to simplify idx given valid
2024-09-23 03:04:57 -04:00
chenyu
26ebb7cab4
don't use div_folding in lt_folding ( #6666 )
...
* don't use div_folding in lt_folding
valids 35 -> 13
* fails the same as before
2024-09-23 01:50:18 -04:00
chenyu
da5b741656
removed valid in openpilot conv ( #6619 )
...
35 valids left
2024-09-23 00:30:18 -04:00
George Hotz
52c2c4df9c
fix match of sz 0 + dedup kernel ast [run_process_replay] ( #6663 )
...
* fix match of sz 0 [run_process_replay]
* empty graph rewrite to dedup st
2024-09-23 11:56:53 +08:00
chenyu
1923932339
canonicalize simplex lt ( #6658 )
...
(X := a0*x0 + a1*x1 + ...) > 0 is equivalent to x0 + x1 + ... > 0 if xi >= 0 and ai > 0 for ints
2024-09-22 23:04:47 -04:00
chenyu
90c1ccc402
simpler drop valid check in simplify_valid_image_load ( #6653 )
...
* simpler drop valid check in simplify_valid_image_load
* update tests
2024-09-22 21:46:39 -04:00
qazal
982086f54c
UOps.VALID try 2 ( #6623 )
...
* make UOps.VALID compile
* fixable tests
* bufs dedup
* cleanup the CONST spec
* regenerate dataset with graph_rewrite
```py
def rewrite_const(const:UOp, st_src:UOp) -> UOp:
st: ShapeTracker = st_src.arg
return UOp(UOps.VALID, dtypes.bool, (st.to_uop(),)).where(UOp.const(const.dtype, const.arg), UOp.const(const.dtype, 0))
pm = PatternMatcher([(UPat(UOps.CONST, name="const", src=(UPat(UOps.SHAPETRACKER, name="st_src"),)), rewrite_const)])
```
* rm arg
* remove arg
* revert arg removal
This reverts commit 2c35c75c950075d38c9fb8572f14640fe8235f74.
* red test_pickle_define_var
2024-09-21 14:19:25 +08:00
qazal
d2351af019
fixup non-void SINKs in tests [run_process_replay] ( #6624 )
2024-09-21 13:29:18 +08:00
qazal
391d14438e
DEFINE_VAR prereqs for VALID [run_process_replay] ( #6637 )
2024-09-21 13:28:39 +08:00
nimlgen
053c4dee55
qcom test for image pitch ( #6621 )
...
* qcom test for image pitch
* comment
2024-09-20 18:13:48 +08:00
chenyu
5707503048
x//a<b -> x <a*b for positive a ( #6622 )
...
openpilot valids 47 -> 37
2024-09-20 04:38:47 -04:00
chenyu
b14c1bc417
UOps.RANGE is_increasing ( #6615 )
...
* UOps.RANGE is_increasing
283 -> 47 valids
* test
2024-09-20 03:14:52 -04:00
chenyu
036c2f5b26
validhack use the new style ge for upper bound valid ( #6612 )
...
also relaxed the bound check to check vmin/vmax instead just const.
valids 482 -> 283
2024-09-19 23:45:42 -04:00
chenyu
a37e92081a
fix unrolled arange folding ( #6606 )
...
* fix unrolled arange folding
also added flop test to test_arange to make sure it's 0 flop
* skip PTX
2024-09-19 09:03:01 -04:00
chenyu
d148a62f8d
more generic simplify_valid_image_load ( #6603 )
...
use graph_rewrite to simplify the expression with narrowed variables, and check boundry conditions on monotonically increasing function to drop valid.
2024-09-19 05:33:37 -04:00
chenyu
eeee032b14
tiny cleanup of test_image_valid ( #6597 )
...
* tiny cleanup of test_image_valid
Sepcial and Variable to setup UOp
* typo
2024-09-19 03:09:47 -04:00
George Hotz
012a2c449a
fix lt_folding VCONST issue [run_process_replay] ( #6424 )
...
* le and ge [run_process_replay]
* bugfix
* fix divides bug
* fix lt_folding issue
2024-09-19 14:59:20 +08:00
chenyu
496806ce75
another example of openpilot conv with valid ( #6595 )
2024-09-19 01:54:01 -04:00
chenyu
7f9fd556b0
_min_max for WHERE ( #6564 )
...
prereq to gated load simplification
just for int
2024-09-18 23:47:48 -04:00
chenyu
1b6eee02ad
failed test case for openpilot validhack conv ( #6590 )
...
* failed test case for openpilot validhack conv
can save 2ms once this is fixed
* fix order
2024-09-18 23:12:30 -04:00
chenyu
bd40a26b8b
image valid test case that current approach does not work ( #6584 )
2024-09-18 06:06:03 -04:00
chenyu
162ead02a9
remove LOAD where valid is an empty set ( #6579 )
...
356 -> 354 valids
2024-09-18 03:49:41 -04:00
chenyu
a72d51e277
brute force VALIDHACK matching ( #6575 )
...
* brute force VALIDHACK matching
* cleanup
* 9700
2024-09-18 01:59:50 -04:00
George Hotz
67a03e72bb
remove expr_idxs [run_process_replay] ( #6567 )
...
* remove expr_idxs [run_process_replay]
* goodbye that test
2024-09-17 18:34:51 +08:00