Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Specifying _x86_64-microarch-level=something doesn't solve properly #3698

Closed
3 tasks done
ikrommyd opened this issue Dec 18, 2024 · 6 comments
Closed
3 tasks done

Specifying _x86_64-microarch-level=something doesn't solve properly #3698

ikrommyd opened this issue Dec 18, 2024 · 6 comments
Assignees

Comments

@ikrommyd
Copy link

ikrommyd commented Dec 18, 2024

Troubleshooting docs

  • My problem is not solved in the Troubleshooting docs

Anaconda default channels

  • I do NOT use the Anaconda default channels (pkgs/* etc.)

How did you install Mamba?

Mambaforge or latest Miniforge

Search tried in issue tracker

Yes and found #3222 which is somewhat similar but not exactly the same. The reproducer of that issue works fine for me.

Latest version of Mamba

  • My problem is not solved with the latest version

Tried in Conda?

I have this problem with Conda as well, without using Mamba

Describe your issue

Specifying _x86_64-microarch-level=something where something is less than the max of what your system supports doesn't solve properly
Example: conda create -n bug awkward=2.7.2 python=3.11 _x86_64-microarch-level=1 is giving

Channels:
 - conda-forge
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: failed

LibMambaUnsatisfiableError: Encountered problems while solving:
  - nothing provides __archspec 1 core2 needed by _x86_64-microarch-level-1-0_core2

Could not solve for environment specs
The following packages are incompatible
└─ _x86_64-microarch-level =1 * is not installable because there are no viable options
   ├─ _x86_64-microarch-level 1 would require
   │  └─ __archspec ==1 core2, which is missing on the system;
   ├─ _x86_64-microarch-level 1 would require
   │  └─ __archspec ==1 k10, which is missing on the system;
   ├─ _x86_64-microarch-level 1 would require
   │  └─ __archspec ==1 nocona, which is missing on the system;
   └─ _x86_64-microarch-level 1 would require
      └─ __archspec ==1 x86_64, which is missing on the system.

The way I read it, this is a problem with __archspec=1=broadwell which you can see in the conda info because broadwell is not a viable microarch 1/2 version. However the newer ones are extensions, so older instructions are supported by newer cpus so it shouldn't care right?

conda create -n bug awkward=2.7.2 python=3.11 _x86_64-microarch-level=3 works fine on this system.

On the other hand, pixi is able to do this fine

$ pixi add 'awkward 2.7.2' 'python 3.11' '_x86_64-microarch-level 1'
✔ Added awkward 2.7.2
✔ Added python 3.11
✔ Added _x86_64-microarch-level 1

cc @matthewfeickert

Packages in base are

iason@lima-x86-ubuntu:/Users/iason$ conda list
# packages in environment at /home/iason.linux/miniforge3:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       2_gnu    conda-forge
archspec                  0.2.3              pyhd8ed1ab_0    conda-forge
boltons                   24.0.0             pyhd8ed1ab_1    conda-forge
brotli-python             1.1.0           py312h2ec8cdc_2    conda-forge
bzip2                     1.0.8                h4bc722e_7    conda-forge
c-ares                    1.34.3               hb9d3cd8_1    conda-forge
ca-certificates           2024.8.30            hbcca054_0    conda-forge
certifi                   2024.8.30          pyhd8ed1ab_0    conda-forge
cffi                      1.17.1          py312h06ac9bb_0    conda-forge
charset-normalizer        3.4.0              pyhd8ed1ab_1    conda-forge
colorama                  0.4.6              pyhd8ed1ab_1    conda-forge
conda                     24.11.0         py312h7900ff3_0    conda-forge
conda-libmamba-solver     24.11.1            pyhd8ed1ab_0    conda-forge
conda-package-handling    2.4.0              pyha770c72_1    conda-forge
conda-package-streaming   0.11.0             pyhd8ed1ab_0    conda-forge
cpp-expected              1.1.0                hf52228f_0    conda-forge
distro                    1.9.0              pyhd8ed1ab_0    conda-forge
fmt                       11.0.2               h434a139_0    conda-forge
frozendict                2.4.6           py312h66e93f0_0    conda-forge
h2                        4.1.0              pyhd8ed1ab_1    conda-forge
hpack                     4.0.0              pyhd8ed1ab_1    conda-forge
hyperframe                6.0.1              pyhd8ed1ab_1    conda-forge
idna                      3.10               pyhd8ed1ab_1    conda-forge
jsonpatch                 1.33               pyhd8ed1ab_1    conda-forge
jsonpointer               3.0.0           py312h7900ff3_1    conda-forge
keyutils                  1.6.1                h166bdaf_0    conda-forge
krb5                      1.21.3               h659f571_0    conda-forge
ld_impl_linux-64          2.43                 h712a8e2_2    conda-forge
libarchive                3.7.7                h4585015_3    conda-forge
libcurl                   8.11.1               h332b0f4_0    conda-forge
libedit                   3.1.20191231         he28a2e2_2    conda-forge
libev                     4.33                 hd590300_2    conda-forge
libexpat                  2.6.4                h5888daf_0    conda-forge
libffi                    3.4.2                h7f98852_5    conda-forge
libgcc                    14.2.0               h77fa898_1    conda-forge
libgcc-ng                 14.2.0               h69a702a_1    conda-forge
libgomp                   14.2.0               h77fa898_1    conda-forge
libiconv                  1.17                 hd590300_2    conda-forge
liblzma                   5.6.3                hb9d3cd8_1    conda-forge
libmamba                  2.0.5                hf72d635_0    conda-forge
libmambapy                2.0.5           py312hf3f0a4e_0    conda-forge
libnghttp2                1.64.0               h161d5f1_0    conda-forge
libnsl                    2.0.1                hd590300_0    conda-forge
libsolv                   0.7.30               h3509ff9_0    conda-forge
libsqlite                 3.47.2               hee588c1_0    conda-forge
libssh2                   1.11.1               hf672d98_0    conda-forge
libstdcxx                 14.2.0               hc0a3c3a_1    conda-forge
libstdcxx-ng              14.2.0               h4852527_1    conda-forge
libuuid                   2.38.1               h0b41bf4_0    conda-forge
libxcrypt                 4.4.36               hd590300_1    conda-forge
libxml2                   2.13.5               h0d44e9d_1    conda-forge
libzlib                   1.3.1                hb9d3cd8_2    conda-forge
lz4-c                     1.10.0               h5888daf_1    conda-forge
lzo                       2.10              hd590300_1001    conda-forge
mamba                     2.0.5                hfdd0a45_0    conda-forge
menuinst                  2.2.0           py312h7900ff3_0    conda-forge
ncurses                   6.5                  he02047a_1    conda-forge
nlohmann_json             3.11.3               he02047a_1    conda-forge
openssl                   3.4.0                hb9d3cd8_0    conda-forge
packaging                 24.2               pyhd8ed1ab_2    conda-forge
pip                       24.3.1             pyh8b19718_0    conda-forge
platformdirs              4.3.6              pyhd8ed1ab_1    conda-forge
pluggy                    1.5.0              pyhd8ed1ab_1    conda-forge
pybind11-abi              4                    hd8ed1ab_3    conda-forge
pycosat                   0.6.6           py312h66e93f0_2    conda-forge
pycparser                 2.22               pyh29332c3_1    conda-forge
pysocks                   1.7.1              pyha55dd90_7    conda-forge
python                    3.12.8          h9e4cc4f_1_cpython    conda-forge
python_abi                3.12                    5_cp312    conda-forge
readline                  8.2                  h8228510_1    conda-forge
reproc                    14.2.5.post0         hb9d3cd8_0    conda-forge
reproc-cpp                14.2.5.post0         h5888daf_0    conda-forge
requests                  2.32.3             pyhd8ed1ab_1    conda-forge
ruamel.yaml               0.18.6          py312h66e93f0_1    conda-forge
ruamel.yaml.clib          0.2.8           py312h66e93f0_1    conda-forge
setuptools                75.6.0             pyhff2d567_1    conda-forge
simdjson                  3.11.3               h84d6215_0    conda-forge
spdlog                    1.14.1               hed91bc2_1    conda-forge
tk                        8.6.13          noxft_h4845f30_101    conda-forge
tqdm                      4.67.1             pyhd8ed1ab_0    conda-forge
truststore                0.10.0             pyhd8ed1ab_0    conda-forge
tzdata                    2024b                hc8b5060_0    conda-forge
urllib3                   2.2.3              pyhd8ed1ab_1    conda-forge
wheel                     0.45.1             pyhd8ed1ab_1    conda-forge
yaml-cpp                  0.8.0                h59595ed_0    conda-forge
zstandard                 0.23.0          py312hef9b889_1    conda-forge
zstd                      1.5.6                ha6fb4c9_0    conda-forge

mamba info / micromamba info

iason@lima-x86-ubuntu:/Users/iason/work/coffea_dev$ conda info

     active environment : None
            shell level : 0
       user config file : /home/iason.linux/.condarc
 populated config files : /home/iason.linux/miniforge3/.condarc
                          /home/iason.linux/.condarc
          conda version : 24.11.0
    conda-build version : not installed
         python version : 3.12.8.final.0
                 solver : libmamba (default)
       virtual packages : __archspec=1=broadwell
                          __conda=24.11.0=0
                          __glibc=2.35=0
                          __linux=5.15.0=0
                          __unix=0=0
       base environment : /home/iason.linux/miniforge3  (writable)
      conda av data dir : /home/iason.linux/miniforge3/etc/conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
          package cache : /home/iason.linux/miniforge3/pkgs
                          /home/iason.linux/.conda/pkgs
       envs directories : /home/iason.linux/miniforge3/envs
                          /home/iason.linux/.conda/envs
               platform : linux-64
             user-agent : conda/24.11.0 requests/2.32.3 CPython/3.12.8 Linux/5.15.0-100-generic ubuntu/22.04.4 glibc/2.35 solver/libmamba conda-libmamba-solver/24.11.1 libmambapy/2.0.5
                UID:GID : 501:1000
             netrc file : None
           offline mode : False

Logs

No response

environment.yml

No response

~/.condarc

No response

@ikrommyd
Copy link
Author

Also I would like to comment that you can get the microarch 1 build of awkward if you know how it's named: mamba create -n bug awkward=2.7.2 python=3.11 awkward-cpp=*=*_10* works fine and will give you

  Package                       Version  Build                Channel           Size
──────────────────────────────────────────────────────────────────────────────────────
  Install:
──────────────────────────────────────────────────────────────────────────────────────

  + _libgcc_mutex                   0.1  conda_forge          conda-forge     Cached
  + _openmp_mutex                   4.5  2_gnu                conda-forge     Cached
  + _x86_64-microarch-level           3  2_x86_64_v3          conda-forge        8kB
  + awkward                       2.7.2  pyhd8ed1ab_0         conda-forge      422kB
  + awkward-cpp                      43  py311hc248303_101    conda-forge      532kB
  + bzip2                         1.0.8  h4bc722e_7           conda-forge     Cached
  + ca-certificates          2024.12.14  hbcca054_0           conda-forge      157kB
  + fsspec                    2024.10.0  pyhd8ed1ab_1         conda-forge      135kB
  + importlib-metadata            8.5.0  pyha770c72_1         conda-forge       29kB
  + ld_impl_linux-64               2.43  h712a8e2_2           conda-forge     Cached
  + libblas                       3.9.0  26_linux64_openblas  conda-forge       16kB
  + libcblas                      3.9.0  26_linux64_openblas  conda-forge       16kB
  + libexpat                      2.6.4  h5888daf_0           conda-forge     Cached
  + libffi                        3.4.2  h7f98852_5           conda-forge     Cached
  + libgcc                       14.2.0  h77fa898_1           conda-forge     Cached
  + libgcc-ng                    14.2.0  h69a702a_1           conda-forge     Cached
  + libgfortran                  14.2.0  h69a702a_1           conda-forge       54kB
  + libgfortran5                 14.2.0  hd5240d6_1           conda-forge        1MB
  + libgomp                      14.2.0  h77fa898_1           conda-forge     Cached
  + liblapack                     3.9.0  26_linux64_openblas  conda-forge       16kB
  + liblzma                       5.6.3  hb9d3cd8_1           conda-forge     Cached
  + libnsl                        2.0.1  hd590300_0           conda-forge     Cached
  + libopenblas                  0.3.28  pthreads_h94d23a6_1  conda-forge        6MB
  + libsqlite                    3.47.2  hee588c1_0           conda-forge     Cached
  + libstdcxx                    14.2.0  hc0a3c3a_1           conda-forge     Cached
  + libuuid                      2.38.1  h0b41bf4_0           conda-forge     Cached
  + libxcrypt                    4.4.36  hd590300_1           conda-forge     Cached
  + libzlib                       1.3.1  hb9d3cd8_2           conda-forge     Cached
  + ncurses                         6.5  he02047a_1           conda-forge     Cached
  + numpy                         2.2.0  py311hf916aec_0      conda-forge        9MB
  + openssl                       3.4.0  hb9d3cd8_0           conda-forge     Cached
  + packaging                      24.2  pyhd8ed1ab_2         conda-forge     Cached
  + pip                          24.3.1  pyh8b19718_2         conda-forge        1MB
  + python                      3.11.11  h9e4cc4f_1_cpython   conda-forge       31MB
  + python_abi                     3.11  5_cp311              conda-forge        6kB
  + readline                        8.2  h8228510_1           conda-forge     Cached
  + setuptools                   75.6.0  pyhff2d567_1         conda-forge     Cached
  + tk                           8.6.13  noxft_h4845f30_101   conda-forge     Cached
  + typing_extensions            4.12.2  pyha770c72_1         conda-forge       40kB
  + tzdata                        2024b  hc8b5060_0           conda-forge     Cached
  + wheel                        0.45.1  pyhd8ed1ab_1         conda-forge     Cached
  + zipp                         3.21.0  pyhd8ed1ab_1         conda-forge       22kB

  Summary:

  Install: 42 packages

  Total download: 49MB

so the proper version of awkward-cpp but _x86_64-microarch-level=3.

The use case for my issue is to just grab the desired version of awkward-cpp by just specifying the mircoarch meta package version.

@ikrommyd
Copy link
Author

All these were performed on an Intel Broadwell QEMU VM. I also tried on my AMD Ryzen™ 7 7800X3D desktop with __archspec=1=zen4 (no emulation here) and only conda create -n bug awkward=2.7.2 python=3.11 _x86_64-microarch-level=4 wotks. Anything else fails with the same error.

@jjerphan jjerphan self-assigned this Dec 18, 2024
@jjerphan
Copy link
Member

jjerphan commented Dec 18, 2024

I can reproduce this issue with conda and mamba.

@jjerphan
Copy link
Member

Let's discuss this issue on conda-forge/microarch-level-feedstock#13 unless there's something really specific to mamba.

@jjerphan jjerphan closed this as not planned Won't fix, can't repro, duplicate, stale Dec 18, 2024
@ikrommyd
Copy link
Author

Let's discuss this issue on conda-forge/microarch-level-feedstock#13 unless there's something really specific to mamba.

Yes sure, I just opened it here as well as I didn't know if thise was the intended behavior, or a "bug" in the mamba solver 🙂

@jjerphan
Copy link
Member

Yes, no problem. 🙂

I think this is a UX problem of the microarch-level builds, and that one should be able to install packages as you described.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants