py-alphafold: update to 2.2.4, update dependencies (#33876)

* py-alphafold: update to 2.2.4, update dependencies

* style
This commit is contained in:
Andrew W Elble 2022-12-02 17:12:06 -05:00 committed by GitHub
parent c10b84f08d
commit 588d2e295f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 92 additions and 32 deletions

View File

@ -28,9 +28,8 @@ spack:
- py-transformers - py-transformers
# JAX # JAX
# https://github.com/google/jax/issues/12614 - py-jax
# - py-jax - py-jaxlib
# - py-jaxlib
# Keras # Keras
- py-keras - py-keras

View File

@ -31,9 +31,8 @@ spack:
- py-transformers - py-transformers
# JAX # JAX
# https://github.com/google/jax/issues/12614 - py-jax
# - py-jax - py-jaxlib
# - py-jaxlib
# Keras # Keras
- py-keras - py-keras

View File

@ -33,9 +33,8 @@ spack:
- py-transformers - py-transformers
# JAX # JAX
# https://github.com/google/jax/issues/12614 - py-jax
# - py-jax - py-jaxlib
# - py-jaxlib
# Keras # Keras
- py-keras - py-keras

View File

@ -19,6 +19,7 @@ class Openmm(CMakePackage, CudaPackage):
homepage = "https://openmm.org/" homepage = "https://openmm.org/"
url = "https://github.com/openmm/openmm/archive/7.4.1.tar.gz" url = "https://github.com/openmm/openmm/archive/7.4.1.tar.gz"
version("7.7.0", sha256="51970779b8dc639ea192e9c61c67f70189aa294575acb915e14be1670a586c25")
version("7.6.0", sha256="5a99c491ded9ba83ecc3fb1d8d22fca550f45da92e14f64f25378fda0048a89d") version("7.6.0", sha256="5a99c491ded9ba83ecc3fb1d8d22fca550f45da92e14f64f25378fda0048a89d")
version("7.5.1", sha256="c88d6946468a2bde2619acb834f57b859b5e114a93093cf562165612e10f4ff7") version("7.5.1", sha256="c88d6946468a2bde2619acb834f57b859b5e114a93093cf562165612e10f4ff7")
version("7.5.0", sha256="516748b4f1ae936c4d70cc6401174fc9384244c65cd3aef27bc2c53eac6d6de5") version("7.5.0", sha256="516748b4f1ae936c4d70cc6401174fc9384244c65cd3aef27bc2c53eac6d6de5")
@ -27,8 +28,11 @@ class Openmm(CMakePackage, CudaPackage):
install_targets = ["install", "PythonInstall"] install_targets = ["install", "PythonInstall"]
depends_on("python@2.7:", type=("build", "run")) depends_on("python@2.7:", type=("build", "run"))
depends_on("cmake@3.17:", type="build", when="@7.6.0:")
depends_on("cmake@3.1:", type="build") depends_on("cmake@3.1:", type="build")
depends_on("doxygen", type="build") # https://github.com/openmm/openmm/issues/3317
depends_on("doxygen@:1.9.1", type="build", when="@:7.6.0")
depends_on("doxygen", type="build", when="@7.7:")
depends_on("swig", type="build") depends_on("swig", type="build")
depends_on("fftw") depends_on("fftw")
depends_on("py-cython", type="build") depends_on("py-cython", type="build")

View File

@ -17,31 +17,41 @@ class PyAlphafold(PythonPackage, CudaPackage):
url = "https://github.com/deepmind/alphafold/archive/refs/tags/v2.1.1.tar.gz" url = "https://github.com/deepmind/alphafold/archive/refs/tags/v2.1.1.tar.gz"
maintainers = ["aweits"] maintainers = ["aweits"]
version("2.2.4", sha256="8d756e16f6dc7897331d834aade8493820d0ff6a03bf60ce511bac4756c1b1e8")
version("2.1.1", sha256="1adb6e213ba9ac321fc1acb1c563ba9b4fc054c1cebe1191bc0e2aaa671dadf7") version("2.1.1", sha256="1adb6e213ba9ac321fc1acb1c563ba9b4fc054c1cebe1191bc0e2aaa671dadf7")
conflicts("platform=darwin", msg="alphafold is only supported on Linux") conflicts("platform=darwin", msg="alphafold is only supported on Linux")
# lots of hints on versions and patching taken from docker/Dockerfile
# and requirements.txt
depends_on("python@3.7:", type=("build", "run")) depends_on("python@3.7:", type=("build", "run"))
depends_on("py-setuptools", type="build") depends_on("py-setuptools", type="build")
depends_on("py-absl-py@0.13.0:", type=("build", "run")) depends_on("py-absl-py@0.13.0:", type=("build", "run"), when="@2.1.1")
depends_on("py-absl-py@1.0.0:", type=("build", "run"), when="@2.2.4")
depends_on("py-biopython@1.79:", type=("build", "run")) depends_on("py-biopython@1.79:", type=("build", "run"))
depends_on("py-chex@0.0.7:", type=("build", "run")) depends_on("py-chex@0.0.7:", type=("build", "run"))
depends_on("py-dm-haiku@0.0.4:", type=("build", "run")) depends_on("py-dm-haiku@0.0.4:", type=("build", "run"), when="@2.1.1")
depends_on("py-dm-haiku@0.0.7:", type=("build", "run"), when="@2.2.4")
depends_on("py-dm-tree@0.1.6:", type=("build", "run")) depends_on("py-dm-tree@0.1.6:", type=("build", "run"))
depends_on("py-docker", type=("build", "run"))
depends_on("py-immutabledict@2.0.0:", type=("build", "run")) depends_on("py-immutabledict@2.0.0:", type=("build", "run"))
depends_on("py-jax@0.2.14:", type=("build", "run")) depends_on("py-jax@0.2.14:", type=("build", "run"), when="@2.1.1")
depends_on("py-jax@0.3.17:", type=("build", "run"), when="@2.2.4")
for arch in CudaPackage.cuda_arch_values: for arch in CudaPackage.cuda_arch_values:
depends_on( depends_on(
"py-jax@0.2.14:+cuda cuda_arch={0}".format(arch), "py-jax+cuda cuda_arch={0}".format(arch),
type=("build", "run"), type=("build", "run"),
when="cuda_arch={0}".format(arch), when="cuda_arch={0}".format(arch),
) )
depends_on("py-ml-collections@0.1.0:", type=("build", "run")) depends_on("py-ml-collections@0.1.0:", type=("build", "run"))
depends_on("py-numpy@1.19.5:", type=("build", "run")) depends_on("py-numpy@1.19.5:", type=("build", "run"), when="@2.1.1")
depends_on("py-numpy@1.21.6:", type=("build", "run"), when="@2.2.4")
depends_on("py-pandas@1.3.4:", type=("build", "run")) depends_on("py-pandas@1.3.4:", type=("build", "run"))
depends_on("py-protobuf@3.19:", type=("build", "run"), when="@2.2.4")
depends_on("py-scipy@1.7.0:", type=("build", "run")) depends_on("py-scipy@1.7.0:", type=("build", "run"))
depends_on("py-pdbfixer@1.7", type=("build", "run")) depends_on("py-pdbfixer@1.7", type=("build", "run"))
depends_on("py-tensorflow@2.5:", type=("build", "run")) depends_on("py-tensorflow@2.5:", type=("build", "run"), when="@2.1.1")
depends_on("py-tensorflow@2.9:", type=("build", "run"), when="@2.2.4")
depends_on( depends_on(
"openmm@7.5.1+cuda", "openmm@7.5.1+cuda",
type="run", type="run",

View File

@ -13,6 +13,7 @@ class PyDmHaiku(PythonPackage):
homepage = "https://github.com/deepmind/dm-haiku" homepage = "https://github.com/deepmind/dm-haiku"
pypi = "dm-haiku/dm-haiku-0.0.5.tar.gz" pypi = "dm-haiku/dm-haiku-0.0.5.tar.gz"
version("0.0.7", sha256="86c34af6952a305a4bbfda6b9925998577acc4aa2ad9333da3d6047f4f8ed7c1")
version("0.0.5", sha256="e986237e1f840aa3bd26217ecad84b611bf1456e2139f0f79ea71f9c6222d231") version("0.0.5", sha256="e986237e1f840aa3bd26217ecad84b611bf1456e2139f0f79ea71f9c6222d231")
depends_on("python@3.7:", type=("build", "run")) depends_on("python@3.7:", type=("build", "run"))
depends_on("py-setuptools", type="build") depends_on("py-setuptools", type="build")
@ -21,4 +22,7 @@ class PyDmHaiku(PythonPackage):
depends_on("py-numpy@1.18.0:", type=("build", "run")) depends_on("py-numpy@1.18.0:", type=("build", "run"))
depends_on("py-tabulate@0.8.9:", type=("build", "run")) depends_on("py-tabulate@0.8.9:", type=("build", "run"))
depends_on("py-typing-extensions", when="^python@:3.7", type=("build", "run")) depends_on("py-typing-extensions", when="^python@:3.7", type=("build", "run"))
# from README.md:
# Because JAX installation is different depending on your CUDA version, Haiku does
# not list JAX as a dependency in `requirements.txt`.
depends_on("py-jax", type=("build", "run")) depends_on("py-jax", type=("build", "run"))

View File

@ -0,0 +1,26 @@
# Copyright 2013-2022 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.package import *
class PyEtils(PythonPackage):
"""etils (eclectic utils) is an open-source collection of utils
for python."""
homepage = "https://github.com/google/etils"
pypi = "etils/etils-0.9.0.tar.gz"
version("0.9.0", sha256="489103e9e499a566765c60458ee15d185cf0065f2060a4d16a68f8f46962ed0d")
variant("epath", default=False, description="with epath module")
depends_on("python@3.7:", type=("build", "run"))
depends_on("py-importlib-resources", type=("build", "run"), when="+epath")
depends_on("py-typing-extensions", type=("build", "run"), when="+epath")
depends_on("py-zipp", type=("build", "run"), when="+epath")
depends_on("py-flit-core@3.5:3", type="build")

View File

@ -21,22 +21,29 @@ class PyJax(PythonPackage, CudaPackage):
homepage = "https://github.com/google/jax" homepage = "https://github.com/google/jax"
pypi = "jax/jax-0.2.25.tar.gz" pypi = "jax/jax-0.2.25.tar.gz"
version("0.3.23", sha256="bff436e15552a82c0ebdef32737043b799e1e10124423c57a6ae6118c3a7b6cd")
version("0.2.25", sha256="822e8d1e06257eaa0fdc4c0a0686c4556e9f33647fa2a766755f984786ae7446") version("0.2.25", sha256="822e8d1e06257eaa0fdc4c0a0686c4556e9f33647fa2a766755f984786ae7446")
variant("cuda", default=True, description="CUDA support") variant("cuda", default=True, description="CUDA support")
depends_on("python@3.7:", type=("build", "run")) depends_on("python@3.7:", type=("build", "run"))
depends_on("py-setuptools", type="build") depends_on("py-setuptools", type="build")
depends_on("py-numpy@1.18:", type=("build", "run"), when="@0.2.25")
depends_on("py-numpy@1.20:", type=("build", "run"), when="@0.3.23")
depends_on("py-numpy@1.18:", type=("build", "run")) depends_on("py-numpy@1.18:", type=("build", "run"))
depends_on("py-absl-py", type=("build", "run")) depends_on("py-absl-py", type=("build", "run"))
depends_on("py-opt-einsum", type=("build", "run")) depends_on("py-opt-einsum", type=("build", "run"))
depends_on("py-scipy@1.2.1:", type=("build", "run")) depends_on("py-scipy@1.2.1:", type=("build", "run"), when="@0.2.25")
depends_on("py-scipy@1.5:", type=("build", "run"), when="@0.3.23")
depends_on("py-typing-extensions", type=("build", "run")) depends_on("py-typing-extensions", type=("build", "run"))
depends_on("py-jaxlib@0.1.69:", type=("build", "run"), when="~cuda") depends_on("py-etils+epath", type=("build", "run"), when="@0.3.23")
depends_on("py-jaxlib@0.1.69:+cuda", type=("build", "run"), when="+cuda") depends_on("py-jaxlib@0.3.15:", type=("build", "run"), when="@0.3.23~cuda")
depends_on("py-jaxlib@0.3.15:+cuda", type=("build", "run"), when="@0.3.23+cuda")
depends_on("py-jaxlib@0.1.69:", type=("build", "run"), when="@0.2.25~cuda")
depends_on("py-jaxlib@0.1.69:+cuda", type=("build", "run"), when="@0.2.25+cuda")
for arch in CudaPackage.cuda_arch_values: for arch in CudaPackage.cuda_arch_values:
depends_on( depends_on(
"py-jaxlib@0.1.69:+cuda cuda_arch={0}".format(arch), "py-jaxlib+cuda cuda_arch={0}".format(arch),
type=("build", "run"), type=("build", "run"),
when="cuda_arch={0}".format(arch), when="cuda_arch={0}".format(arch),
) )

View File

@ -5,8 +5,6 @@
import tempfile import tempfile
import llnl.util.tty as tty
from spack.package import * from spack.package import *
@ -17,19 +15,27 @@ class PyJaxlib(PythonPackage, CudaPackage):
url = "https://github.com/google/jax/archive/refs/tags/jaxlib-v0.1.74.tar.gz" url = "https://github.com/google/jax/archive/refs/tags/jaxlib-v0.1.74.tar.gz"
tmp_path = "" tmp_path = ""
buildtmp = ""
version("0.3.22", sha256="680a6f5265ba26d5515617a95ae47244005366f879a5c321782fde60f34e6d0d")
version("0.1.74", sha256="bbc78c7a4927012dcb1b7cd135c7521f782d7dad516a2401b56d3190f81afe35") version("0.1.74", sha256="bbc78c7a4927012dcb1b7cd135c7521f782d7dad516a2401b56d3190f81afe35")
# see jaxlib/setup.py for dependencies
depends_on("python@3.7:", type=("build", "run")) depends_on("python@3.7:", type=("build", "run"))
depends_on("py-setuptools", type="build") depends_on("py-setuptools", type="build")
depends_on("py-numpy@1.18:", type=("build", "run"))
depends_on("py-scipy", type=("build", "run")) depends_on("py-numpy@1.18:", type=("build", "run"), when="@0.1.74")
depends_on("py-numpy@1.20:", type=("build", "run"), when="@0.3.22")
depends_on("py-scipy@1.5:", type=("build", "run"))
depends_on("py-absl-py", type=("build", "run")) depends_on("py-absl-py", type=("build", "run"))
depends_on("py-flatbuffers@1.12:2", type=("build", "run")) depends_on("py-flatbuffers@1.12:2", type=("build", "run"), when="@0.1.74")
# Bazel 5 not yet supported: https://github.com/google/jax/issues/8440 # Bazel 5 not yet supported: https://github.com/google/jax/issues/8440
depends_on("bazel@4.1.0:4", type=("build")) depends_on("bazel@4.1.0:4", type=("build"), when="@0.1.74")
# Bazel 5 support starts here
depends_on("bazel@5.1.1:", type=("build"), when="@0.3.22")
depends_on("cudnn@8.0.5:", when="+cuda") depends_on("cudnn@8.0.5:", when="+cuda")
depends_on("cuda@11.1:", when="+cuda") depends_on("cuda@11.1:11.7.0", when="@0.1.74+cuda")
depends_on("cuda@11.1:", when="@0.3.22+cuda")
def install(self, spec, prefix): def install(self, spec, prefix):
args = [] args = []
@ -42,18 +48,22 @@ def install(self, spec, prefix):
"{0:.1f}".format(float(i) / 10.0) for i in spec.variants["cuda_arch"].value "{0:.1f}".format(float(i) / 10.0) for i in spec.variants["cuda_arch"].value
) )
args.append("--cuda_compute_capabilities={0}".format(capabilities)) args.append("--cuda_compute_capabilities={0}".format(capabilities))
args.append("--bazel_startup_options=" "--output_user_root={0}".format(self.buildtmp)) args.append(
"--bazel_startup_options="
"--output_user_root={0}".format(self.wrapped_package_object.buildtmp)
)
python(*args) python(*args)
with working_dir(self.tmp_path): with working_dir(self.wrapped_package_object.tmp_path):
tty.warn("in dir " + self.tmp_path)
args = std_pip_args + ["--prefix=" + self.prefix, "."] args = std_pip_args + ["--prefix=" + self.prefix, "."]
pip(*args) pip(*args)
remove_linked_tree(self.tmp_path) remove_linked_tree(self.wrapped_package_object.tmp_path)
remove_linked_tree(self.buildtmp) remove_linked_tree(self.wrapped_package_object.buildtmp)
def patch(self): def patch(self):
self.tmp_path = tempfile.mkdtemp(prefix="spack") self.tmp_path = tempfile.mkdtemp(prefix="spack")
self.buildtmp = tempfile.mkdtemp(prefix="spack") self.buildtmp = tempfile.mkdtemp(prefix="spack")
# triple quotes necessary because of a variety
# of other embedded quote(s)
filter_file( filter_file(
"""f"--output_path={output_path}",""", """f"--output_path={output_path}",""",
"""f"--output_path={output_path}",""" """f"--output_path={output_path}","""

View File

@ -321,6 +321,8 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage):
# depends_on('trisycl', when='+opencl~computepp') # depends_on('trisycl', when='+opencl~computepp')
depends_on("cuda@:10.2", when="+cuda @:2.3") depends_on("cuda@:10.2", when="+cuda @:2.3")
depends_on("cuda@:11.4", when="+cuda @2.4:2.7") depends_on("cuda@:11.4", when="+cuda @2.4:2.7")
# avoid problem fixed by commit a76f797b9cd4b9b15bec4c503b16236a804f676f
depends_on("cuda@:11.7.0", when="+cuda @:2.9")
depends_on("cudnn", when="+cuda") depends_on("cudnn", when="+cuda")
depends_on("cudnn@:7", when="@:2.2 +cuda") depends_on("cudnn@:7", when="@:2.2 +cuda")
# depends_on('tensorrt', when='+tensorrt') # depends_on('tensorrt', when='+tensorrt')