kokkos / kokkos-kernels

Kokkos C++ Performance Portability Programming Ecosystem: Math Kernels - Provides BLAS, Sparse BLAS and Graph Kernels
Other
303 stars 96 forks source link

UnitTest Compile and Runtime #45

Closed crtrott closed 7 years ago

crtrott commented 7 years ago

Are the long compile and runtime for SPGEMM and GaussSeidel really necessary?

For OpenMP on my workstation SPGEMM takes 200s test time out of 340s for the whole library. If I add Gaussseidel in it is 296s out of 340s. Do we really need that for correctness checking?

Furthermore the compile times are also pretty high SPGEMM takes in a non-parallel build (i.e. -j 1) 78s and gaussseidel 54s out of a total of 296s for the all unit tests together.

mndevec commented 7 years ago

We can remove some of the tests for runtime.

I am not sure about the compile time. How many different types are you enabling?

crtrott commented 7 years ago

This was the default setting (so double and complex and then the int types for offset and ordinal). I need to do some test to see what is actually taking the time. Might be that its not the kernels, but IO etc. for the test runtime.

mndevec commented 7 years ago

I cut some of the IO time, and reduce the number of test for spgemm. It is now taking quarter of the time it was taking before. It is not the kernel time that takes long time. It is the output correctness checking, which basically checks if two crsmatrices are identical. For this one it uses a sequential sort, about which I was not worried before as this was only used in unit tests.