tlemane / kmtricks

modular k-mer count matrix and Bloom filter construction for large read collections
GNU Affero General Public License v3.0
72 stars 7 forks source link

Unable to use kmtricks: "illegal hardware instruction" #12

Closed flopezo closed 5 months ago

flopezo commented 3 years ago

Hello,

Thank you for developing kmtricks. I'm following the conda instructions to install kmtricks on an HPC running CentOS 7.9.2009, but I'm currently unable to run it:

$ conda create -p kmtricks_env
$ conda activate ./kmtricks_env
$ conda install -c conda-forge -c tlemane kmtricks
$ which kmtricks
~/conda_envs/kmtricks_env/bin/kmtricks
$ conda list kmtricks
# packages in environment at /data/home/***/conda_envs/kmtricks_env:
#
# Name                    Version                   Build  Channel
kmtricks                  1.0.0                hdf3d972_0    tlemane
$ kmtricks --version
[1]    24748 illegal hardware instruction  kmtricks --version
$ kmtricks --help
[1]    24776 illegal hardware instruction  kmtricks --help

The conda install seems to work fine on macOS (Big Sur, MacBook Air M1, 2020), although it uses v0.0.6 (kmtricks.py instead of kmtricks as in v1.0.0):

$ conda activate ./kmtricks_env
$ which kmtricks.py
/Users/***/conda_envs/kmtricks_env/bin/kmtricks.py
$ kmtricks.py --version
kmtricks v0.0.6, git_sha1 : 8539f16
$ kmtricks.py --help   
usage: kmtricks.py [-v] [-d] [--version] [-h] cmd ...

kmtricks cli

Subcommands:
  cmd            env, run

Global arguments:
  -v, --verbose  Verbose mode
  -d, --debug    Debug mode
  --version      Display kmtricks version
  -h, --help     Show this message and exit

I would appreciate any help.

tlemane commented 3 years ago

Hello,

Sorry for this issue, I think I forgot to disable some things when building the package. I made an update, the problem should be fixed. If not, please send me the return of lscpu.

For macOS, I will build the 1.0.0 package as soon as I have access to a macOS system.

Téo

flopezo commented 3 years ago

The update fixed the problem. Thank you!

rchikhi commented 6 months ago

Occurs again in version 1.4.0:

[rchikhi@maestro-2007 kmtricks-v1.4.0-bin-Linux]$ bin/kmtricks
Illegal instruction

lscpu:

Architecture:         x86_64
CPU op-mode(s):       32-bit, 64-bit
Byte Order:           Little Endian
CPU(s):               192
On-line CPU(s) list:  0-95
Off-line CPU(s) list: 96-191
Thread(s) per core:   1
Core(s) per socket:   48
Socket(s):            2
NUMA node(s):         2
Vendor ID:            AuthenticAMD
CPU family:           23
Model:                49
Model name:           AMD EPYC 7552 48-Core Processor
Stepping:             0
CPU MHz:              3240.541
CPU max MHz:          2200.0000
CPU min MHz:          1500.0000
BogoMIPS:             4400.13
Virtualization:       AMD-V
L1d cache:            32K
L1i cache:            32K
L2 cache:             512K
L3 cache:             16384K
NUMA node0 CPU(s):    0-47
NUMA node1 CPU(s):    48-95
Flags:                fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr wbnoinvd amd_ppin arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl umip rdpid overflow_recov succor smca sme sev sev_es
tlemane commented 5 months ago

Hi, Thanks for the report. The issue is fixed for the conda package but the binary release is still compiled with avx2. Will be fixed in the next release.