Skip to content

library name conflicts between BLIS and single-threaded AOCL-BLAS #3949

@smoors

Description

@smoors

if you build a single-threaded version of AOCL-BLAS (which is not the default in EasyBuild), library blis.so is created (the multithreaded version is blis-mt.so).

this conflicts with the blis.so lib in BLIS if both AOCL-BLAS and BLIS are (build)dependencies of FlexiBLAS, and the specific library that will be used depends on the ordering of the 2 deps.

we can fix this by adapting both the blis.py and flexiblas.py easyblocks:

  • in blis.py:
    def configure_step(self):
        """Custom configopts."""

        self.threading_suffix = ''
        if self.toolchain.options.get('openmp', None):
            self.threading_suffix = '-mt'
            self.cfg.update('configopts', '--enable-threading=openmp')
        ...
    ...

    def build_step(self):

        if self.name == 'AOCL-BLAS':
            self.cfg.update('buildopts', f'LIBBLIS=libaocl-blas{self.threading_suffix}')
            self.cfg.update('buildopts', f'AOCLLIB=aocl-blas{self.threading_suffix}')

        super().build_step()
  • in flexiblas.py:
...
            elif blas_lib == 'AOCL_mt':
                configopts[key] = 'aocl-blas-mt'
...

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions