<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>57854</bug_id>
          
          <creation_ts>2026-02-13 12:28:19 +0300</creation_ts>
          <short_desc>numpy перестал работать на виртуальных машинах из-за включения оптимизации</short_desc>
          <delta_ts>2026-08-06 17:20:50 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>python3-module-numpy</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Makeenkov">amakeenk</reporter>
          <assigned_to name="Aleksandr Voyt">sobue</assigned_to>
          <cc>antohami</cc>
    
    <cc>glebfm</cc>
    
    <cc>grenka</cc>
    
    <cc>kotopesutility</cc>
    
    <cc>majioa</cc>
    
    <cc>root</cc>
    
    <cc>toni</cc>
    
    <cc>vojtaa</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>281951</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Makeenkov">amakeenk</who>
    <bug_when>2026-02-13 12:28:19 +0300</bug_when>
    <thetext>Версия: 1:2.4.2-alt1

Шаги воспроизведения:
# apt-get install python3-module-numpy
$ python3 -c &quot;import numpy&quot;

Получаемый результат:
Traceback (most recent call last):
  File &quot;&lt;string&gt;&quot;, line 1, in &lt;module&gt;
    import numpy
  File &quot;/usr/lib64/python3/site-packages/numpy/__init__.py&quot;, line 118, in &lt;module&gt;
    from numpy.__config__ import show_config
  File &quot;/usr/lib64/python3/site-packages/numpy/__config__.py&quot;, line 4, in &lt;module&gt;
    from numpy._core._multiarray_umath import (
    ...&lt;3 lines&gt;...
    )
  File &quot;/usr/lib64/python3/site-packages/numpy/_core/__init__.py&quot;, line 24, in &lt;module&gt;
    from . import multiarray
  File &quot;/usr/lib64/python3/site-packages/numpy/_core/multiarray.py&quot;, line 11, in &lt;module&gt;
    from . import _multiarray_umath, overrides
RuntimeError: NumPy was built with baseline optimizations:
(X86_V2) but your machine doesn&apos;t support:
(X86_V2).

Стенд:
1. Виртуальная машина на Proxmox VE с типом процессора kvm64
2. Виртуальная машина на Qemu + libvirt с типом процессора qemu64

Ошибки нет, если использовать тип процессора host.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281990</commentid>
    <comment_count>1</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2026-02-14 21:24:35 +0300</bug_when>
    <thetext>@shaba - а не пора ли добавить нужные оптимизации по умолчанию в машины kvm64 и qemu64 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282098</commentid>
    <comment_count>2</comment_count>
    <who name="Aleksandr Voyt">vojtaa</who>
    <bug_when>2026-02-17 15:22:12 +0300</bug_when>
    <thetext>Добавил в спек %pre-скрипт - проверку наличия инструкций SSE4.2 при установке или обновлении пакета на архитектуре x86_64.

Если система (физический процессор или модель CPU в виртуалке) не поддерживает уровень x86-64-v2, пользователь увидит подробное предупреждение о возможных ошибках в рантайме и рекомендации по настройке эмуляции.

https://git.altlinux.org/tasks/archive/done/_398/408126/gears/200/git?p=git;a=blobdiff;f=.gear/python3-module-numpy.spec;h=e111893f7fa4ce202b44a8df83e0aecc57b37aaf;hp=a79e86e04493da9ca05d3bd9c0d3a1e0bc0cafd0;hb=682eb397fdab0c58d24eb9147180c60e5ef80780;hpb=ae72e709211732795c766bdad8eb815332e2740d</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292058</commentid>
    <comment_count>3</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2026-07-31 08:57:05 +0300</bug_when>
    <thetext>Считаю, что нужно собрать без оптимизаций. У нас репозиторий x86_64, а не x86-64-v2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292070</commentid>
    <comment_count>4</comment_count>
    <who name="Aleksandr Voyt">sobue</who>
    <bug_when>2026-07-31 12:24:04 +0300</bug_when>
    <thetext>(Ответ для Антон Мидюков на комментарий #3)
&gt; Считаю, что нужно собрать без оптимизаций. У нас репозиторий x86_64, а не
&gt; x86-64-v2.

Разобрался подробнее, оптимизации действительно стоит отключить, и на скорости
это почти не скажется.

https://packages.altlinux.org/tasks/427628/

В NumPy два независимых механизма. baseline — обязательный для запуска набор
инструкций, с версии 2.4 поднят до x86-64-v2, из-за него и RuntimeError:
https://github.com/numpy/numpy/blob/v2.4.2/meson_cpu/meson.build#L98-L101
dispatch — ускоренные варианты вычислительных ядер, которые выбираются уже в
момент запуска, по факту наличия инструкций у процессора:
https://github.com/numpy/numpy/blob/v2.4.2/meson.options#L33
https://github.com/numpy/numpy/blob/v2.4.2/meson_cpu/main_config.h.in#L261-L268

Друг от друга они не зависят, поэтому cpu-baseline=none снимает требование к
процессору, а ускорение остаётся. Этот вариант описан в документации NumPy:
https://github.com/numpy/numpy/blob/v2.4.2/doc/source/reference/simd/build-options.rst#L78-L89:~:text=Targeting%20Older%20CPUs,paths%20for%20optimization
Промежуточные значения (sse2, sse3) не подходят — перенаправляются обратно в
X86_V2: https://github.com/numpy/numpy/blob/v2.4.2/meson_cpu/x86/meson.build#L97-L99

Собрал 1:2.4.2-alt3 с cpu-baseline=none, dispatch=max.

Проверено:
CPU             | Intel(R) Xeon(R) 6747P                     | QEMU Virtual CPU version 2.5+ | QEMU Virtual CPU version 2.5+
level           | x86-64-v4                                  | x86-64-v2                     | x86-64-v1
kind            | vm                                         | vm                            | vm
python          | 3.14.6                                     | 3.14.6                        | 3.14.6
numpy           | 2.4.2                                      | 2.4.2                         | 2.4.2
baseline        | (empty)                                    | (empty)                       | (empty)
dispatch usable | X86_V2,X86_V3,X86_V4,AVX512_ICL,AVX512_SPR | X86_V2                        | (none)
smoke test      | ok                                         | ok                            | ok
add, ms         | 1.30                                       | 1.12                          | 1.08
sqrt, ms        | 0.67                                       | 0.64                          | 1.66
sum, ms         | 0.36                                       | 0.35                          | 0.41
sort, ms        | 6.84                                       | 143.64                        | 148.41
add speedup     | 0.95                                       | 0.87                          | -
sqrt speedup    | 2.44                                       | 2.57                          | -
sum speedup     | 1.24                                       | 1.11                          | -
sort speedup    | 21.16                                      | 1.00                          | -

Предупреждение при установке, добавленное в alt2, удалено.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292375</commentid>
    <comment_count>5</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2026-08-06 17:20:50 +0300</bug_when>
    <thetext>python3-module-numpy-1:2.4.2-alt3 -&gt; sisyphus:

Fri Jul 31 2026 Aleksandr A. Voyt &lt;sobue@altlinux&gt; 1:2.4.2-alt3
- Built with cpu-baseline=none to keep working on CPUs and VMs without
  SSE4.2, runtime dispatch is unchanged (closes: #57854)
- Dropped the pre-install SSE4.2 warning</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>