BallisticLA / RandBLAS

A header-only C++ library for sketching in randomized linear algebra

Home Page:https://randblas.readthedocs.io/en/latest/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Possible compiler flag requirement.

TeachRaccooon opened this issue · comments

After the update of RandLAPACK to the newest version of RandBLAS (172d096) and attempting to compile it on ISAAC using gcc version 8.5.0 20210514, I ran into the following compilation error:

In file included from /nfs/home/mmelnic1/randlibs/RandLAPACK_ICQRRP/RandBLAS/test/test_rng_speed.cc:4:
/nfs/home/mmelnic1/randlibs/RandLAPACK_ICQRRP/RandBLAS/RandBLAS/../RandBLAS/base.hh:81:1: error: ‘concept’ does not name a type
 concept SignedInteger = (std::numeric_limits<T>::is_signed && std::numeric_limits<T>::is_integer);
 ^~~~~~~
/nfs/home/mmelnic1/randlibs/RandLAPACK_ICQRRP/RandBLAS/RandBLAS/../RandBLAS/base.hh:81:1: note: ‘concept’ only available with -fconcepts
make[2]: *** [RandBLAS/test/CMakeFiles/test_rng_speed.dir/build.make:76: RandBLAS/test/CMakeFiles/test_rng_speed.dir/test_rng_speed.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:167: RandBLAS/test/CMakeFiles/test_rng_speed.dir/all] Error 2
make: *** [Makefile:146: all] Error 2

This issue did not occur when I ran the code locally on Elephant with gcc version 11.4.0.
This suggests that when working with some compilers, we are to add the '-fconcepts' flag into this file as:

# Add the -fconcepts flag
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fconcepts")

Adding the flag resolved the error, compilation succeeded.

I've updated our installation guide to reference this issue. I'll leave this open since there's a natural opportunity for us to detect the need for this ourselves with CMake-foo.