lemire / streamvbyte

Fast integer compression in C using the StreamVByte codec
Apache License 2.0
374 stars 37 forks source link

Illegal instruction (core dumped) #46

Closed victor1234 closed 1 year ago

victor1234 commented 1 year ago

OS: Ubuntu 20.04.5 LTS CPU: Intel Xeon X5660

Step to reproduce:

git clone git@github.com:lemire/streamvbyte.git
mkdir build && cd build
cmake ..
cmake --build .

Output cmake ..

-- The C compiler identification is GNU 9.4.0
-- The CXX compiler identification is GNU 9.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- No build type selected
-- Default to Release
-- CMAKE_SYSTEM_PROCESSOR: x86_64
-- CMAKE_BUILD_TYPE: Release
-- CMAKE_C_COMPILER: /usr/bin/cc
-- CMAKE_C_FLAGS: 
-- CMAKE_C_FLAGS_DEBUG: -g
-- CMAKE_C_FLAGS_RELEASE: -O3 -DNDEBUG
-- Configuring done
-- Generating done
-- Build files have been written to: /home/kataev/development/streamvbyte/build

Output ctest -V

UpdateCTestConfiguration  from :/home/kataev/development/streamvbyte/build/DartConfiguration.tcl
UpdateCTestConfiguration  from :/home/kataev/development/streamvbyte/build/DartConfiguration.tcl
Test project /home/kataev/development/streamvbyte/build
Constructing a list of tests
Done constructing a list of tests
Updating test list for fixtures
Added 0 tests to meet fixture requirements
Checking test dependency graph...
Checking test dependency graph end
test 1
    Start 1: unit

1: Test command: /home/kataev/development/streamvbyte/build/unit
1: Test timeout computed to be: 10000000
1/1 Test #1: unit .............................***Exception: Illegal  0.28 sec

0% tests passed, 1 tests failed out of 1

Total Test time (real) =   0.29 sec

The following tests FAILED:
      1 - unit (ILLEGAL)
Errors while running CTest

Output ./perf

Illegal instruction (core dumped)
lemire commented 1 year ago

Thanks for the report. Should be fixed, please check with our main branch again.

victor1234 commented 1 year ago

Thank you! Works for me.

I'm new in this area. Is there any start guide to how to choose suitable lib? I know my data and hardware but don't know compressed algo terms. I want to create tool for sparse matrix compression. Means list of uint32_t sorted/partially sorted indices and list of floats. x86 and arm64 CPUs, crossplatform. I checked not outdated libs from your list and found streamvbyte and FastPFor. Last one is not support arm64. So only streamvbyte, right? And I still searching for float lossy compression for floats. Could you advice?

lemire commented 1 year ago

The streamvbyte codec is a very good choice, I feel. If it does not meet your needs, we can chat further. But several systems had good luck with streamvbyte.

Closing this issue.