icl-utk-edu / slate

SLATE is a distributed, GPU-accelerated, dense linear algebra library targetting current and upcoming high-performance computing (HPC) systems. It is developed as part of the U.S. Department of Energy Exascale Computing Project (ECP).
https://icl.utk.edu/slate/
BSD 3-Clause "New" or "Revised" License
91 stars 21 forks source link

Add nonuniform tile sizes, device distributions, and grid orders to even more testers (depends on #143) #157

Closed neil-lindquist closed 9 months ago

neil-lindquist commented 10 months ago

This PR continues the work of #143 to add support for nonuniform tile sizes, device distributions, and grid orders to more testers. I also made a couple of related warning messages more consistent. However, I didn't change the defaults of run-tests.py to test the added configurations.

The change is largely realized by refactoring the matrix creation logic into a helper function. This helps reduce the amount of duplicate code, which actually reduces the line count and the executable size a little bit.

Other improvements

This PR ended up longer than intended. I'd probably suggest starting with test/test_util.hh, test/matrix_util.hh, and test/matrix_util.cc. Also, the norm testers have some big indent changes, so I'd suggest reviewing that diff with "ignore whitespace" enabled.

Diff w/ #143

mgates3 commented 9 months ago

Since #143 is merged, can I drop the Draft label? Locally I rebased this to include the changes that I added to #143. I need to double-check that code before I push it.

neil-lindquist commented 9 months ago

Yes, the draft status was just waiting for #143.

mgates3 commented 9 months ago

I rebased this on top of the current master with the merged-in #143. There were some merge conflicts, which hopefully I managed correctly. (I did them twice and compared to make sure.)