LIBXSMM 1.7.1 (#3371)
* Cleanup list of offered versions (only the latest update release of each minor version is kept: 1.4.4, 1.5.2, 1.6.6, 1.7.1); introduced master revision (via Git). Slightly more selective installation of the documentation; copy README.md and LICENSE files to documentation folder. Removed outdated build options (make_args); generally stay with LIBXSMM's defaults (general purpose build). Introduced one build variant ("debug"). * Incorporated comments of PR #3371 (https://github.com/LLNL/spack/pull/3371). * Fixed flake8 complaints. * Made the full list of versions available starting with version 1.4 (there are earlier releases, however those have been released before the Spack specification became available; original spec. also started with 1.4). * Made DBG and TRACE actually two separate arguments.
This commit is contained in:
parent
55e1550a59
commit
2ae1ebbbe8
@ -1,5 +1,5 @@
|
|||||||
##############################################################################
|
##############################################################################
|
||||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
|
||||||
# Produced at the Lawrence Livermore National Laboratory.
|
# Produced at the Lawrence Livermore National Laboratory.
|
||||||
#
|
#
|
||||||
# This file is part of Spack.
|
# This file is part of Spack.
|
||||||
@ -23,20 +23,40 @@
|
|||||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
##############################################################################
|
##############################################################################
|
||||||
from spack import *
|
from spack import *
|
||||||
|
from glob import glob
|
||||||
|
|
||||||
|
|
||||||
class Libxsmm(Package):
|
class Libxsmm(Package):
|
||||||
'''LIBXSMM is a library for small dense and small sparse matrix-matrix
|
'''Library targeting Intel Architecture
|
||||||
multiplications targeting Intel Architecture (x86).'''
|
for small, dense or sparse matrix multiplications,
|
||||||
|
and small convolutions.'''
|
||||||
|
|
||||||
homepage = 'https://github.com/hfp/libxsmm'
|
homepage = 'https://github.com/hfp/libxsmm'
|
||||||
url = 'https://github.com/hfp/libxsmm/archive/1.4.3.tar.gz'
|
url = 'https://github.com/hfp/libxsmm/archive/1.7.1.tar.gz'
|
||||||
|
|
||||||
|
version('develop', git='https://github.com/hfp/libxsmm.git')
|
||||||
|
|
||||||
|
version('1.7.1', 'a938335b1c2c90616dc72c2c1a5824ab')
|
||||||
|
version('1.7', 'cb3aff6d123ba70bd3d4daf575767d14')
|
||||||
|
version('1.6.6', '8b45ae022f36b8c212f579a0952b5034')
|
||||||
|
version('1.6.5', 'fa21fe88d092477fa796a346ac7674ff')
|
||||||
|
version('1.6.4', '23e484f7b9f980c2a3819db6e6c68710')
|
||||||
|
version('1.6.3', '7969c56e6faed66f9e07d86f063ecf0b')
|
||||||
|
version('1.6.2', '1920e58fdf00d2635d24cf5c07007bfc')
|
||||||
|
version('1.6.1', 'e3493c77c57d42cfa58e0e55a69ee22c')
|
||||||
|
version('1.6', '31c130aa176db23944de420b59e1c74d')
|
||||||
|
version('1.5.2', 'ecda62ec3e5c60897d0d7780c524bc19')
|
||||||
|
version('1.5.1', '612244e92024e11ec672bafb6e85c01b')
|
||||||
|
version('1.5', '7b550702b55dc8e73a42a2986a1e1b36')
|
||||||
|
version('1.4.4', '78beefa57da02126cf4556f0eef3f8f0')
|
||||||
version('1.4.3', '9839bf0fb8be7badf1e97ce4c817149b')
|
version('1.4.3', '9839bf0fb8be7badf1e97ce4c817149b')
|
||||||
version('1.4.2', 'ea025761437f3b5c936821b9ca21ec31')
|
version('1.4.2', 'ea025761437f3b5c936821b9ca21ec31')
|
||||||
version('1.4.1', '71648500ea4510529845d329091917df')
|
version('1.4.1', '71648500ea4510529845d329091917df')
|
||||||
version('1.4', 'b42f91bf5285e7ad0463446e55ebdc2b')
|
version('1.4', 'b42f91bf5285e7ad0463446e55ebdc2b')
|
||||||
|
|
||||||
|
variant('debug', default=False,
|
||||||
|
description='Unoptimized with call-trace (LIBXSMM_TRACE).')
|
||||||
|
|
||||||
def patch(self):
|
def patch(self):
|
||||||
kwargs = {'ignore_absent': False, 'backup': False, 'string': True}
|
kwargs = {'ignore_absent': False, 'backup': False, 'string': True}
|
||||||
makefile = FileFilter('Makefile.inc')
|
makefile = FileFilter('Makefile.inc')
|
||||||
@ -53,14 +73,26 @@ def patch(self):
|
|||||||
def manual_install(self, prefix):
|
def manual_install(self, prefix):
|
||||||
install_tree('include', prefix.include)
|
install_tree('include', prefix.include)
|
||||||
install_tree('lib', prefix.lib)
|
install_tree('lib', prefix.lib)
|
||||||
install_tree('documentation', prefix.share + '/libxsmm/doc')
|
doc_path = prefix.share + '/libxsmm/doc'
|
||||||
|
mkdirp(doc_path)
|
||||||
|
for doc_file in glob('documentation/*.md'):
|
||||||
|
install(doc_file, doc_path)
|
||||||
|
for doc_file in glob('documentation/*.pdf'):
|
||||||
|
install(doc_file, doc_path)
|
||||||
|
install('README.md', doc_path)
|
||||||
|
install('LICENSE', doc_path)
|
||||||
|
|
||||||
def install(self, spec, prefix):
|
def install(self, spec, prefix):
|
||||||
make_args = [
|
# include symbols by default
|
||||||
'ROW_MAJOR=0',
|
make_args = ['SYM=1']
|
||||||
'INDICES_M={0}'.format(' '.join(str(i) for i in range(1, 25))),
|
|
||||||
'INDICES_N={0}'.format(' '.join(str(i) for i in range(1, 25))),
|
# JIT (AVX and later) makes MNK, M, N, or K spec. superfluous
|
||||||
'INDICES_K={0}'.format(' '.join(str(i) for i in range(1, 25)))
|
# make_args += ['MNK=1 4 5 6 8 9 13 16 17 22 23 24 26 32']
|
||||||
]
|
|
||||||
|
# include call trace as the build is already de-optimized
|
||||||
|
if '+debug' in spec:
|
||||||
|
make_args += ['DBG=1']
|
||||||
|
make_args += ['TRACE=1']
|
||||||
|
|
||||||
make(*make_args)
|
make(*make_args)
|
||||||
self.manual_install(prefix)
|
self.manual_install(prefix)
|
||||||
|
Loading…
Reference in New Issue
Block a user