Giter Site home page Giter Site logo

Comments (10)

lemire avatar lemire commented on June 12, 2024

The classical Intel compiler ICC is deprecated by Intel. Please don't use it.

Building with the new Intel compiler (ICX) is doable, though it is not currently possible to compile Google Benchmarks by default and that's a problem because we rely on Google Benchmarks: I added a commit that removes Google Benchmarks as a dependency by default.

You can now build CRoaring with the (new) Intel compiler like so...

CC=putyourdir/intel/oneapi/compiler/2023.2.1/linux/bin/icx CXX=putyourdir/intel/oneapi/compiler/2023.2.1/linux/bin/icpx cmake -B buildintel && cmake --build buildintel -j

Given that ICX seems to choke on Google Benchmarks, I suspect that it has some problems.

Pull requests are invited if you want to investigate the issue and help us support Intel compilers.

from croaring.

lemire avatar lemire commented on June 12, 2024

Note:

Intel® C++ Compiler Classic (icc) is deprecated and will be removed in a oneAPI release in the second half of 2023. Intel recommends that customers transition now to using the LLVM-based Intel® oneAPI DPC++/C++ Compiler (icx) for continued Windows* and Linux* support, new language support, new language features, and optimizations.

https://community.intel.com/t5/Intel-oneAPI-IoT-Toolkit/DEPRECATION-NOTICE-Intel-C-Compiler-Classic/m-p/1412267#M66

from croaring.

lemire avatar lemire commented on June 12, 2024

Maybe Intel folks could help: @huihan365 @linlifan @geofflangdale

What is the story with the Intel compilers at this time and what should our expectations be?

I have not investigated deeply.

Note: We definitively would want to support the Intel compiler if possible.

from croaring.

vesslanjin avatar vesslanjin commented on June 12, 2024

Maybe Intel folks could help: @huihan365 @linlifan @geofflangdale

What is the story with the Intel compilers at this time and what should our expectations be?

I have not investigated deeply.

Note: We definitively would want to support the Intel compiler if possible.

have submited a ticket to compiler team. pls stay tune.

from croaring.

rohanaggarwal7997 avatar rohanaggarwal7997 commented on June 12, 2024

@lemire I did the following

mkdir -p build
cd build
/scratch/rohaagga/cmake_install/bin/cmake -DCMAKE_C_COMPILER=/usr/local/packages/icc_remote/v2021.9/compiler/2023.1.0/linux/bin/intel64/icc -DCMAKE_CXX_COMPILER=/usr/local/packages/icc_remote/v2021.9/compiler/2023.1.0/linux/bin/intel64/icpc ..
/scratch/rohaagga/cmake_install/bin/cmake --build .

And then ran
/scratch/rohaagga/cmake_install/bin/ctest

[root@phoenix95642 build]# /scratch/rohaagga/cmake_install/bin/ctest
Test project /scratch/rohaagga/CRoaring/build
Start 1: cpp_unit
1/18 Test #1: cpp_unit ......................... Passed 32.62 sec
Start 2: cpp_random_unit
2/18 Test #2: cpp_random_unit .................. Passed 0.69 sec
Start 3: cpp_example1
3/18 Test #3: cpp_example1 ..................... Passed 0.00 sec
Start 4: cpp_example2
4/18 Test #4: cpp_example2 ..................... Passed 0.00 sec
Start 5: c_example1
5/18 Test #5: c_example1 ....................... Passed 0.00 sec
Start 6: cbitset_unit
6/18 Test #6: cbitset_unit ..................... Passed 0.03 sec
Start 7: array_container_unit
7/18 Test #7: array_container_unit ............. Passed 5.53 sec
Start 8: bitset_container_unit
8/18 Test #8: bitset_container_unit ............ Passed 0.01 sec
Start 9: mixed_container_unit
9/18 Test #9: mixed_container_unit ............. Passed 115.78 sec
Start 10: run_container_unit
10/18 Test #10: run_container_unit ............... Passed 0.15 sec
Start 11: toplevel_unit
11/18 Test #11: toplevel_unit .................... Passed 15.14 sec
Start 12: util_unit
12/18 Test #12: util_unit ........................ Passed 0.16 sec
Start 13: format_portability_unit
13/18 Test #13: format_portability_unit .......... Passed 0.00 sec
Start 14: robust_deserialization_unit
14/18 Test #14: robust_deserialization_unit ...... Passed 0.00 sec
Start 15: container_comparison_unit
15/18 Test #15: container_comparison_unit ........ Passed 0.02 sec
Start 16: add_offset
16/18 Test #16: add_offset ....................... Passed 0.03 sec
Start 17: threads_unit
17/18 Test #17: threads_unit ..................... Passed 0.00 sec
Start 18: realdata_unit
18/18 Test #18: realdata_unit .................... Passed 13.44 sec

100% tests passed, 0 tests failed out of 18

from croaring.

lemire avatar lemire commented on June 12, 2024

@rohanaggarwal7997 I am glad it works for you.

We are not going to support ICC since Intel is dropping support for it. Please update to ICX if you want support.

We will try our best to support the current Intel compiler (ICX).

from croaring.

rohanaggarwal7997 avatar rohanaggarwal7997 commented on June 12, 2024

@lemire I have removed the targets by doing the following

#if defined(__ICC)

#undef ALLOW_UNALIGNED
#define ALLOW_UNALIGNED

#undef CROARING_TARGET_AVX2
#define CROARING_TARGET_AVX2
#undef CROARING_UNTARGET_AVX2
#define CROARING_UNTARGET_AVX2
#undef CROARING_TARGET_AVX512
#define CROARING_TARGET_AVX512
#undef CROARING_UNTARGET_AVX512
#define CROARING_UNTARGET_AVX512

#endif

I get
image001
AVX instructions dispatch because ICC compiles them regardless. I wanted to ask will this affect lzcnt,blsr and popcnt ?
I do not see usages of lzcnt and blsr in the code.

from croaring.

lemire avatar lemire commented on June 12, 2024

@rohanaggarwal7997 Please do not use ICC. We will not support ICC as it is deprecated. Upgrade to ICX.

Please follows Intel's advice:

Intel® C++ Compiler Classic (icc) is deprecated and will be removed in a oneAPI release in the second half of 2023. Intel recommends that customers transition now to using the LLVM-based Intel® oneAPI DPC++/C++ Compiler (icx) for continued Windows* and Linux* support, new language support, new language features, and optimizations.

I am committed to supporting ICX from now on. I will not provide any support for ICC from now on.

This issue is closed.

from croaring.

rohanaggarwal7997 avatar rohanaggarwal7997 commented on June 12, 2024

We cannot till next year. We have to use ICC till next year.

from croaring.

lemire avatar lemire commented on June 12, 2024

The library is open source and you are free to use it as you see fit. We will be happy to receive pull requests.

We will not work to provide ICC support. If you need ICC support, you need to take the full cost of the support.

This means that we do not provide any guarantees regarding efficiency.

from croaring.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.