Adding basic support of benchmarks into CMake#4501
Adding basic support of benchmarks into CMake#4501martin-frbg merged 1 commit intoOpenMathLib:developfrom
Conversation
…gle complex and double complex cases. Each benchmarking target has a suffix to identify the data type, for example ./benchmark_gemm3m_COMPLEX_DOUBLE is a gemm3m.c source compiled with COMPLEX and DOUBLE macros defined
|
right, the benchmarks are currently not available in the cmake build, but the benchmark suite (which mostly dates back to GotoBLAS) is due for an overhaul anyway. |
|
We may still wish to enable it in its current state to provide a lot more code coverage. Otherwise, many functions are not tested at all. For example, cgemm3m/zgemm3m are completely untested, unless we accept these tests for now as a compromise. Of course, someone may work on bringing them to a much better state later. I'm also using this PR to demonstrate the defect in #4500 |
|
The benchmarks make no claim to test for accuracy. The GEMM3M functions are supported on a handful of architectures only, and tests for them are included in test/ctest, though it turns out they are not getting built by default currently. |
|
I understand, still having more coverage is better than nothing. I mean, "Perfect is the enemy of good." (c) Voltaire |
|
will follow this with a PR to make OpenMP optional (only required in the smallscaling benchmark) and probably make building the benchmarks optional as a whole (the gmake build does not include them by default either) |
Adding basic support of benchmarks into CMake for single, double, single complex and double complex cases. Each benchmarking target has a suffix to identify the data type, for example
./benchmark_gemm3m_COMPLEX_DOUBLEis agemm3m.csource compiled withCOMPLEXandDOUBLEmacros defined.This PR is done under assumption that the
benchmarksfolder is not yet wired into CMake compilation.This PR is not trying to re-create the
benchmarks/Makefilebehavior. Instead, the purpose of this PR is to compile as many tests as possible from the existing material.