> On 12 Mar 2024, at 15:01, Jure Pečar <[email protected]> wrote:
> 
> On Tue, 12 Mar 2024 12:31:16 +0000
> Borut Rozman <[email protected]> wrote:
> 
>> Hi, 
>> 
>> I have a situation with bedtools, specifically in AMD chipset.
>> 
>> I have build bedtools 3.5.1-foss-2021b on an INTEL with -optarch
>> GENERIC flag but it still crashes under AMD, 
>> 
>> the onlything I get is Illegal instruction (core dumped) and in dmesg:
>> 
>> 
>> traps: plotCorrelation[591375] trap invalid opcode ip:7f246960fbd0
>> sp:7fff258064b8 error:0 in libopenblas_skylakexp-
>> r0.3.18.so[7f2469295000+ebd000]
> 
> Did you built just deeptools with -optarch GENERIC or the rest of the
> toolchain too? This looks like something in plotCorrelations picks up
> skylake branch of blas functions which most likely include avx512 calls.
> And those would only work on zen4 and produce "illegal instruction" on
> older amd cpus.

Also note that OpenBLAS does not adhere to optarch, as per 
https://github.com/easybuilders/easybuild-easyconfigs/issues/9754. The solution 
is usually to have a hook add DYNAMIC_ARCH=1 for OpenBLAS. Something like this 
(adopted from EESSI):

pre_configure_hook(self, *args, **kwargs):
    if self.name == 'OpenBLAS’:
        if build_option('optarch') == OPTARCH_GENERIC:
                for step in ('build', 'test', 'install’):
                        self.cfg.update(f'{step}opts', "DYNAMIC_ARCH=1”)

See https://docs.easybuild.io/hooks/ for more information about hooks. :)


-- 
Terje Kvernes
Head sysadmin
Department of Mathematics
University of Oslo




Reply via email to