Added spackage for cosmoflow-benchmark proxy app (#18685)
* Initial Draft of Cosmoflow Spackage Need to add in logic to streamline cpu/gpu builds * Added ~cuda logic to cosmoflow spackage Added logic to support a ~cuda build for cosmoflow * Requested Changes to Cosmoflow Spackage Made requested changes to cosmoflow spackage
This commit is contained in:
parent
e41c3ad1fc
commit
2f0565de64
1 changed files with 38 additions and 0 deletions
|
@ -0,0 +1,38 @@
|
|||
# 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 CosmoflowBenchmark(Package, CudaPackage):
|
||||
"""This is a an implementation of the CosmoFlow 3D convolutional neural
|
||||
network for benchmarking. It is written in TensorFlow with the Keras API
|
||||
and uses Horovod for distributed training."""
|
||||
|
||||
homepage = "https://github.com/sparticlesteve/cosmoflow-benchmark"
|
||||
git = "https://github.com/sparticlesteve/cosmoflow-benchmark.git"
|
||||
|
||||
tags = ['proxy-app']
|
||||
|
||||
version('master', branch='master')
|
||||
|
||||
depends_on('python@3:', type=('build', 'run'))
|
||||
|
||||
depends_on('py-h5py', type=('build', 'run'))
|
||||
depends_on('py-numpy', type=('build', 'run'))
|
||||
depends_on('py-pandas', type=('build', 'run'))
|
||||
depends_on('py-pyyaml', type=('build', 'run'))
|
||||
depends_on('py-horovod', type=('build', 'run'))
|
||||
depends_on('py-mpi4py', type=('build', 'run'))
|
||||
|
||||
depends_on('py-tensorflow+cuda', when='+cuda', type=('build', 'run'))
|
||||
depends_on('py-tensorflow~cuda~nccl', when='~cuda', type=('build', 'run'))
|
||||
depends_on('py-torch+cuda', when='+cuda', type=('build', 'run'))
|
||||
depends_on('py-torch~cuda~cudnn~nccl', when='~cuda', type=('build', 'run'))
|
||||
depends_on('py-horovod tensor_ops=mpi', when='~cuda', type=('build', 'run'))
|
||||
|
||||
def install(self, spec, prefix):
|
||||
# Mostly about providing an environment so just copy everything
|
||||
install_tree('.', prefix)
|
Loading…
Reference in a new issue