Is the Intel CPU - N3450 supported?

Hi

I have tried the docker image for concrete-python 2.6.2 on on a node with;
Ubuntu 24.04 LTS (GNU/Linux 6.8.0-31-generic x86_64)

It uses a Intel® Celeron® Processor N3450

Is this type of CPU supported or should I look for a different one as I get the error below?

Note - I gave up on trying to compile on the raspberry PI and this is an alternate board I had avaiable using x86_64.

pi@zima-node-01:~$ docker pull zamafhe/concrete-python:v2.6.2
v2.6.2: Pulling from zamafhe/concrete-python
Digest: sha256:5b533e8e0803d86f36a09139e67839df4b0596d171edab1b9d0cfad6609094b2
Status: Image is up to date for zamafhe/concrete-python:v2.6.2
docker.io/zamafhe/concrete-python:v2.6.2
pi@zima-node-01:~$ docker run --rm -it zamafhe/concrete-python:v2.6.2 /bin/bash
root@a5c5aad7291d:/# pyhton
bash: pyhton: command not found
root@a5c5aad7291d:/# python
Python 3.10.14 (main, May 14 2024, 08:46:25) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from concrete import fhe
>>> def add(x, y):
...     return x + y
... 
>>> compiler = fhe.Compiler(add, {"x": "encrypted", "y": "encrypted"})
>>> inputset = [(2, 3), (0, 0), (1, 6), (7, 7), (7, 1), (3, 2), (6, 1), (1, 7), (4, 5), (5, 4)]
>>> circuit = compiler.compile(inputset)
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  libLLVM-17git-43c618d6.so                     0x000070524ac1d01b llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 43
1  libLLVM-17git-43c618d6.so                     0x000070524ac1a9bb llvm::sys::RunSignalHandlers() + 43
2  libLLVM-17git-43c618d6.so                     0x000070524ac1aae5
3  libc.so.6                                     0x0000705255058050
4  _concretelang.cpython-310-x86_64-linux-gnu.so 0x0000705249d552f0
5  _concretelang.cpython-310-x86_64-linux-gnu.so 0x0000705249d4fad9
6  _concretelang.cpython-310-x86_64-linux-gnu.so 0x0000705249c70f6d
7  libConcretelangBindingsPythonCAPI.so          0x0000705250b98829 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) + 1321
8  libConcretelangBindingsPythonCAPI.so          0x0000705250b98d39 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) + 361
9  libConcretelangBindingsPythonCAPI.so          0x0000705250b9a025 mlir::detail::OpToOpPassAdaptor::runOnOperationImpl(bool) + 421
10 libConcretelangBindingsPythonCAPI.so          0x0000705250b9857f mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) + 639
11 libConcretelangBindingsPythonCAPI.so          0x0000705250b98d39 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) + 361
12 libConcretelangBindingsPythonCAPI.so          0x0000705250b99af9 mlir::PassManager::run(mlir::Operation*) + 2537
13 _concretelang.cpython-310-x86_64-linux-gnu.so 0x0000705249af7860
14 _concretelang.cpython-310-x86_64-linux-gnu.so 0x0000705249ad38bf
15 _concretelang.cpython-310-x86_64-linux-gnu.so 0x0000705249ad96ef
16 _concretelang.cpython-310-x86_64-linux-gnu.so 0x0000705249ada816
17 _concretelang.cpython-310-x86_64-linux-gnu.so 0x0000705249ade1a0
18 _concretelang.cpython-310-x86_64-linux-gnu.so 0x0000705249ade64f
19 _concretelang.cpython-310-x86_64-linux-gnu.so 0x00007052499c8d99
20 _concretelang.cpython-310-x86_64-linux-gnu.so 0x000070524999146a
21 _concretelang.cpython-310-x86_64-linux-gnu.so 0x000070524995faae
22 libpython3.10.so.1.0                          0x000070525537047d
23 libpython3.10.so.1.0                          0x000070525536d784 _PyObject_MakeTpCall + 116
24 libpython3.10.so.1.0                          0x0000705255376329
25 libpython3.10.so.1.0                          0x000070525536aaeb _PyEval_EvalFrameDefault + 13979
26 libpython3.10.so.1.0                          0x0000705255366b2a
27 libpython3.10.so.1.0                          0x0000705255367a87 _PyEval_EvalFrameDefault + 1591
28 libpython3.10.so.1.0                          0x0000705255366b2a
29 libpython3.10.so.1.0                          0x000070525536cb41
30 libpython3.10.so.1.0                          0x0000705255368c1a _PyEval_EvalFrameDefault + 6090
31 libpython3.10.so.1.0                          0x0000705255366b2a
32 libpython3.10.so.1.0                          0x0000705255367a87 _PyEval_EvalFrameDefault + 1591
33 libpython3.10.so.1.0                          0x0000705255366b2a
34 libpython3.10.so.1.0                          0x000070525536d1af _PyObject_FastCallDictTstate + 159
35 libpython3.10.so.1.0                          0x0000705255375340
36 libpython3.10.so.1.0                          0x000070525536d937
37 libpython3.10.so.1.0                          0x000070525536d784 _PyObject_MakeTpCall + 116
38 libpython3.10.so.1.0                          0x000070525536abfd _PyEval_EvalFrameDefault + 14253
39 libpython3.10.so.1.0                          0x0000705255366b2a
40 libpython3.10.so.1.0                          0x0000705255367a87 _PyEval_EvalFrameDefault + 1591
41 libpython3.10.so.1.0                          0x0000705255366b2a
42 libpython3.10.so.1.0                          0x00007052553bb100 PyEval_EvalCode + 144
43 libpython3.10.so.1.0                          0x00007052553dd443
44 libpython3.10.so.1.0                          0x00007052553dadea
45 libpython3.10.so.1.0                          0x000070525534ecb7
46 libpython3.10.so.1.0                          0x000070525534ee2c _PyRun_InteractiveLoopObject + 193
47 libpython3.10.so.1.0                          0x000070525529babc
48 libpython3.10.so.1.0                          0x00007052553d9acf PyRun_AnyFileExFlags + 63
49 libpython3.10.so.1.0                          0x00007052553d94d5 Py_RunMain + 901
50 libpython3.10.so.1.0                          0x00007052553b0327 Py_BytesMain + 55
51 libc.so.6                                     0x000070525504324a
52 libc.so.6                                     0x0000705255043305 __libc_start_main + 133
53 python                                        0x00006273a68bd071 _start + 33
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Illegal instruction (core dumped)

I will take the lack of response as a no. Will see if I can find an alternate machine to use.

Hello @DaveCT,
First sorry for the late answer, I guess the instruction set differs between the your host and the machines where the compiler releases are compiled. I don’t see which kind of instructions could be used here that is not supported on your target cpu.
To fix the problem on your side, you can try to build the compiler release directly on your target…

1 Like

Hello @DaveCT ,

Sorry if we haven’t answered previously.

From https://ark.intel.com/content/www/fr/fr/ark/products/95596/intel-celeron-processor-n3450-2m-cache-up-to-2-2-ghz.html it appears that AES instructions are supported so we don’t immediately know what the issue could be.

However: I’d like to advise you to take a CPU which is quite recent (this one is from 2016, if the data is correct) and quite powerful. FHE is really time consuming, even if a lot of progress are being done.

It will be better for you to have something fast.
Cheers

1 Like

Thanks, I will give it a go on a Core i5-1340P (Ithink that is from last year) which I can get up and runnning on Ubuntu.

Still waiting for a faster CPU to arrive but have successfully tested on a
Intel® Processor N100 6M Cache, up to 3.40 GHz.

Thanks