Skip to content

Reduced indvar sizes - #1017

Draft
ramonwirsch wants to merge 4 commits into
mainfrom
reduced-indvar-sizes
Draft

Reduced indvar sizes#1017
ramonwirsch wants to merge 4 commits into
mainfrom
reduced-indvar-sizes

Conversation

@ramonwirsch

Copy link
Copy Markdown
Member

More broadly replace hardcoded Int64 and UInt64 indvars with a function inferring the type from the expression (although for now, it only uses Int32 if it can prove that the immediate result fits into it, otherwise Int64).

Noticed that many places use UInt64, which is not technically valid and potentially problematic. Now enforcing no unsigned indvars on StructuredLoop validator and fixing test cases

 + StructuredLoop now validates that its indvar container exists and is not unsigned, because our symbolic expressions do not handle unsigned entirely correct
 * fixed a lot of sdfg tests to not violate new constraint
 ! lots of opt tests still failing
@daisytuner

daisytuner Bot commented Sep 1, 2026

Copy link
Copy Markdown

Daisytuner Report - python_npbench (zinnia)

@@                              Benchmarks                              @@
===========================================================================
  Benchmark              Speedup (Time) ±%           Energy      Regions   
===========================================================================
# adi                    
#   numpy                116.40 ms -2.5%             11.21 J     —         
#   docc-sequential      2.37x (49.16 ms) +4.7%      8.39 J      2         
#   docc-omp             2.06x (56.37 ms) -1.0%      9.12 J      2         
#   docc-cuda            2.40x (48.43 ms) -0.2%      4.62 J      6         
# atax                   
+   numpy                53.21 ms -14.4%             9.38 J      —         
#   docc-sequential      3.06x (17.37 ms) +0.4%      3.59 J      3         
#   docc-omp             2.43x (21.88 ms) +1.1%      4.71 J      3         
#   docc-cuda            2.87x (18.54 ms) -0.0%      1.84 J      7         
# gemm                   
+   numpy                86.98 ms -15.9%             18.12 J     —         
#   docc-sequential      3.47x (25.09 ms) +0.1%      7.19 J      1         
#   docc-omp             3.45x (25.21 ms) +0.5%      7.27 J      1         
#   docc-cuda            0.12x (751.91 ms) -0.0%     72.02 J     1         
# gesummv                
#   numpy                128.51 ms -8.2%             22.04 J     —         
#   docc-sequential      0.73x (176.61 ms) +0.5%     33.02 J     5         
#   docc-omp             1.76x (73.11 ms) +3.1%      15.43 J     5         
#   docc-cuda            10.52x (12.22 ms) -0.1%     1.26 J      11        
# gemver                 
+   numpy                91.01 ms -12.1%             15.89 J     —         
#   docc-sequential      11.26x (8.08 ms) -4.6%      1.71 J      7         
#   docc-omp             6.91x (13.18 ms) +2.0%      2.80 J      7         
#   docc-cuda            7.19x (12.65 ms) -0.0%      1.26 J      11        
# k2mm                   
+   numpy                89.29 ms -13.0%             18.55 J     —         
#   docc-sequential      0.66x (135.39 ms) +0.6%     24.36 J     3         
#   docc-omp             0.66x (135.95 ms) +0.1%     27.30 J     3         
#   docc-cuda            0.09x (940.75 ms) -0.0%     90.14 J     7         
# k3mm                   
#   numpy                76.32 ms -5.4%              19.06 J     —         
#   docc-sequential      0.25x (309.73 ms) -0.1%     50.23 J     4         
#   docc-omp             0.23x (332.13 ms) -0.1%     56.93 J     4         
#   docc-cuda            0.05x (1.54 s) +0.1%        147.01 J    8         
# mvt                    
+   numpy                45.68 ms -26.5%             8.41 J      —         
#   docc-sequential      2.52x (18.11 ms) -0.2%      3.81 J      2         
#   docc-omp             2.53x (18.04 ms) +0.0%      3.71 J      2         
#   docc-cuda            0.13x (361.30 ms) +0.0%     35.45 J     2         
# symm                   
#   numpy                63.97 ms -0.1%              6.16 J      —         
#   docc-sequential      4.34x (14.72 ms) +0.1%      2.92 J      3         
#   docc-omp             3.61x (17.70 ms) -4.3%      3.84 J      3         
# syr2k                  
#   numpy                75.25 ms +0.6%              7.30 J      —         
#   docc-sequential      2.07x (36.37 ms) +2.5%      7.14 J      1         
#   docc-omp             2.11x (35.58 ms) -1.9%      7.04 J      1         
#   docc-cuda            2.54x (29.62 ms) -3.6%      2.88 J      1         
# syrk                   
#   numpy                63.21 ms +0.8%              6.07 J      —         
#   docc-sequential      2.46x (25.71 ms) -0.4%      5.18 J      1         
#   docc-omp             2.38x (26.54 ms) +2.1%      5.26 J      1         
#   docc-cuda            2.78x (22.78 ms) +1.8%      2.26 J      1         
# trmm                   
#   numpy                69.78 ms +0.1%              6.75 J      —         
#   docc-sequential      4.93x (14.14 ms) -0.3%      2.94 J      3         
#   docc-omp             4.27x (16.35 ms) -4.1%      3.42 J      3         

@daisytuner

daisytuner Bot commented Sep 1, 2026

Copy link
Copy Markdown

Daisytuner Report - pytorch_models (chamomile)

@@                              Benchmarks                              @@
===========================================================================
  Benchmark              Speedup (Time) ±%           Energy      Regions   
===========================================================================
# resnet18               
#   torch                74.98 ms -5.3%              19.80 J     —         
#   torch-cuda           19.41 ms +4.7%              3.91 J      —         
#   docc-omp             0.07x (1.08 s) -0.8%        331.94 J    45        
#   docc-cuda            0.13x (154.63 ms) +0.5%     22.34 J     93        
# segformer              
#   torch-cuda           36.72 ms -1.5%              7.21 J      —         
#   docc-cuda            0.30x (124.16 ms) -2.0%     17.67 J     266       

…ructuredLoops

 ~ updated concat_expander, in_local_storage, out_local_storage to also use dynamic indvar types
@daisytuner

daisytuner Bot commented Sep 2, 2026

Copy link
Copy Markdown

Daisytuner Report - mlir_torch_models (chamomile)

@@                              Benchmarks                              @@
===========================================================================
  Benchmark              Speedup (Time) ±%           Energy      Regions   
===========================================================================
# resnet18               
#   torch                78.50 ms +0.8%              20.63 J     —         
#   torch-cuda           19.19 ms +6.0%              3.87 J      —         
#   docc-omp             0.08x (999.06 ms) -1.1%     311.49 J    53        
#   docc-cuda            0.12x (158.58 ms) +2.3%     31.14 J     101       
# segformer              
#   torch-cuda           36.65 ms -4.0%              7.42 J      —         
#   docc-cuda            0.21x (175.16 ms) -0.6%     34.25 J     402       

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