New package/graphblast (#17289)
* new package: GraphBlast * polish * add cuda_arch setup * flake8 * the package requires cuda variant and dependency * add comments * define cuda_arch * implement multiple and custom cuda arches * tidy up, improve * flake8 * improve style * add variant description * use patch method, add new version for latest commit building since master now fails * remove gcc conflict, tidy up * also indicate build range for boost Co-authored-by: Sinan81 <sbulut@3vgeomatics.com> Co-authored-by: Sinan81 <Sinan81@github>
This commit is contained in:
parent
6fb30acb77
commit
6d46fbb6f7
1 changed files with 42 additions and 0 deletions
42
var/spack/repos/builtin/packages/graphblast/package.py
Normal file
42
var/spack/repos/builtin/packages/graphblast/package.py
Normal file
|
@ -0,0 +1,42 @@
|
|||
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
from spack import *
|
||||
|
||||
|
||||
class Graphblast(MakefilePackage, CudaPackage):
|
||||
"""High-Performance Linear Algebra-based Graph Primitives on GPUs"""
|
||||
|
||||
homepage = "https://github.com/gunrock/graphblast"
|
||||
git = "https://github.com/gunrock/graphblast.git"
|
||||
|
||||
version('master', submodules=True)
|
||||
version('2020-05-07', submodules=True, commit='1a052558a71f2cd67f5d6fe9db3b274c303ef8f6', preferred=True)
|
||||
|
||||
variant('cuda', default=True, description="Build with Cuda support")
|
||||
|
||||
depends_on('boost +program_options')
|
||||
|
||||
# This package is confirmed to compile with:
|
||||
# gcc@:5.4.0,7.5.0 , boost@1.58.0:1.60.0 , cuda@9:
|
||||
|
||||
# TODO: the package doesn't compile as CMakePackage
|
||||
# once that is fixed it should be converted to a CMakePackage type.
|
||||
|
||||
conflicts('cuda_arch=none', when='+cuda',
|
||||
msg='Must specify CUDA compute capabilities of your GPU. \
|
||||
See "spack info graphblast"')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
install_tree(self.build_directory, self.prefix)
|
||||
|
||||
def patch(self):
|
||||
cuda_arch_list = self.spec.variants['cuda_arch'].value
|
||||
arches = 'ARCH = '
|
||||
for i in cuda_arch_list:
|
||||
arches = arches +\
|
||||
' -gencode arch=compute_{0},code=compute_{0}'.format(i)
|
||||
makefile = FileFilter('common.mk')
|
||||
makefile.filter(r'^ARCH =.*', arches)
|
Loading…
Reference in a new issue